Избранное трейдера MrD
Простая сезонка на рос рынок, покупка ртс во вторник, продажа в четверг. Мой первый бот был таков с пачкой фильтров. Так или иначе с этого можно начинать и изучение статистических особенностей рынка даст вам возможность первого шага и лучшего понимания рынка.Сделаем бэктесты чуть шире. Первое число это день входа (вечером). Второе число — день выхода (утром).
Сижу как-то раз за рюмкой чая (это было за год, два или три до моего прихода на Smart-Lab} и приходит мне в голову мысль — а почему бы не попробовать прогнозировать котировки.
Прогноз, естественно, на ТФ 1м, который я использую. Время прогноза пусть будет — 5 минут — вполне достаточное для моих сделок, а недостаточно, так прогноз можно и повторить на следующие 5 минут. Архивы котировок по фьючерсам SBRF и GAZR тоже имеются, минимум за год-два за последние 3 месяца перед экспирацией — хватит и на отладку и на проверку.
Все есть, только как реализовать прогнозирование? — ни одной мысли.
Собственно, не особо мне это было и нужно, рабочая система у меня уже была и меня она вполне устраивала, но мысль о прогнозировании засела, и я время от времени ее думал.
Ничего сколь-нибудь конструктивного в голову не приходило, и было решено для прогнозирования использовать нейросеть, тем более, незадолго до того я немного занимался машинным обучением и нейросетями в том числе.
От использования каких-либо предикторов сразу отказался. Плюс 2-3 слоя к нейросети, и если в данных есть какие-либо взаимосвязи, НС сама внутри себя построит нужные ей предикторы. В общем, подаем на НС поток цен 15-20 отсчетов Vc={C(t0-20),C(t0-19),...C(t0)}, нормируем их к динам диапазону НС — Vcn={c(t0-20),c(t0-19,… c(t0-1), 0} — c(t0) у нас всегда = 0, и пусть НС сама мучается с прогнозированием и поиском c(t0+5). И еще, у всякого метода есть область применимости, потому нельзя учить чему попало. Для этого из обучающей и проверочных последовательностей по возможности исключаем области истории, где прогнозирование невозможно. Иначе получим нечто такое.
Написал скрипт на Python, который строит график с точкой минимальных выплат по выбранному фьючерсу. Скрипт основан на библиотеке QuikPy.
Error: [31m The Parser function of type «linkTool» is not defined. Define your custom parser functions as: [34mhttps://github.com/pavittarx/editorjs-html#extend-for-custom-blocks [0mСам я не программист, поэтому на код не ругайтесь )))
Результат выдает в виде графика. Ждать нужно долго ))) Зато потом автообновляется каждые 20 секунд.
Было бы интересно в дальнейшем прогнать исторические значения через машинное обучение с прогнозом цены фьючерса, но не знаю с какой стороны к этому подступиться. Может кто может посоветовать хорошее )))
(окончание, начало здесь)
Обычно выделяют несколько типов изменения спотовой кривой: параллельный сдвиг, изменение наклона и изменение кривизны. Примеры таких трансформаций приведены на рисунке:
В частности, параллельный сдвиг происходит тогда, когда спотовые ставки изменяются на одну и ту же величину. Если ставки по коротким облигациям вырастут сильнее, чем по длинным, говорят об уплощении (уменьшении наклона) КБД, и так далее. Понятно, что реальное движение кривой представляет собой некоторую комбинацию всех указанных типов смещений. У инвесторов и аналитиков сложилась своеобразная классификация этих типов: {bear/bull} {steepening/flattening}; positive/negative butterfly
Например, медвежье уплощение (bear flattening) — движение спотовой кривой вверх с одновременным уменьшением наклона. Положительный баттерфляй (positive butterfly) связан с уменьшением кривизны временной структуры, т.е. она становится менее сгорбленной. Если при этом кривая сдвигается вверх, то короткие и длинные ставки растут быстрее, чем среднесрочные. При движении кривой вниз всё происходит с точностью наоборот: среднесрочные ставки снижаются сильнее.