Блог им. mazda491491

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

    • 26 октября 2018, 10:38
    • |
    • to be
  • Еще

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

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

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


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

 

★4
47 комментариев
Как то период маловат сам по себе. Почему не взять данные с 2008 года? И тут уже крутить-вертеть.
avatar
Max, дак а как правильно крутить-вертеть? Перебирать каждый год с 2008 по 2018 и довериться лучшему среднему параметру?
avatar
BRABUS Сергеевич, ну как ниже написали, если парный трейдинг, то наверно глубину данных можно и поменьше взять. тут зависит от стратегии. 

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

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

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

У меня есть стратегия по золоту. Параметры подбирал на выборке 2008-2018 гг. Стратегия получилась не плохая, но проблема в том что с 2014 года нет прибыли практически совсем. Как я себе объясняю, потому что с 2014 года в золоте флэт. Вот думаю, торговать такую стратегию или нет.
avatar
Max, спасибо! Увидел полезное.Попробую.
avatar
Max, а стоит ли насторожиться, если одни и те же параметры дают профит по каждому году в отдельности?










avatar
BRABUS Сергеевич, то что стратегия с одним набором параметров плюсует с 2015 года — это хорошо на мой взгляд. Значит она стабильна на этом горизонте, при условии что средняя сделка перекрывает проскальзывания, комиссию и спрэд. Но что настораживает, достаточно ли истории с 2015 г. для оценки ее стабильности. В моем случае с золотом смена тренда на флэт повлияла на ее доходность. Если в 2019 ваш торговый инструмент тоже сменит режим, то это так же может повлиять на доходность, несмотря на хорошие результаты по четырем предыдущим годам. Поэтому тестирование на большем горизонте все же даёт меньший риск переполняет. Если все же нет возможности тестить на более ранних годах или там стратегия не работает, то торговал бы стратегию с учётом риска переподготовки, меньшим обьемом или как правильно заметили держа руку на пульсе.
avatar
Max, да, пожалуй прогоню еще пятью годами ранее.Благодарю за совет.
avatar
BRABUS Сергеевич, рад помочь!
avatar
исправьте топик на «Научите зарабатывать деньги»
или хотя бы укажите что понимаете под арбитражем?
avatar
vfreeman, ну началось… А по существу? Какая, в принципе разница, арбитраж это или трендовые ТС.Вопрос про оптимизацию.
avatar
Время удержания позиции от часа до 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

avatar
bocha, по существу 
avatar
Я пытаюсь так.
1) Прогоняю последний год. Смотрю на эквити не очень удачные участки. Беру их в оборот

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

и тд.
avatar
Андрей К, вот уже вкуснее.Спасибо.А что такое самоадаптация и как ее приготовить?
avatar
BRABUS Сергеевич, ну чтобы на понятном языке, я приведу пример какой то мелочи

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

это все на бектесте вычисляется на раз.
avatar
Андрей К, серьезный подход.У меня скрипт такое не умеет… пока.
avatar
BRABUS Сергеевич, ну вот вы стат арбитраж торгуете. Мне кажется волатильности инструментов в корзине полюбому надо смотреть. А так же считать текущие корреляции, чтобы не влететь.
avatar
Андрей К, волу оцениваю.Тут всё норм.Т.е. мне стоит почаще перетряхать роботов? Держать руку на пульсе, так сказать… Пару раз в квартал, думаю, будет правильно.
avatar

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

 

avatar
Идеального (единственно правильного) варианта никто так и не придумал. Каждый сам для себя выбирает подход, который он использует для оптимизации. Единственное, на что можно обратить внимание, это то, что для разных типов стратегий эти подходы также могут быть разными.
avatar
Prophetic, да, спасибо.По ходу так и есть…В условиях постоянно изменяющегося рынка буду делать оптимизацию почаще, исходя из стиля торговли
avatar
 А это смотря какими данными оперировать. Например на обычных японских свечах я свои стратегии каждый месяц оптимизировал и получал различные результаты, потом стал пользоваться агрегированными котировками построив синтетический график и теперь вообще не оптимизирую, потому что смысла нет- параметры всегда примерно одинаковыми остаются.
avatar
Vovilnik, вы имеете ввиду volume-бары (к примеру)?
avatar
BRABUS Сергеевич, не совсем, те же бары, но рассчитанные не по количеству минут или тиков в одном баре, а по формуле. Половина данных просто отсекается. Все гоняются за избыточными данными я наоборот делаю кастрированные.
avatar
Vovilnik, люблю интрижки)Покопаюсь в этом вопросе.
avatar
BRABUS Сергеевич, когда все попробуешь и будит тупик, приходи!
avatar
CapitalMAN, все ок, только не «будит тупик», а «будет тупик».
avatar
В Вашем случае главным вопросом будет не само тестирование, потому что вариантов с отличной эквити найти можно море. А главной проблемой будет несоответствие результатов реальной торговли, особенно если торговля будет также проходить в ТСЛабе. Много раз запускал параллельно лабу и реальную торговлю (и на арбитраж, и на парный/баскет трейдинг) — в реале результат полный отстой, а в лабе все в шоколаде.
avatar
Антон Иванов, не, не, не.Торговать в ТСлабе это я не стану.Он мне нужен только в роли тестера.
avatar
На вопрос как правильно подходить к бектестам сложно дать однозначный ответ. Всё зависит и от конкретной системы и от опыта самого трейдера.

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

Это как торговать на демо-счете, и надеяться что в реале будет так же. Пока своё бабло не спустишь — розовые очки не снимешь — каждый алго будет граалем)
avatar

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

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

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

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

нужен компромисс, а где он никто не знает
100%! Надо искать СВОЮ жарптицу, под свою ТС.
avatar
Машковский Евгений, Подписываюсь. В тестовом периоде должно быть >1000 сделок, для пущей стабильности. Сам так делаю)
avatar

Машковский Евгений, большое спасибо за развернутое мнение! Прислушаюсь.

п.с. Индикаторов в моих ТС нет и кол-во сделок переваливает 5000)

avatar
Машковский Евгений, в части «подкручивания» — это было мною сказано относительно только одного вида оптимизируемых параметров: «окон расчета» индикаторов и иных статистик.

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

Лично сам я этот метод не использую, а просто в моих системах окно расчета — это функция от прошлых цен.
avatar
А. Г., Лично сам я этот метод не использую, а просто в моих системах окно расчета — это функция от прошлых цен.
А если не секрет в двух словах можно поинтересоваться, алгоритмом определения окна расчета и взаимосвязь с прошлыми ценами?
Машковский Евгений, ну это следствие моей кусочно-постоянной модели

www.youtube.com/watch?v=hZW43NpNM24
avatar
А. Г., Спасибо, попробую разобраться))))))
 Ребят, всем большое спасибо.
avatar
В целом, бэктестинг неправильно понимается как тестирование отдельной системы на истории. Бэктестинг — это скорее способ проверки метода получения системы. В двух словах — если сам метод годный, то он даёт много систем, которые хорошо показывают себя на истории. Если негодный, то даже выбор самой стабильной системы из найденных негодным методом ничего толкового скорее всего не даст, но везение никто не отменял конечно (как и невезение с годной системой).
Я оптимищирую раз в год, но можно и реже… Есть, например, робот который с 2015 года неизменно торгует в плюс:
www.mql5.com/ru/market/product/7611
avatar

теги блога to be

....все тэги



UPDONW
Новый дизайн