Николай Флёров
Николай Флёров личный блог
25 ноября 2015, 14:13

_ОДИН НЕВЕРНЫЙ ШАГ (Алго, fRTS)



_ОДИН НЕВЕРНЫЙ ШАГ (Алго, fRTS)
_ОДИН НЕВЕРНЫЙ ШАГ (Алго, fRTS)
PS. а как ты тестируешь fRTS?

      За последние полтора года, в процессе сильного движения валют, инструменты зависящие от курса непрерывно изменяли некоторые свои важные характеристики. Я имею в виду такие характеристики, как стоимость шага цены и гарантийное обеспечение. (до сентября 2014, пункт ri довльно долго оставался около 0,6 рублей, а го на Si и Eu также были более стабильны)

Само по себе это повлияло на специфику работы, доходность управляющих и на эффективность использования капитала. Для частного алгоТрейдера данная ситуация осложненна еще и тем, что  историческое тестирование становится либо очень сложным, либо не реалистичным.
_ОДИН НЕВЕРНЫЙ ШАГ (Алго, fRTS)
_ОДИН НЕВЕРНЫЙ ШАГ (Алго, fRTS)

На рисунке изображены изменения стоимости шага цены на fRTS и ниже то, сколько мы могли заработать с 1000 пунктов в тот или иной момент с середины 14 года.

 Данная проблема существует далеко не только на fRTS, для тех, кто не ограничивается торговлей на 2-х инструментах, также почувствовали неудобства на fEu и fSI  -  в связи с динамическим гарантийным обеспечением, на Br, ED и золоте, (из иностранных например — fDAX — eurex/C1), также, как и на fRTS -  в связи с изменяющимся шагом цены.
_ОДИН НЕВЕРНЫЙ ШАГ (Алго, fRTS)

Тесты не верные?
На данный момент, я не знаком ни с одной программой технического анализа, которая бы решала вышеописанные проблемы «из коробки», но пока мы не учитываем в тестах динамическую стоимость шага цены  - таким тестам, по сути, нельзя доверять.

 Относительно недавно и мне были недоступны возможности данного типа тестирования (с пересчитывающейся стоимостью шага цены) и анализа эффективности использования капитала(учитывая гарантийное обеспечение). Это было невозможно до введения в работу собственных поссайзеров. Основные методы управления позицией скрыты в Wealth и добраться до них не получится.

Также, существуют некоторые сложности, при добыче реальных исторических данных о стоимости шага цены и гарантийном обеспечении. Стоимость шага приблизительно можно вычислить, как 2 цента для fRTS и 1 цент для fBR, fGold и т.д., а вот историческое го, только на ftp биржи.

Не каждый умеет использовать эти данные в Wealth, не говоря уже о том, чтобы получить статистики по стратегии и сравнить их с аналогичными данными классического тестирования.

Однако были найдены решения, позволяющие это делать, о них и поговорим:

_ОДИН НЕВЕРНЫЙ ШАГ (Алго, fRTS)

  • Необходимые данные находятся на FTP micex. Придется сделать определенное усилие, чтобы научиться пользоваться специальным софтом по работе с ftp(я использую fileZilla) особенно это болезненно для тех, кто не ходил дальше финама

_ОДИН НЕВЕРНЫЙ ШАГ (Алго, fRTS)

  • Данные нужно разархивировать — отдельно каждую папку. Таким образом мы получим несколько сотен папок внутри которых одинаково-называющиеся csv файлы с множеством значений, которые нам в данном случае не нужны, а нужно только несколько строк и столбцов, которые мы должны вычленить.
_ОДИН НЕВЕРНЫЙ ШАГ (Алго, fRTS)
  • Извлечь нужные данные можно несколькими способами, например, можно записать мышку и сделать это в полуавтоматическом режиме, как я показывал вот в этой статье. Также можно это сделать с помощью языка R(на этом не будем останавливаться), 3-ий способ — это написать свой парсер.



  • После того, как мы сформировали датасет из данных, необходимо привести их в удобный для Wealth формат, закачать его можно, как индикатор.

_ОДИН НЕВЕРНЫЙ ШАГ (Алго, fRTS)

Всю остальную работу имеет смысл проделать только имея свои поссайзеры.

Но даже после всего вышеописанного тестируемые показатели Performance и других визуалайзерсов, типа Equity и просадки будут неверные, потому что Wealth работает с Equity, рассчитываемую с помощью статичной стоимости шага цены (константы из настроек).

