grepan
grepan личный блог
01 октября 2021, 11:53

Тестирование стратегий

Поделюсь своим подходом к тестированию стратегий. Может кому будет полезно.

Сначала я разрабатываю стратегию в среде бэктестинга на питоне, с частотой 1мин, данные система автоматически забирает с финама или mfd. Если требуется оптимизация параметров, то здесь же применяю оптимизацию и форвардный тест.
Если стратегия показывает хорошее матожидание, то следующим шагом я реализую код на луа. Раньше я использовал тестовый сервер, предоставляемый arqa technologies, но с недавних пор отказался от этого подхода, уж больно сильная разница котировок на тестовом и реальном серверах. Сейчас я делаю скрипт сразу для боевого сервера, эмулируя выставление ордеров, закладывая проскальзывание.
Какие преимущества я нашел при таком подходе:
1. Тестируется торговая стратегия на основании данных реальных стаканов котировок.
2. Одновременно тестируются механизмы мани-менеджмента и риск-менеджмента (обрывы соединения, пустые стаканы, резкие выбросы данных)
3. Частота данных при тестировании соответствует частоте данных прома.
4. Трансформация тестового скрипта в боевой занимает минуты.
5. Техническая поддержка на боевом сервере и поддержка на тестовом сервере со стороны брокера+разработчика терминала это небо и земля).

Заодно именно на боевом сервере крутится агент, который пишет тиковые данные в логи для дальнейшего скармливания нейросети. Почему так а не выкачивать в оффлайне тики? Потому что сразу получаешь синхронные по времени данные по разным инструментам и источникам (стакан, сделки). И сразу с предобработкой это кладется в нужном формате для дальнейшего использования.

А какие подходы у вас?
75 Комментариев
  • Свой Мужик
    01 октября 2021, 12:03
    Где вот данные по опционам забрать не подскажешь?!
      • Свой Мужик
        01 октября 2021, 12:28
        grepan, да блин сорян не смотрел даже :( гляну
          • Свой Мужик
            02 октября 2021, 19:34
            grepan, просто ахриненно! )
              • Свой Мужик
                02 октября 2021, 20:23
                grepan, да на опционах там оно боюсь будет сложнее, там временной распад ещё работает ну и блин названия меняются чаще чем на фьючах, пока чисто посмотреть надо было )

  • Антон Иванов
    01 октября 2021, 13:00
    А я тестирую только на живых деньгах. Считаю что лучшего теста еще не придумали.
    • Антон Б
      01 октября 2021, 13:45
      grepan, самое лучшие мин 1 лот.
      и в реале.
      если крипта то это 12 usd (мин 10 usd ордер)
      если ммвб то это 1 лот.
      если forts то это 1 фьючерс.

      ведь время на тестирование это тоже рабочее время.

      это ОТРЕЗВЛЯЕТ очень быстро.
      реальная статистика 1 лотом гораздо ценнее чем эмуляция.

      я видел клиентов которые потратили на разработку и исследования годы и тысячи долларов кодерам.

      а робот в рынке у них даже не был ни разу.
      • Дмитрий Овчинников
        01 октября 2021, 15:02
        Антон Б, 
        на 1 плохо, лучше на 3, а еще лучше на 10. Тогда все косяки с частичным исполнением и пр. соберешь сразу, а не потом, когда в продакшн уйдет :)
        • Антон Б
          01 октября 2021, 15:56
          Дмитрий Овчинников, я про то что нужно как можно раньше тестировать.
          если вы первый раз идете.
          и на как можно меньшей сумме на одного робота.
          буквально 1 лот.

          тогда вы быстро (а значит дешево по времени ) отсеете то, что не работает.

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

          или наоборот рожают мертворожденного робота годами.
          с мертвой идеей.

          нужен баланс)
          и ребалансировка )
    • ezomm
      01 октября 2021, 14:33
      grepan, хочешь среднюю мувингу из синусов?
        • ezomm
          01 октября 2021, 15:05
          grepan, ты что тестируешь? Средние? Стохастики? Я до 2007 г все в Метастоке 7.2 перетестировал. Сам сочинял системы и индюки.Но вот попались мне средние на синусах и я ничего не понял? Что они усредняют? С ними стоит поиграться.
  • 3Qu
    01 октября 2021, 14:59
    Эт чё, нейросеть на Луа?
    Что же за НС такая, суммарно сколько нейронов?
      • 3Qu
        01 октября 2021, 15:23
        grepan,  понятно, ДЛЛ + питон.
        Кстати, коли уж ДЛЛ не проблема, чем логи писать, лучше БД SQLite использовать.
          • 3Qu
            01 октября 2021, 15:33
            grepan, Даже в базовых настройках примерно в 2 раза быстрее, чем в файлы. А со специфическими, так вообще моментально 5-10 мс. И запросами к базе обрабатывать легче.
            • CloseToAlgoTrading
              01 октября 2021, 19:25
              3Qu, да все лучше писать в БД :), главное что бы это в табличной форме нормально смотрелось. 
              Нейросеть в длл это же прошлый век! :) почему не REST или gRPC, это и удобнее и достатоно быстро. зы. против длл ничего против не имею ;)
                • 3Qu
                  02 октября 2021, 19:24
                  grepan, уж, кстати, НС существенно сокращает время разработки и понимание, есть ли в стратегии хоть что-то полезное.
                  Я вообще использую НС как обучаемую логику, и не заморачиваюсь ее созданием. Да, но примитивную логику нужно вначале создать самому, за НС уже ее уточнение.
                • CloseToAlgoTrading
                  02 октября 2021, 22:08
                  grepan, Это был отчасти сарказм :). Я вполне за то, что бы использовать удобный инструмент. 
  • MoonMan
    01 октября 2021, 21:35
    Бейсик, питон, sqlite… перестаньте уже ерундой заниматься и время тратить на программирование, сосредоточьтесь на стратегиях. В tradingview есть прекрасный тестер стратегий со всеми необходимыми инструментами и исходными данными. Есть тысячи готовых стратегий: бери, тести и адаптируй под себя.
      • ezomm
        03 октября 2021, 23:30
        grepan, про обвязку все верно. Она должна быть как часть системы. А точки входа тоже лишь часть системы и стоят на 2м месте после правильного стоп лосса.
    • 3Qu
      02 октября 2021, 19:27
      MoonMan, Трейдингвью — дерьмо ещё то.))
    • Alpinist573
      03 октября 2021, 16:14
      MoonMan, Лучше и не скажешь
  • Вельвет
    02 октября 2021, 00:12
    Так Вы  скармливаете  тестеру  не только цену, а еще и Бид-Аск объемы, скаченые из боевого сервера? (ведь в истории цен что в Финам или Yahoo        не хранится стакан Бид-Аск). И если Вы пишите про тест 1- минутками, то сколько примерно  минуток подаете на тест?
  • ves2010
    02 октября 2021, 12:54
    Если есть сильная чувствительность к источрику котировок то скорее всего идея нерабочая
  • Alex Zebra
    03 октября 2021, 22:56
    итог какой? грааль нашли?
    • ezomm
      03 октября 2021, 23:33
      Alex Zebra, дело не в граале , а  в управлении рисками. Грааль простой -жарь в 5ю точку! типа в правое плечо.
  • Korssar64
    08 октября 2021, 21:39
    Добрый день. Не подскажите возможно ли с финама автоматически экспортировать фьючь, но не их склейку, а каждую серию отдельно? За день до экспирации текущей, переходить на следующую.

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

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