Избранное трейдера Александр Павлов
Скучный я человек. Техническим, фундаментальым и даже волновым анализом не занимаюсь. Каббалистические знаки на графиках не черчу, заклинаний, типа, «индекс будет расти с целью...» не шепчу, с бубном не пляшу, и вообще не знаю что куда пойдет, и даже текущими ценами не интересуюсь. За редкими исключениями, если вдруг взбрело в голову что-то сделать. И все у меня стратегии такие, скучные. Чтобы не думать особенно: открылся — закрылся, выиграю-проиграю — понятия не имею, даже предположений не делаю.
И даже стать миллионером в планах не значится — водка, капуста, соленые огурчики в холодилнике, кушать, спать и пить у меня есть, чего еще надо. Зато столько времени высвобождается, для лежания на печи, скажем. Вот, И.Муромец, тридцать лет на печи сидел, а потом слез, Идолище Поганое изничтожил, и, помнится, хорошо они тогда с князем Владимиром посидели. Илья конечно напился, и все крушить начал… Но это другая история.
Недавно топик опубликовал — "Беспроигрышная стратегия на фьючерсах". Много плюсов получил, но комментаторы пишут, мол, трудна в реализации, что-то попроще надо. Но попался и профи — везде плавал, все знает — Баян, пишет, ты бы еще про стратегию акции-фьючерсы рассказал.
Введение
Эта статья является второй в цикле СЗ (статистические закономерности). Первую статью вы можете найти по этой ссылке:
СЗ №1: Не продавайте на максимуме!
Статьи этого цикла будут посвящены тестированию различных статистических закономерностей. И сегодня мы рассмотрим СЗ №2, которую можно сформулировать так: “не покупайте бумагу, которая находится вблизи своего минимального значения”.
Основная идея этой СЗ заключается в том, что бумага, которая находится вблизи своего минимума, скорее всего, продолжит свое падение и дальше. В данном случае рекомендуется подождать немного и когда бумага остановится в своем падении, только тогда ее купить.
Я беру на себя смелость утверждать, что СЗ №2 работает на различных таймфреймах, но в данной статье будет приведено тестирование только на дневном таймфрейме. Более того, мы сейчас протестируем следующее утверждение: “
Мне нравится Lua. Lua хороший компактный язык на котором можно сделать индикаторы, различные вспомогательные программы, помогающие трейдеру и даже несложные торговые системы (ТС, роботы). Пожалуй единственная книга по Lua — Роберту Иерузалимски: Программирование на языке Lua. Ее можно найти в интернете.
Lua имеет также несложный C-API позволяющий связать программы Quik Lua с внешним миром через DLL и получить доступ практически ко всему, в том числе к любым математическим библиотекам обработки данных, что необходимо для сколь-нибудь сложным ТС. Однако, для этого уже необходимо знание не только Lua, но и Lua C-API, языка С/С++, а также умения писать DLL. При этом надо будет решить еще ряд проблем, которые возникнут по ходу пьесы в процессе этой деятельности. Далеко не каждый пользователь Quik и Lua может все это реализовать в обозримое время.
У Quik Lua (QLua) есть еще недостатки — все события терминала в Lua работают в потоке терминала, и получив из них данные надо как можно быстрей завершать функции обработки этих данных и освобождать поток терминала, иначе терминал просто повиснет. Единственная функция QLua работающая в собственном потоке — это main() и вся сколь-нибудь сложная обработка может находиться только в ней.
Кроме того, для Lua крайне мало библиотек, а существующие работают оч не быстро. В принципе, это и не нужно, если можно организовать связь с внешним миром через C-API. Но нам от этого легче не становится.) Короче, для написания хорошей сложной ТС нам надо выйти за пределы QLua и установить связь с внешним миром, и сделать это доступными средствами.
Сейчас наиболее продвинутым языком, включающим в себя массу библиотек обработки данных является Python. По применимости для обработки данных он, пожалуй, занимает первое место в мире, а по распространенности входит в первую пятерку. В числе библиотек — математические, статистические, машинного обучения и пр., и пр. Таких библиотек более тысячи только в Anaconda, большинство из которых устанавливается при ее инсталяции. Вы можете не использовать Anaconda и скачать Python с сайта
/** \brief Класс Новостей */ class News { public: std::string name; /**< Имя новости */ std::string currency; /**< Валюта новости */ std::string country; /**< Страна новости */ int level_volatility = -1; /**< Уровень волатильности (-1 не инициализировано, низкий уровень = 0, средний 1, высокий 2) */ double previous; /**< Предыдущее значение */ double actual; /**< Актуальное значение */ double forecast; /**< Предсказанное значение */ bool is_previous = false; /**< Наличие предыдущего значения */ bool is_actual = false; /**< Наличие актуального значения */ bool is_forecast = false; /**< Наличие предсказанного значения */ uint64_t timestamp = 0; /**< Метка времени новости */ News() {}; };Для хранения массива исторических данных новостей используется библиотека