Избранное трейдера AIvanov
Стратегия стара как мир, и называется — календарный спред. В общем, разновидность арбитража. В простейшем виде, продаем дальний фьючерс, покупаем ближний, ждем некоторое время, закрываем позицию, получаем гарантированную прибыль. Как и у каждой стратегии, есть свои нюансы, и ошибки могу привести к убыткам. Но, это не ошибки, типа, не угадали куда пойдет — вверх или вниз. Это ошибки стратегии. Здесь не надо гадать куда пойдет.
В неклассическом виде в эту стратегию можно играть хоть интрадей, и 3-4 сделки в день вам обеспечены. Играть руками не рекомендую, целый день пялиться в монитор — может крыша поехать. А вот автоматом оч неплохо, тем более, что стратегия легко алгоритмизируется. Риски? — максимум 2-3 неудачных копеечных сделок в месяц.
Ну, и прежде чем начинать, попробуйте на кошках — смоделируйте в Python, например.
Исходная идея изложена. Ну, а конкретика, это уже не для общего доступа, кому нужны конкуренты в стакане.) Здесь каждый сам за себя. Ну, а стратегий на этой идее можно построить не одну, а целое семейство. Удачи!
Доброго времени суток коллеги. Я редко пишу на форуме с 2012 года всего несколько статей (сообщений), надеюсь они были полезными и помогли Вам. Наступил новый 2020 год, время подарков…
Каждый трейдер со временем хочет автоматизировать свой труд, облегчить его — создать алгоритмический Грааль. Я очень рассчитываю, что мой подарок поможет многим в этом трудном, не легком, но очень и очень интересном пути.
Подарок – это видеоуроки по программированию торговых роботов на языке С# через торговую платформу Quik. Используется библиотека с открытым исходным кодом которая лежит на GitHub https://github.com/finsight/QUIKSharp
Сами уроки лежат на YouTube вот ссылка на плейлист https://clck.ru/LRGZB
Введение
Эта статья является второй в цикле СЗ (статистические закономерности). Первую статью вы можете найти по этой ссылке:
СЗ №1: Не продавайте на максимуме!
Статьи этого цикла будут посвящены тестированию различных статистических закономерностей. И сегодня мы рассмотрим СЗ №2, которую можно сформулировать так: “не покупайте бумагу, которая находится вблизи своего минимального значения”.
Основная идея этой СЗ заключается в том, что бумага, которая находится вблизи своего минимума, скорее всего, продолжит свое падение и дальше. В данном случае рекомендуется подождать немного и когда бумага остановится в своем падении, только тогда ее купить.
Я беру на себя смелость утверждать, что СЗ №2 работает на различных таймфреймах, но в данной статье будет приведено тестирование только на дневном таймфрейме. Более того, мы сейчас протестируем следующее утверждение: “
Введение
Эта статья является первой в цикле СЗ (статистические закономерности). Статьи этого цикла будут посвящены тестированию различных статистических закономерностей. И сегодня мы рассмотрим СЗ №1, которую можно сформулировать так: “не продавайте бумагу, которая находится вблизи своего максимального значения”.
Основная идея этой СЗ заключается в том, что бумага, которая находится вблизи своего максимума, скорее всего, продолжит свой рост и дальше. В данном случае рекомендуется подождать немного и когда бумага остановится в своем росте, только тогда ее продавать.
Я беру на себя смелость утверждать, что СЗ №1 работает на различных таймфреймах, но в данной статье будет приведено тестирование только на дневном таймфрейме. Более того, мы сейчас протестируем следующее утверждение: “не продавайте бумагу в конце дня, если она близка к своему максимальному дневному значению”. В данном случае я утверждаю, что “
RUON-09.19 [FORTS] Купля 92,99
RUON-10.19 [FORTS] Купля 93,01
RUON-11.19 [FORTS] Купля 93,05
Как это понимать (если через месяц ставка RUONIA ниже я зарабатаю):
100-92,99= 7,01%
100-93,01= 6,99%
100-93,05= 6,95%
Эспирация фьючерсов
RUON-09.19 [FORTS] 93,13
RUON-10.19 [FORTS] 93,24
RUON-11.19 [FORTS] 93,57
100-93,13=6,87%
100-93,24=6,76%
100-93,57=6,43%
Так как насчет практического применения ML? Как вообще это выглядит?!
А выглядит это так, что 80% времени data scientist тратит на работу с данными, чтобы потом загнав их в модельку мобильно получить прогноз. Вообще, предполагалось что такой мощный инструмент как нейросети сможет работать с сырыми данными, то есть загонишь в нейросеть обычную котировку, а дальше могучие нейроны похимичат, сгенерируют кучу фичей и найдут нужную их комбинацию (на самом деле никаких фичей нейросети на создают, но можно представить). Ну вот например такое явление как большой ГЭП, важный показатель? Еще какой! В сырых данных он содержится, то есть можно помечтать что если мы создадим очень сложную нейросеть, то она сможет вытащить это значение самостоятельно. Что такое ГЭП нейросеть конечно не знает, но путем манипуляций с весами она найдет, что когда меняется циферка в дате то образовавшийся большой разрыв в цене имеет большое влияние для хорошей аппроксимации.
Мечты, мечты. Пока все что я видел в результате скармливания нейросети сырах данных-это слезы, боль и убожество. В общем мы пойдет другим путем. Мы не будет скармливать модели сырятину и мусор, мы постараемся кормить его качественно чтобы удои увеличивались и все такое.
Есть такое понятие как в ML как feature engenering. Наверно единственное более менее креативное что остается человеку в этом бездушном мире машинного обучения. А уж коли мы ведем речь о RF, то сам бог велел заняться этим, RF знаете ли не нейросети, там даже теоретически сырятина в данных не приветствуется. Вот этим мы и займемся.
Откуда же нам взять эти фичи и главное как? Тут каждому воля вольная. Например можно сдув пыль с WealthLab использовать старичка как генератора фичей. Кто не знает в него вшито около полусотни известных индексов и еще столько же, но с неизвестным кодом. А еще можно запрограммировать свои фичи. По своему «знанию и разумению», своих «знаний и разумений» я накопил много, но почти все они из разряда «все эти технические индикаторы не стоят ничего». Зато кое что из своего показали свою небезнадежность. В общем на первый случай я сгенерировал около 17 своих фичей, затем ранжировал их для каждой стоки, итого 34 фичи. Стоки брал из числа 20 самых ликвидных отечественных фишек с 2010 года по март 2018, что дало 50 тысяч дневных наблюдений. Прямо сказать не густо, но что есть. Тем более речь идет о демонстрации силушки RF.
Вот набор моих фичей:
Week 49303 non-null int64 GEP 49303 non-null float64 Min10 49303 non-null float64 Cl/High 49303 non-null float64 Cl/Low 49303 non-null float64 Cl/w_High 49303 non-null float64 Cl/w_Low 49303 non-null float64 wdif 49303 non-null float64 dif 49303 non-null float64 Vol20/Vol200 49303 non-null float64 tHigh% 49303 non-null float64 tLow% 49303 non-null float64 tHigh%-tLow% 49303 non-null float64 Cl/SMA21 49303 non-null float64 Cl/SMA5 49303 non-null float64 SMA5-SMA21 49303 non-null float64 Cl/(minSMA) 49303 non-null float64 Cl/(maxSMA) 49303 non-null float64 l_Min10 49303 non-null int64 s_Min10 49303 non-null int64 l_gep 49303 non-null int64 s_gep 49303 non-null int64 l_cl/high 49303 non-null int64 s_cl/high 49303 non-null int64 l_cl/low 49303 non-null int64 s_cl/low 49303 non-null int64 l_wdif 49303 non-null int64 s_wdif 49303 non-null int64 l_SMA5-SMA21 49303 non-null int64 S_SMA5-SMA21 49303 non-null int64 L_Cl/(maxSMA) 49303 non-null int64 S_Cl/(maxSMA) 49303 non-null int64 L-tHigh%-tLow% 49303 non-null int64 S_tHigh%-tLow% 49303 non-null int64
Как учили «знающие» люди – торгуй график, на графике видны все действия игроков. Вот я и торговал график. И, если в моменте я был практически миллионером, то на дистанции утрачивал почти все преимущество. Что не так? Торгуя график, я полагался только на свои зрительные ощущения, а это влекло за собой досадные ошибки.
Поэтому я решил разобраться, а что я, собственно, торгую. Попытался сделать так, чтобы моей торговой системой мог управлять человек, который понятие не имел о трейдинге. Для этого пришлось препарировать бары и извлечь из них полезную, на мой взгляд, информацию, чтобы выявить закономерности. А уже эти закономерности представить в виде алгоритма, понятного всем.
Торговал я в то время фьючерсными контрактами на часовом и пятиминутном тайм-фреймах. Для примера, давайте разберем фьючерс на акции Сбербанка — часовик. Я заметил, что на рынке время от времени, возникают моменты, когда происходит жор. В это время игроки покупают актив прямо по рынку, по любой цене – лишь бы купить. Кто-то говорит, что это крупный игрок разгоняет цену, но я, больше, чем уверен, что крупный игрок так рынок не разгоняет, а делает это через новости. А жор – это пир спекулянтов, которые узнали о чем-то самыми последними.