Walk-forward testing

Walk-forward testing

Тестирование алгоритмической торговой системы (ТС) или модели метода прогнозирования, заключающееся в многократном повторении следующей процедуры:
1. оптимизация параметров ТС\модели в неком окне* на выборке исторических данных
2. проверка качества работы ТС\модели на данных которые она «не видела» (справа от окна по шкале времени)
3. сдвиг окна вправо
4. Goto 1

Метод является обобщением способа тестирования систем на выборкe out-of-sample, и в максимальной степени имитирует реальную алгоритмическую торговлю с периодической оптимизацией параметров.
Недостаток — потребность в вычислительных ресурсов.

* — фактически в «скользящем» окне

5 комментариев

avatar

Вот картинка для наглядности
Комментарий отредактирован 2012-09-06 17:37:55 пользователем ubertrader
avatar
При малом количестве данных реальная альтернатива walk-forward так называемый data snooping, он же один из методов для обучения нейросетей. Суть — выборка делится на 2 части, в первой происходит обучение, вторая отдается под тест. НО! для оценки качества берутся результаты работы НС только из второй части, сеть учится по ним, учится «обобщать» признаки в входных данных, а не курвфитить. Применительно к тестированию ТС этот метод позволяет оптимизировать, а затем сравнить результаты работы на «тестовом» и «обучающем» множествах. При сильном разбросе результатов можно отправлять систему в утиль, вероятность курвфитинга очень высока.
  • DXiT
  • +1
avatar
Фактически оба варианта предполагают подгонку под данные.
Это ни плохо ни хорошо и только реальная торговля показывает что мы наперемешивали.
По мне у изначальноговарианта минус в том что предпосылкой служит факт что состояние рынка на момент оценки продолжится в будущем на форвард-окне. Отсюда вероятность слива в местах перехода низкой волатильности к высокой например.(назову это инерцией реакции метода теста)
Второй метод — аналогия с нейро хорош тем что багаж алгоритмов большой. Но что там обучение накуралесит трудно предсказать. Я пробовал году в 5-м схожую штуку на фаззи логике. Возился с полгода но стабильного ничего не нашел. Для себя сделал вывод что такие игрушки к рынку тяжело применимы — типа гейм-оувэр.
Существует еще методы используемые квантами, которые мне импонируют больше чем указанные выше. Суть в том что на истории измеряются параметры распределений и также определяются границы например в квантилях. Далее используя перемешивание или алгоритмическую симуляцию(а-ля М.Карло или бутстрэп) уточняются зоны неизменности параметров стат и проверками определяются граничные зрны «стабильности» или робастности алгоритма.
В реальной торговле при каждом новом измерении=сделке границы уточняются в одном или нескольких окнах. и так до лежачей восьмерки.
Примерно так. Хуже или лучше не знаю, это дело вкуса. Преимущество в мониторинге каждой сделки.
avatar
Столкнулся тут с картинкой, когда сетап не жил в 2010м, но в 11-м и 12-м вполне себе отрабатывал как положено. При переборке сетапов для вычлененной ТС на основе синергии, выяснилось что часть сетапов не желают работать добром в 12-м году без подтверждающих сигналов, но когда такие упрямцы дружно сигналят, то резалт вполне съедобен. И отпала необходимость в консервации этих сетапов, а тем более отправки их в мусорную корзину. Придется пересмотреть старые наработки именно с таким подходом.
avatar
mrisk121, использовал ли ты методы описанные квантами? если где-н почитаться про это? <br WFA канешн простой как батон, когда происходит переконфигурирование системы с каким-л интервалом, но разделение на границы по квантилям оч разумно.
Комментарий отредактирован 2015-07-23 12:21:47 пользователем fxpublish
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.