Jump to content

MarketPhilosopher

Sign in to follow this  
  • entries
    13
  • comments
    27
  • views
    11,511

Что насчёт Граалей на истории? Бэк- и форвард-тесты

Dan_pam

1,032 views

587b9d53273d9_9xSxVGe4hI.jpg

 

Недавно пришлось сойтись в одной публичной ветке с AtnFX в полемике. Касательно бэков и форвардов на тестере.

Публикую здесь мысли по этому поводу.

 

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

Есть алгоритм. Есть идея, заложенная в него. Есть МТС, для этой цели созданный. Теперь определимся с терминологией.

 

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

2. Форвард-тест. Понравились результаты бэка? Прогоним их на другом историческом периоде, чтобы узнать, как стратегия себя повела бы, будь создана накануне форвард-периода.

 

Есть негласное правило, что бэк-период должен быть меньше форварда.

Оптимизируем стратегию (допустим, 2010-2011 гг.). Получаем серию сэтов в "Результатах оптимизации". А вот что делать с этими чудесными сэтами дальше, вызывает споры.

 

Выбираем другой временной промежуток под форвард-тест (допустим, 2012-2016 гг.).

 

1) Мой подход (в принципе, стандартный)

 

Прогоняем сэты из бэк-теста на последующих годах. Для этого ранжируем их: по доходности, по размеру просадки, по мат.ожиданию. Какие понравились, те и запускаем на 2012-2016 гг. Сравниваем полученные результаты. Выбираем. Сэт, показавший себя лучше всего, ложится в основу торговой стратегии. Прогонять можно все сэты, выданные "Результатами оптимизации".

 

2) Подход AntFX

 

Перед прогонкой сэта из бэк-теста на последующих годах выбираем самый лучший сэт. Один. Потому что "There can be only one" © Курган

 

Для этого проводим ранжирование по доходности, по размеру просадки, по мат.ожиданию. Понравиться нам может один-единственный. Прогоняем на форварде. Показал себя плохо? Выбрасываем на помойку весь набор сэтов. Причина: прогонка не одного, а всех сэтов на форварде будет означать переоптимизацию. Как если бы все 2010-2016 гг. служили для нас периодом бэк-теста.

 

Так как же обстоят дела в действительности?

 

ПОЛЕМИКА

 

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

Но попробуем потеоретизировать. Сделаю я это в поддержку своей собственной позиции, разумеется.

 

1. По какому параметру выбирать единственный сэт для прогонки на форварде?

Доходность (самый очевидный параметр)?

Ок. Допустим, есть сэт №67 с доходностью 10 000$ и просадкой 7 000$ и сэт №88 c доходностью 9 000$ и просадкой 4 000$. Несмотря на меньшую доходность сэта №88, логично, что он является предпочтительным.

 

Мат.ожидание (М.О.)?

Может быть сэт №80 с М.О. 20 и всего лишь 30 сделками за 2010-2011 гг., а также сэт №111 с М.О. 18 и 300 сделками за 2010-2011 гг. Логично, что первый сэт с 30 сделками не является репрезентативным, несмотря на явно большее М.О. В то время как сэт №111 гораздо точнее, потому что с ним мы были в рынке гораздо чаще и успели совершить 300 сделок вместо 30.

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

 

2. Фактор случайности.

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

Что мешает мне выбрать не 111й, а 55й сэт и удовлетвориться им?

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

Так какая разница, протестирую я только 55й сэт и никакой другой, или выберу его из множества ему подобных?

 

3. Отсутствие прямой корреляции между тестированием на бэк-тестах и реальной торговлей.

Выбирая любой сэт, я также играюсь с вероятностями, как и сравнивая бэки с форвардами. Реал внесёт свои неизбежные коррективы. Следовательно, трейдер не совершает никакой критической ошибки, отдавая предпочтение тому или иному сэту из "Результатов оптимизации".

 

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

 

Всем, кто согласен, предлагаю отписаться в комментариях; тех, кто имеет противоположную точку зрения, призываю высказать свои контраргументы.

Ведь только в споре рождается истина ;)



2 Comments


Recommended Comments

Думаю, любой субъективный выбор периода тестирования - это подгонка. Считаю, для этого лучше использовать заранее придуманную формулу. Такой же подход и к вариантам тестов. Например можно смотреть по 1 параметру соотношение потенциальной годовой доходности к максимальной просадке за этот период.

 

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

 

P.S. Спекуляции это не точная наука как и экономика, поэтому применение формул и инструментов - в большей мере искусство.

  • Thanks 1

Share this comment


Link to comment

 

 

Например можно смотреть по 1 параметру соотношение потенциальной годовой доходности к максимальной просадке за этот период.

 

Именно такой параметр я и выбрал как единственный критерий при выборе сэтов для стратегии. Мне он кажется оптимальным, ничего лучше не придумалось! Ведь это же и есть фактор восстановления, всеми любимый.

 

 

 

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

 

Занятно, такой шаг тоже в свое время был выбран. Только вместо заморозки - экспоненциальное понижение объемов именно на той системе, которая выбивается из общих показателей прибыльности/просадки/etc. А вот про параметр "длительное колебание эквити возле одной отметки", то есть период стагнации системы, раньше не думал. Признателен!

 

 

 

P.S. Спекуляции это не точная наука как и экономика, поэтому применение формул и инструментов - в большей мере искусство.

А вот этим предложением Вы полностью подвели черту под всей полемикой - потому что согласен на 100%! Пока нет общих учебников и каких-то аксиом, пока не выработана, что называется, парадигма - это всё субъективщина. А субъективность - черта именно искусства. Я не сомневаюсь, что есть интуитивно торгующие прибыльные трейдеры, хоть и не представляю логику их работы. Так же как не представляю, как работают талантливые художники или поэты))

Видимо, и правда наш спор с AntFX'ом был просто спором двух противоположных субъективных подходов. И критерий тут может быть только один - прибыльность, показанная при использовании того или иного подхода.

 

Спасибо, ReAcT, Вы помогли мне избавиться от заблуждения, что какой-то один подход может быть объективной истиной в последней инстанции)) Просто научный подход всегда кажется априори точнее. Но иногда (!) излишне жёсткие алгоритмы действительно сдерживают развитие.

Share this comment


Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×