Поэтому нам также понадобятся навыки работы с написанием ScoreCard и Visualizers или оптимизаторов, чтобы рассчитать и вывести нужные нам показатели и сравнить со стандартными результатами.

_ОДИН НЕВЕРНЫЙ ШАГ (Алго, fRTS)
Дело в том, что от изменения стоимости пункта, меняется и прибыль в каждой конкретной сделке — а значит меняется и сумма денег на счету. Так как мы определяем каким количеством контрактов торговать в соответствии с количеством денег на счету (и риском на сделку), оно (кол-во контрактов) будет отличаться от количества контрактов, проторгованного при использовании статичного шага цены. И с каждой сделкой сумма на счете будет изменяться все сильнее.

_ОДИН НЕВЕРНЫЙ ШАГ (Алго, fRTS)
_ОДИН НЕВЕРНЫЙ ШАГ (Алго, fRTS)

Расхождения от раза к разу отличаются, иногда больше, иногда меньше. Это зависит от серии положительных/ отрицательных сделок. Когда приходится больше положительных сделок в период максимальной стоимости пункта, стартегия достигала своих максимумов и наоборот.
_ОДИН НЕВЕРНЫЙ ШАГ (Алго, fRTS)
_ОДИН НЕВЕРНЫЙ ШАГ (Алго, fRTS)

Таким образом, у нас есть возможность намного более реально посмотреть на результаты тестирования. Оптимизировать можно, как вам кажется более рационально (понятно, что алгоритм будет подстраиваться под участки с наибольшей стоимостью шага), но проверить на исторически-правдивых данных — это способ, если не избавиться от иллюзий, то по крайней мере снизить уровень неопределенности. 
_ОДИН НЕВЕРНЫЙ ШАГ (Алго, fRTS)

Добавляйтесь в Skype:   horoshij_den   (Николай Флёров)

16 Комментариев
  • Artemunak
    25 ноября 2015, 14:38
    Николай, основательный подход. А как вы учитываете контанго при бэктестинге? Вы ведь склеенные фьючи вроде используете. 
      • Artemunak
        25 ноября 2015, 15:02
        Николай Флёров, нипанятна. Допустим есть робот на SI который стоит в лонге почти всегда ( для простоты скажем что шорты он не открывает), в том числе перед экспирой он будет всегда стоять. На склеенном фьюче он будет показывать прибыль за счёт этого грубо 1.5руб*4 экспирации в год. Хотя в реале этой прибыли мы не получим. С этим-то как бороться? А в случае RTS уже всё сложней, там ещё и бэквордация бывает и хз сколько процентов закладывать чтобы это учесть.
          • Artemunak
            25 ноября 2015, 15:17
            Николай Флёров, спасибо, будет интересно прочитать про защитные методы. 
            Блин, если прописывать даты выхода то это муторно, плюс если брать чужую склейку (Финама например) то там переход будет раньше, в итоге запутаться с датами можно, я думал что у вас что-то похитрее.
  • Рустам TradeInWest.ru
    25 ноября 2015, 14:52
    Отличный пост.
    Спасибо.
  • Ruslan_Loginov
    25 ноября 2015, 15:49
    Плюсану за пост не про политику. По поводу стоимости пункта фртс. в своих расчетах беру параллельно фрубль и делю на 50000. Грубовато конечно но на градус не влият.
  • Dmitriy
    25 ноября 2015, 17:54
    Много интересного как в статье, так и в комментариях!
    А какую чужую склейку посоветуете использовать?
  • Иван Коваль-Зайцев
    18 декабря 2015, 00:23
    фРТС — долларовый актив, для которого нужны рубли. Такое может быть только в нашей стране)) 

    Варианты:

    относиться к прибылям — как к заработку в долларах. Но возникает проблема при оценке просадок. 

    Считать в %% движения самого инструмента. то есть 1000 пунктов движения от 100 до 101 тысяч = 1%, который принесет 1% капиталу при торговле без плечей — а по сути из-за скачков курса меняется плечо, с которым надо торговать, чтобы получать одинаковые результаты, а не сам актив и его шаг цены.

    Так. Полуночные мысли вслух.

  • robot_bsk
    05 января 2016, 23:50
    Сам это делал в экселе. Скачал таблицу изменений usd по цб с сайта cbr.ru Затем в эксель копировал сделки из wld и уже в экселе просчитывал кол-во реальных контрактов, которые нужно торговать по манименеджменту в сделке в зависимости от стоимости фьючерса РТС в рублях

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

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