Когда трейдер только сталкивается с торговлей алгоритмами, первое за что берется каждый — это создание стратегий и проверка идей. Подогнав кривую под исторические данные можно быстро разочароваться в результатах своего hand-made творения, поставив стратегию на реал.
Для того, чтобы проверить стратегию на устойчивость профессиональные разработчики торговых систем прибегают к разным методикам, при этом и те и другие и третей могут зарабатывать.
Начинающие трейдеры не парятся и просто используют методику ротации. Другими словами, после оптимизации мы не проверяем стратегию на устойчивость, мы просто верим, что стратегия будет торговаться подобным образом и снимем ее в тот момент, когда она подойдет в порогу просадки, которую мы заранее установили!
Опытные трейдеры пользуются более продвинутыми методиками:
- Некоторые подбирают стратегию таким образом, чтобы она в очень большом диапазоне параметров была в положительной зоне, то есть, чтобы вообще практически не было отрицательных значений, но таких алгоритмов единицы.
- Некоторые, используют тестирование на случайном временном ряду, такая фишка есть у S#, а также некий рендомный провайдер данных в WLD.
- Часть разработчиков просто перемешивают результаты сделок в случайной последовательности, как это сделано в WLD, визуализатор «Monte Carlo». На мой взгляд они используют не верную методику, так как перемешиваются уже прооптимизированные сделки, однако, в этом модуле достаточно настроек-регуляторов, чтобы убить даже стабильную стратегию)).
- Самые умные ребята генерируют множество временных рядов с теми же характеристиками, что и временной ряд, торгуемого инструмента и проводят оптимизацию на «дочерних» временных рядах.Это самый затратный по времени способ, но самый объективный. И это наиболее близко к тому о чем писал в своих книгах Нассим Талеб.
(Привожу видео Арсена Яковлева из его интервью, многие просили еще раз и без музыки)
Продолжение внизу!
- Также, я слышал от коллег, что фонды используют технологию CUDA для того, чтобы переоптимизировать каждую из своих стратегий после каждой сделки, создавая таким образом адаптивные системы. Возможно в меру моего малого опыта, пока не понимаю куда бы я мог применить такой метод в собственной торговле и исследованиях.
- Американские специалисты любят прогонять все на огромном числе тикеров за длительный период времени, коих там тысячи.
- Я же использую форвардное тестирование. То самое про которое рассказывал…Роберт Пардо в обоих изданиях своей книги «Разработка, тестирование, оптимизация торговых систем для биржевого трейдера»
В тот момент, когда у меня запустился проект по автоматизации форвардного оптимизатора, я и не мог себе представить, что Wealth вскоре сделает целое приложение и встроит его в WLD.
И несколько месяцев, я считал его одним из своих секретных орудий, про которые не рассказывал даже ближайшим алго-товарищам.
Что он из себя представляет:
1) Полная адаптация с интерфейсом WLD
2) Генетическая оптимизация в основе нахождение оптимальных параметров
3) Гибкость выбора окон тестирование
4) Гибкость при выводе любых статистик
5) Сохранённые общей кривой эквити
6) Сохранение всех результатов в Excel и Exml, которое можно загрузить в WLD и посмотреть
Вот так, он выгляди в Wealth наряду с другими оптимизаторами. Назвал я его TestOptimizer, так как — это был первый эксперимент с оптимизаторами вообще, и работы по нему с переменным успехом шли около месяца.
Овалами закрашены другие наработки о которых, я возможно расскажу в будущем, но не сегодня.
Настройки моего форвардного оптимизатора:
Вывод результатов:
Сейчас уже всем известно, что в WLD появился форвардный тестер и я не расстроился тому что он вышел...
1) На мой взгляд он удобен
2)он может использовать либо генетику либо прямой перебор либо Monte-Carlo.
3)Статистические показатели там также можно использовать любые, применяя различные ScoreCards — которые я также считаю своим секретным оружием))
Вывод результатов:
Главным же его минусом конкретно для меня, то что мы не можем ничего поменять, а можем лишь использовать только программу «из коробки».
Например, сохранение в Excel формате результатов, либо формирование окна тестирование не на основе временного периода, а на основе репрезентативного количества сделок — что, кстати, очень актуально!
Поэтому мои наработки все также остаются для меня важными, а для общественности секретными, однако Wealth-lab и без моих фитч поможет развеять представления о прибыльности любой торговой идеи быстро и без лишних движений ;)
Выводы:
- Тестировать стратегии на устойчивость, желательно многими способами
- не бояться разрабатывать новые фитчи и использовать их!
По поводу других методов тестирование на устойчивость скажу только что они все нормальные, до некоторых из них нужно дорасти.) Пока же можно пользоваться тем, что есть)
PS. Да, я проводил исследование, хоть и не глубокое, на тему какие именно сочетания форвардного тестирования работают лучше. Оказалось, что результаты сильно будут варьироваться скорее в зависимости от стратегии, а не от подбора периодов In Sample и Out of Sample. Лично мне больше всего нравится 6 месяцев оптимизации и 3-6 месяцев Out of Sample.
PS.2 Про WFO (Форвардный тестер Wealth-lab) не рассказываю, так как про него
информации и так в избытке
PS.3 Людей знающих другие интересные методики тестирования стратегий на устойчивость прошу писать комменты!
Если Вам интересен трейдинг
ставьте пожалуйста плюс!
Убрать боль от эмоциональных трейдов, тестировать свои и чужие идеи, автоматизировать рутину:
__Сюда__
Зачем тестировать на случайном временном ряду?
Лично я не использую, но кому-то наверное помогает, раз везде есть такая функция)
Если же процесс делать не броуновским, а с памятью--то зарабатывать на нем будут заточенные под такую память системы. Например, трендовые системы для трендового процесса. Но какое все это имеет отношение к зарабатыванию реальных денег на реальном рынке--не понятно.
-Также, это лучше, чем вообще никак не тестировать на устойчивость, не правда ли !?
Я согласен с тем, что изготовление синтетических тикеров с определенными свойствами имеет некоторую пользу. Однако, задача моделирования рынка--это:
а) Сложнейшее дело, над которым думают лучшие академические умы, и, в общем, мало что у них получается.
б) Не имеет прямого отношения к заработку спекуляцией.
По опыту, когда система хороша, то ей даже ООС не нужен особо, не говоря уж про более изощренные методы. Просто ты понимаешь, откуда и что, причем зачастую еще до написания кода. Пишешь код и видишь, что оно работает везде, где должно работать--вот и вся устойчивость. Примеры: smart-lab.ru/blog/142195.php, smart-lab.ru/blog/153193.php
Кстати, Чечету тот же вопрос — генерирует стратегии десятками — почему бы не делиться с Горчаковым?
Со мной делиться бесполезно — я ленив и женат на своей ТС.
1) Общее. Зачем мне что-то кому-то подсказывать или делиться? Как говорится, офер есть, а дальше уж дело людей--брать этот офер или нет. Это рынок--тут все добровольно.
2) А. Г.--человек очень высокого уровня, думаю, он сам знает, что и как ему делать. Он один из немногих публичных людей в биржевом сообществе, с кем можно общаться на нормальном уровне. Отлично знает математику и успешно торговал уже тогда, когда я еще изучал, что такое стакан. Мы с ним общались, думаю, мои подходы ему известны.
Честно говоря различного рода тестирования — это полная чушь.
Сразу видно, что вы сначала пошли учиться программировать, а потом занялись трейдингом.
В этом вся проблема — вы не понимаете <механику рынка>! Это первичное, а вторичное написание стратегии!
Если понимаете механику рынка, то заниматься подгонкой стратегии будет стыдно!
Всякого рода бэктестеры — это лишь возможность монетизировать разработку автора и не более. И еще возможность пыль в глаза пустить непонимающим людям.
Конечно же вы напишите, что это не так.
Пусть каждый останется при своем мнении.
В свою же очередь могу сказать, что до конца года я постараюсь предоставить публике робота у которого из всех изменяемых параметров будет только настройка риск-менеджмента и все (1-2 параметра)! Больше ничего не надо менять когда понимаешь <механику рынка>!
Только без обид!
PS я начал с инвестирования, учась еще на первом высшем.
Затем поступил на факультет Финансового инжиниринга (начал интересоваться арбитражем и скальпингом, прошел кучу курсов) и только потом начал программировать. И программировать я учился на курсах по созданию стратегий, а затем с репетитором =)
Удачи Вам и вашему устойчивому роботу!
2 интервал тестирования = 1000-10000 сделок
Ну 80-90% — это входит в диапазон от 60% =)
За коммент спасибо)