Никита Рейхнер
Никита Рейхнер личный блог
31 мая 2021, 19:45

Как тестировать торговые стратегии на истории?

В интернете куча информации но очень мало полезной, может ли мне кто-нибудь подсказать каким софтом и как можно тестировать торговые стратеги и как можно считать погрешности? основная проблема в том что с программированием у меня не все так радужно как и с пониманием того как имея только данные о изменении цены на графике я могу учитывать комиссии и спрэды, проскальзывания и задержки и.т.д. Если это все звучит слегка очевидно и тупо то я жду ответы, так как у мня слегка уже едет крыша.
29 Комментариев
  • Ivan Gurov
    31 мая 2021, 19:59
    Ни один Софт не позволяет делать, того, что собственный. Я писал собственный софт под все. Но если очень надо быстро — используйте python.
    • 3Qu
      31 мая 2021, 20:07
      Ivan Gurov, да, в принципе можно и Ексель, и МатЛаб, и SciLab, и R (есть любители), и что угодно. Сам начинал с Ексель. Но Питон действительно удобнее всего.
        • 3Qu
          31 мая 2021, 21:40
          Никита Рейхнер, VBA — Visual Basic for Application.
          Но самую первую систему я делал непосредственно на листе Ексель. Заняло 3 или 5 дней.
  • Replikant_mih
    31 мая 2021, 20:05
    Берете специализированный софт, позволяющий тестировать на истории и… тестируете. Есть софт, который позволяет делать это без программирования — тот же TSLab, Wealth-Lab. Комиссии, проскальзывания — в таком софте задаются в настройках и все, итоговые метрики с учетом и комиссий и проскальзываний. Задержки — если что-то высокоскоростное — HFT, арбитраж — лучше не тестировать такое, т.е. если понимаете, что тут что-то быстрое, то даже если результаты на истории хорошие умом понимайте, что торговать вы так не сможете. Если речь о задержках а-ля брокерский софт с задержкой в секунду выставляет заявки иногда, а не мгновенно — ну заложите проскальзывание чуть побольше и вуаля. А лучше вообще с запасом, чтоб себя не обманывать.
    • 3Qu
      31 мая 2021, 20:53
      Replikant_mih, 
      Берете специализированный софт, позволяющий тестировать на истории и… тестируете.
       А что есть тест? — не более чем цикл, подающий на вход системы последовательность котировок. Т.е., всего навсего, циклы for() или while()
      Так, зачем для этого специализированный софт? Если у человека запрограммирована система, то уж как нибудь for() или while() он и самостоятельно напишет.))
      А если нет, то и никакая спец система никак не поможет.
        • 3Qu
          31 мая 2021, 21:42
          Никита Рейхнер, думаю, надо и без ). Но можно в чем угодно. Знаю людей, которые все делают в МатЛабе, и даже в R.
            • 3Qu
              31 мая 2021, 22:51
              Никита Рейхнер, хфт, это вообще не про нас.)
              Вообще, для хфт специальные платы для компа делали, на заказ. Сведения на лет 10 назад.
            • Sprite
              31 мая 2021, 23:22
              Никита Рейхнер, HFT это не питон, а вот это:

      • Replikant_mih
        31 мая 2021, 22:58

        3Qu, Да, бэйзлайновый цикл, или векторные бэктестер пилится за пол часа, условно. Но самое веселье начинается потом. Наигравшись с таким болваночным решением, быстро понимаешь, что дофига чего не хватает для счастья. Начинаешь оно пилить. И так постоянно, со временем заколебываешься это все пилить и бросаешься в объятья софта где это все с любовью для тебя и для сотен-тысяч таких же как ты уже запилили разработчик. Главное сделать правильный выбор. Один из атрибутов правильного выбора на мой взгляд — горящие глаза у разработчиков и чуткость к потребностям аудитории.

         

        А прикидочно идеи тестировать на своем бэктестере — да, это можно. У меня, например, код очень легко пишется в моем бэктестере да и тестится не долго, но вот чего-то сложного делать нельзя. 

        • 3Qu
          01 июня 2021, 00:06
          Replikant_mih, ну, уж, не знаю.
          В том же Питоне любой каприз, которого не сыщешь ни в каком софте, который «с любовью», за 5 минут делается.
          Например: зависимость прибыли от значения индикатора(ов) в момент сделки. Потом график строим — ещё пару минут.
          В своем тестер, там тебе и регрессионный анализ, и нейросети, и чё хошь. А в «с любовью»  для этого какие то костыли присобачивать надо, и скакать из одного софта в другой.
          • Replikant_mih
            01 июня 2021, 00:47

            3Qu, Ну, специализированному ПО, закрывающему твои основные потребности, сложно противопоставить поделки на Питоне. А не поделка — это хренова тонна времени. 

             

            Я могу на питоне переместить папку, удалить файл, переименовать, но я же не буду писать на питоне Проводник или операционную систему. 

             

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

            Да, удобно собирать какие-то штуки — автоматизирующие скрипты какие-то, но не полноценный софт для алго.

            • 3Qu
              01 июня 2021, 00:53
              Replikant_mih, у меня Питон — моделирование + тестирование, отработка стратегий. Оч. неплохого качества, кстати.
              Потом это все переводится на язык системы — Lua + C++. Будет надобность, Питон подключается без проблем, а это куча возможностей. Пока надобности не было.
              • Даниил Лазарев
                01 июня 2021, 01:03
                3Qu, лучше сразу писать на с++, на нем тестить и запускать как бота
                • 3Qu
                  01 июня 2021, 01:05
                  Даниил Лазарев, я так не считаю.
                  Стратегия д.б. смоделирована и отработана. На С++ это не оч удобно, да и долго.
  • Алексей А.
    31 мая 2021, 22:56
    Это может делать любой софт, предназначенный для тестирования стратегий. Tradingview, AmiBroker.
  • ves2010
    31 мая 2021, 23:37
    только тслаб
    он бесплатный для тестов
    все на русском языке
    живой форум и тхподдержка
    дополна видосов
    не требует умения программировать — все собирается из кубиков как лего
  • Andrew Morozov
    02 июня 2021, 16:55
    С/с++ это очень серьёзно. И очень очень сложно. В итоге это оптимальный вариант.
    Но начинать лучше с простого, Tradestation скачайте, удобный, элементарный встроенный язык. Возможно, вам и кубиков тслабовских хватит, но кодить там точно не научитесь. Вопрос вообще актуальный, хочется тестировать как можно больше, а кодить как можно меньше.
  • Andrew Morozov
    02 июня 2021, 17:16
    Было дело несколько лет назад как то баловался, сделал простейший эмулятор matching engine, ну и провел несколько тестов на предмет разницы между результатом бэктеста и «реальной» торговлей у нескольких торговых терминалов. Но дабы не оскорблять чувства верующих, подробности озвучивать тут не буду, печально там все..
    Свой бэктетер надо…
  • Andrew Morozov
    05 июня 2021, 23:55
    С запасом вы все не посчитаете. Невозможно, например, учесть влияние ваших действий на будущую ситуацию в смысле реакции других участников аукциона на ваши сделки. Но я не это имел ввиду. Корректность методов выполнения тестов сомнительна в первую очередь в контексте цены. А поскольку код, который все это выполняет, увидеть невозможно, и внятного объяснения от разработчиков тоже как правило нет, непонятно, как и что можно корректировать на уровне АПИ. Лучше иметь свои исходники, по крайней мере править код можно. Если вы работаете с ohlc, питон наверное оптимальный вариант. Если тики, то с/с++.

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

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