3Qu
3Qu личный блог
30 января 2020, 20:50

Несостоявшаяся стратегия.

Работающие стратегии обсуждать неинтересно. Работает себе и работает, и говорить не о чем. С неработающими дело обстоит гораздо лучше. Каждый может сказать свое мнение о том, почему не работает, как нужно и не нужно было делать, и вообще, с таким подходом, изначально ясно, что это работать никак не может.

Но, давайте о самой стратегии.
Пусть текущее состояние инструмента в каждый момент времени описывается вектором X(t)={x1(t),x2(t),...,xi(t),...,xn(t)}, где x(t) — могут быть значениями индикаторов, какими либо значениями, вычисляемыми по неким формулам, значениями, типа, да/нет, фазами Луны, если вы считаете, что Луна как-то связана с поведением инструмента. В общем, значениями чего угодно, что по вашему как-то характеризует состояние инструмента в текущий момент, и может как-то быть связанным с его поведением в будущем. На отрезке истории вектор X(t) будет принимать большое количество различных значений и образует множество состояний или пространство состояний инструмента.
Чтобы как-то получить с инструмента прибыль мы должны предположить, что в пространстве состояний имеются некоторые устойчивые области, при нахождении в которых вектора X(t) мы сравнительно безопасно можем войти в сделку, и даже получить некоторую прибыль. Наша задача в том, чтобы попытаться обнаружить такие области в пространстве состояний. Задача, в общем, не тривиальная, но решаемая методами мат. статистики. Если такие области не будут обнаружены, то, либо они отсутствуют, либо выбранные вами компоненты вектора X(t) не описывают состояний инструмента, и вам следует попробовать другой набор параметров x(t) в векторе X(t).
Если же вам удалось найти такие области, то можно попробовать сократить размерность вектора X(t), выбросив из него малозначимые параметры x(t). После этого нам надо проверить нашу модель на других отрезках истории, и если модель продолжает оставаться работоспособной, то можно переносить ее в торговую систему и готовить к работе на рынке. Если мы не занимаемся пипсовкой, то истории на ТФ 1 мин для таких прогонов вполне хватает.
Именно такой стратегией для фьючерсов Сбербанка я занимался прошлым летом, и получил вот такой результат.
Несостоявшаяся стратегия.

На рисунке работа идет с одним фьючерсом SBRF-6.19 на интервале последних 3 месяцев до даты исполнения. По оси Х — номер сделки, по У — накопленная прибыль в п.п. фьючерса.
Класс, да?! Однако, за делами, леностью, но с чувством хорошо сделанной работы, стратегия была заброшена. Вообще, иногда даже полезно, чтобы стратегия некоторое время полежала и дала сок.
Вернулся я к ней только сейчас. Проверил ее на старых данных, сохранил картинку, которую вы видели выше, чтобы было с чем потом сравнивать, и запустил модель на последних 3-х месяцах фьючерса SBRF-12.19.
От стратегии ничего не осталось, абсолютно ничего — ноль. На фьючерсе SBRF-12.19 стратегия абсолютно несостоятельна. Почему это так — не знаю. Возможно, за это время изменился рынок, и движения инструмента перестали коррелировать с найденными факторами. Не знаю.
Такое уже случалось. Несколько лет назад попробовал воскресить стратегию, которая когда-то реально работала на рынке. Из этой затеи ничего не вышло. Ее стало невозможно настроить даже на минимальную прибыль.

14 Комментариев
  • SergeyJu
    30 января 2020, 22:02
    Интересно, чему было равно N? 
    По сути Вы изложили стартовую точку для тех, кто пытается применить NN к рынку. И, почти всегда, такой подход не срабатывает. Почему? Ответ тривиальный и хорошо известный, избыточное число степеней свободы при сильно зашумленных ограниченных данных плодит фальшивые закономерности.
      • SergeyJu
        30 января 2020, 22:29
        3Qu, 15 — это  много, даже сказал бы до фига. Вероятно, или параметры на самом деле сильно сильно взаимно зависимые, или у Вас весьма простые области, где-то же надо сократить реальное число степеней свободы!
          • SergeyJu
            30 января 2020, 22:50
            3Qu, Xj(t) у вас — какая-то функция времени, типа, приращение цены, разница между ценой и скользяшкой, вола и так далее, или что-то попроще? 

              • SergeyJu
                30 января 2020, 23:07
                3Qu, примерно к такому все и пристраивают нейронки. А потом удивляются, что не выходит каменный цветок. 
                А Вы как делите область значений, с помощью линейной функции,  SVM (метод опорных векторов по русски) или что-то позаковыристее? 
                  • SergeyJu
                    31 января 2020, 11:03
                    3Qu, пространство, в котором находятся точки Вашей N мерной функции нужно как-то разбить на зоны принятия решений. Например, гиперплоскостью, или методом ближайшего соседа. Построить функционал и порог к нему. Как-то так.
                      • SergeyJu
                        31 января 2020, 11:18
                        3Qu, ну так Вы — то какую используете схему? 
  • Пафос Респектыч
    01 февраля 2020, 20:05
    А сколько средняя сделка если не секрет, в пунктах?

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн