to be
to be личный блог
26 октября 2018, 10:38

Бэк-тестинг.Как правильно?

Всем по привету.Торгую на Фортс.Арбитраж.Время удержания позиции от часа до 3 дней.Буду очень признателен, если поделитесь мыслями по грамотному тестированию мех.стратегий.

Один из знакомых предлагает Бэк-тест проводить следующим образом:Бэк-тестинг.Как правильно?
Второй  знакомый предлагает оптимизировать стратегию один раз в квартал.

Третий знакомый предлагает оптимизировать стратегию каждый день.
Бэк-тестинг.Как правильно?


Кто прав? Научите.

 

47 Комментариев
  • tores
    26 октября 2018, 10:57
    Как то период маловат сам по себе. Почему не взять данные с 2008 года? И тут уже крутить-вертеть.
      • tores
        26 октября 2018, 11:13
        BRABUS Сергеевич, ну как ниже написали, если парный трейдинг, то наверно глубину данных можно и поменьше взять. тут зависит от стратегии. 

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

        Есть момент. Допустим обучили модель на 2016-2017 г. На 2018 годе ее пробэктетситровали. Вопрос надо ли торговать модель именно с этими параметрами или включить в обучение 2018 г. Эти варианты подходов тоже можно протестировать. Но на мой взгляд итоги могут зависеть от стадий рынка (трэнд, флэт, падение волы и т.п.).  Я все ж думаю все зависит от стратегии.

        У меня трендовые стратегии. Я просто беру данные с 2008 г по текущее время. Пробовал искать параметры стратегий отдельно по каждому году, а потом выбирать «чемпионов», но результат был немного хуже чем искать параметры сразу на всей истории. Плюс надо смотреть как стратегия торгует последние года или месяцы. 

        У меня есть стратегия по золоту. Параметры подбирал на выборке 2008-2018 гг. Стратегия получилась не плохая, но проблема в том что с 2014 года нет прибыли практически совсем. Как я себе объясняю, потому что с 2014 года в золоте флэт. Вот думаю, торговать такую стратегию или нет.
          • tores
            26 октября 2018, 12:22
            BRABUS Сергеевич, то что стратегия с одним набором параметров плюсует с 2015 года — это хорошо на мой взгляд. Значит она стабильна на этом горизонте, при условии что средняя сделка перекрывает проскальзывания, комиссию и спрэд. Но что настораживает, достаточно ли истории с 2015 г. для оценки ее стабильности. В моем случае с золотом смена тренда на флэт повлияла на ее доходность. Если в 2019 ваш торговый инструмент тоже сменит режим, то это так же может повлиять на доходность, несмотря на хорошие результаты по четырем предыдущим годам. Поэтому тестирование на большем горизонте все же даёт меньший риск переполняет. Если все же нет возможности тестить на более ранних годах или там стратегия не работает, то торговал бы стратегию с учётом риска переподготовки, меньшим обьемом или как правильно заметили держа руку на пульсе.
              • tores
                26 октября 2018, 12:30
                BRABUS Сергеевич, рад помочь!
  • vfreeman
    26 октября 2018, 11:00
    исправьте топик на «Научите зарабатывать деньги»
    или хотя бы укажите что понимаете под арбитражем?
  • bocha
    26 октября 2018, 11:01
    Время удержания позиции от часа до 3 дней

    Сдается мне, что называется это не арбитраж, а парный трейдинг.
    Если так и есть, то дело это перспективное, но гиблое :)
    ru.wikipedia.org/wiki/%D0%9A%D0%BE%D0%B8%D0%BD%D1%82%D0%B5%D0%B3%D1%80%D0%B0%D1%86%D0%B8%D1%8F

  • Андрей К
    26 октября 2018, 11:07
    Я пытаюсь так.
    1) Прогоняю последний год. Смотрю на эквити не очень удачные участки. Беру их в оборот

    2) Вычисляю, что такого поменялось в рынке, что страта встала.
    3) Выявляю тем самым такие показатели, под которые можно подстроиться.
    4) Делаю самоодаптацию для таких вариантов.
    5) Прогоняю два года на первой версии. И прогоняю два года на второй версии. Выявляю, начинает ли работать самоодаптация на новом году.

    и тд.
      • Андрей К
        26 октября 2018, 11:13
        BRABUS Сергеевич, ну чтобы на понятном языке, я приведу пример какой то мелочи

        1) Если средняя волатильности упала, то стоп подтягиваем ближе..
        2) Если средняя объема торгов падает, то понижаем лотность..
        3) Если спред стакана вырастает, то...
        4) Если корреляция ушла в другие величины, то..
        5) Если зависимости движений понизились, то..
        то есть алго сам принимает решение. Адаптируется к текущим показателям рынка.

        это все на бектесте вычисляется на раз.
          • Андрей К
            26 октября 2018, 11:23
            BRABUS Сергеевич, ну вот вы стат арбитраж торгуете. Мне кажется волатильности инструментов в корзине полюбому надо смотреть. А так же считать текущие корреляции, чтобы не влететь.
  • Replikant_mih
    26 октября 2018, 11:56

    По мне так чем больше данных тем лучше, если конечно уметь с ними работать. С точки зрения описываемой задачи больше данных — больше период времени. Дальше смотреть чё кого. Описанные схемы — это упрощенные модели, позволяющие справиться с объемом и сложностью данных, насколько они хороши — затрудняюсь ответить, поскольку из описания не полностью понял их логику, да и влом)).

     

  • Prophetic
    26 октября 2018, 12:08
    Идеального (единственно правильного) варианта никто так и не придумал. Каждый сам для себя выбирает подход, который он использует для оптимизации. Единственное, на что можно обратить внимание, это то, что для разных типов стратегий эти подходы также могут быть разными.
  • Vovilnik
    26 октября 2018, 12:22
     А это смотря какими данными оперировать. Например на обычных японских свечах я свои стратегии каждый месяц оптимизировал и получал различные результаты, потом стал пользоваться агрегированными котировками построив синтетический график и теперь вообще не оптимизирую, потому что смысла нет- параметры всегда примерно одинаковыми остаются.
      • Vovilnik
        26 октября 2018, 12:40
        BRABUS Сергеевич, не совсем, те же бары, но рассчитанные не по количеству минут или тиков в одном баре, а по формуле. Половина данных просто отсекается. Все гоняются за избыточными данными я наоборот делаю кастрированные.
      • Capital Management
        26 октября 2018, 12:40
        BRABUS Сергеевич, когда все попробуешь и будит тупик, приходи!
        • tores
          26 октября 2018, 13:47
          CapitalMAN, все ок, только не «будит тупик», а «будет тупик».
  • Антон Иванов
    26 октября 2018, 12:42
    В Вашем случае главным вопросом будет не само тестирование, потому что вариантов с отличной эквити найти можно море. А главной проблемой будет несоответствие результатов реальной торговли, особенно если торговля будет также проходить в ТСЛабе. Много раз запускал параллельно лабу и реальную торговлю (и на арбитраж, и на парный/баскет трейдинг) — в реале результат полный отстой, а в лабе все в шоколаде.
  • VitNik
    26 октября 2018, 12:50
    На вопрос как правильно подходить к бектестам сложно дать однозначный ответ. Всё зависит и от конкретной системы и от опыта самого трейдера.

    Советую отбектестить так как тебе самому кажется на данный момент: «а пойдет и так!...»  А потом запустить его в работу и уже тогда «походупьесы» придет то самое понимание)

    Это как торговать на демо-счете, и надеяться что в реале будет так же. Пока своё бабло не спустишь — розовые очки не снимешь — каждый алго будет граалем)
  • Машковский Евгений
    26 октября 2018, 14:17

         Самое главное это идея, если она со смыслом, то как правило, система будет робастной. С наборами индикаторов лучше не оптимизировать совсем, кроме может быть скользяшек, скорее всего попадете в переподгонку, система будет не стабильной.         Оптимизировать лучше на максимальном количестве данных, при огромном количестве сделок( порядка 5000) на большом интервале данных ( 10-ть лет) при сохранении должной линейности эквити   переподгонка  не возможна. Тут конечно стоит покрутить параметры системы на 20% и посмотреть как меняется выхлоп, чтобы убедиться в устойчивости системы.
       По поводу частой переоптимизации вопрос спорный, например А.Муханчиков как-то в интервью сказал, что подкручивать нет смысла, он в этом ничего не нашел. А.Горчаков тоже в интервью говорил, что больше доверяет параметрам дающий некий средний результат проверенный на большом интервале с разными состояниями рынка, чем постоянное подкручивание, хотя потом в другом интервью сказал, что лучше как можно чаще переоптимизировать.

        Я на своем опыте тоже пришел к выводу, что лучше раз в год оптимизировать на всем интервале данных(чтобы убедиться, что все в пределах нормы), чем частая подкрутка. На самом деле рынки не меняются за неделю, даже годы бывают не стандартные, после чего всё возвращается в нормальное русло. Поэтому переоптимизировать каждую неделю, думаю, смысла нет. Как пример этот год, я делал «хитрую»  переоптимизацию каждую неделю, в результате попал в жуткую убыточную серию (25% слил) начиная с середины августа, а потом сравнил с результатом параметров оптимизированных на всем интервале и офигел, был бы в очень не плохом плюсе, а я циклонулся на каких то временных состояниях рынка, которые бывают раз в несколько лет.

        В общем конечно тут нужен компромисс, а где он никто не знает, каждый решает сам.Удачи!

    • VladMih
      26 октября 2018, 20:01
      Машковский Евгений, вцелом подписываюсь, но очень большое значение имеет тип системы. Одни лучше тестировать на длинном периоде и может быть не оптимизировать или оптимизировать редко, другие так сделать не получится. Сам столкнулся с тем, что интрадей-ТС не могу сделать долгоиграющей на одних настройках — сливает либо слева, либо справа (грубо говоря). Она нуждается либо в грамотной адаптивности, как это происходит при ручном трейдинге (пока сделать не удается), либо в последовательной переоптимизации (не от слова «чрезмерной») время от времени.
      Но даже для неё ваши еженедельные старания ИМХО перебор )
      Хотя, не удивлюсь, если кому-то понадобится и еженедельно.

      нужен компромисс, а где он никто не знает
      100%! Надо искать СВОЮ жарптицу, под свою ТС.
    • SenSoR
      26 октября 2018, 21:02
      Машковский Евгений, Подписываюсь. В тестовом периоде должно быть >1000 сделок, для пущей стабильности. Сам так делаю)
    • А. Г.
      08 ноября 2018, 00:42
      Машковский Евгений, в части «подкручивания» — это было мною сказано относительно только одного вида оптимизируемых параметров: «окон расчета» индикаторов и иных статистик.

      Потому что использование «одного окна», оптимизированного на истории, является методической ошибкой.
      • Машковский Евгений
        08 ноября 2018, 10:12
        А. Г., а «окно расчета»-это имеется ввиду, например период скользящей средней, или  интервал оптимизации?
        • А. Г.
          08 ноября 2018, 10:16
          Машковский Евгений, первое. Только окно расчета может быть не только у скользящих средний, но и у любых «скользяшек». А интервал как раз при пересчетах надо сдвигать, убирая старые данные и добавляя новые.  Т. е. оптимизировать «окна» на последних данных.
          • Машковский Евгений
            08 ноября 2018, 10:36
            А. Г., но ведь последние данные с большой степенью вероятности  это некое  временное состояние рынка, которое может и не повториться или повторяется, но очень редко и получится обычная переоптимизация. Или Вы имеете ввиду, что окно оптимизации должно быть достаточно большим и переоптимизация нам не грозит? Но тогда каков критерий этих окон: весь период, 10-ть лет, 5-ть или 3-и года, как тут быть?
            • А. Г.
              08 ноября 2018, 10:46
              Машковский Евгений, окно оптимизации  должно быть на порядки больше «окон» индикаторов. Но конечно эксплуатируется гипотеза инерционности цен.
              • Машковский Евгений
                08 ноября 2018, 11:09
                А. Г., тогда как понять с одной стороны Вы сторонник не менять значения параметров, оптимизированных на большом интервале истории, а с другой стороны считаете, что чем чаще переоптимизируем параметры смещая это окно истории, тем лучше, так?
                • А. Г.
                  08 ноября 2018, 11:30
                  Машковский Евгений, я уже написал, что считаю, что системы с постоянным окном расчета индикаторов — это методологическая ошибка.  Окно зависит от рынка и может меняться со временем. Если все же отталкиваться от системы с постоянным окном расчета индикаторов, что иного способа понять какое окно соответствует текущему рынку, кроме описанного, я просто не вижу.

                  Лично сам я этот метод не использую, а просто в моих системах окно расчета — это функция от прошлых цен.
                  • Машковский Евгений
                    08 ноября 2018, 14:33
                    А. Г., Лично сам я этот метод не использую, а просто в моих системах окно расчета — это функция от прошлых цен.
                    А если не секрет в двух словах можно поинтересоваться, алгоритмом определения окна расчета и взаимосвязь с прошлыми ценами?
  • Пафос Респектыч
    26 октября 2018, 22:44
    В целом, бэктестинг неправильно понимается как тестирование отдельной системы на истории. Бэктестинг — это скорее способ проверки метода получения системы. В двух словах — если сам метод годный, то он даёт много систем, которые хорошо показывают себя на истории. Если негодный, то даже выбор самой стабильной системы из найденных негодным методом ничего толкового скорее всего не даст, но везение никто не отменял конечно (как и невезение с годной системой).
  • Vanches
    27 октября 2018, 01:05
    Я оптимищирую раз в год, но можно и реже… Есть, например, робот который с 2015 года неизменно торгует в плюс:
    www.mql5.com/ru/market/product/7611

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

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