Оптимізація методом покрокового аналізу
Оптимізація методом покрокового тестування (англ. Walk Forward Optimization) — це метод, що використовується у фінансах для визначення оптимальних параметрів торгівельної стратегії та оцінки її надійності. Аналіз методом покрокового тестування (Walk Forward Analysis) був створений Робертом Е. Пардо у 1992 році[1] і розширений у другому виданні його книги.[2] Нині аналіз методом покрокового тестування широко вважається «золотим стандартом» у тестуванні торгівельних стратегій.
Торгівельну стратегію оптимізують на основі даних у межах вибірки (in-sample data) з ряду даних. Решта даних резервується для тестування поза вибіркою (out-of-sample testing). Невелика частина зарезервованих даних, що слідує за даними з вибірки, використовується для тестування, і результати записуються. Потім часовий інтервал вибірки пересувається вперед на період, який охоплював тест даних поза вибіркою, і процес повторюється. У підсумку всі записані результати використовуються для оцінки торгівельної стратегії.[3]
Після знаходження найкращих параметрів система тестується на іншому сегменті даних. Ці два сегменти даних не перетинаються. Це й називається одним циклом покрокового тестування або тестування поза вибраним інтервалом. Цей підхід поєднує кілька методів і допомагає створювати надійні системи.
Минулі дані використовуються для ретроспективного тестування торгової системи. Це означає застосування торгової системи до історичних даних, щоб перевірити, як вона працювала б у певний період, і є корисним, якщо система не була прибутковою в минулому.[4]
Форвардне тестування (Forward Testing, також відоме як Walk Forward Testing) є симуляцією реальних ринкових даних виключно на папері. У цьому випадку трейдер рухається разом із ринками в реальному часі, але не використовує реальні гроші, а здійснює віртуальну торгівлю для кращого розуміння рухів ринку. Тому цей метод також називають «паперовою торгівлею» (Paper Trading). Форвардне тестування продуктивності є симуляцією фактичної торгівлі й передбачає дотримання логіки системи в реальному ринку.[4]
Однією з найбільших проблем у розробці систем є те, що багато з них не витримують перевірки часом. Це може статися з кількох причин. Перш за все, система може не ґрунтуватися на дійсній передумові. Крім того, тестування може бути ненадійним через такі фактори:
- Відсутність надійності системи через неправильний вибір параметрів. Система вважається надійною, якщо вона працює добре за будь-яких ринкових умов.
- Непослідовні правила та неправильне тестування системи за допомогою «даних з вибірки» та «даних поза вибіркою».
Аналіз методом покрокового тестування (Walk Forward Analysis) виконує оптимізацію на навчальному наборі даних, тестує її на періоді після цього набору, а потім зміщує цей інтервал вперед і повторює процес. Цей підхід створює кілька періодів тестування поза вибіркою, і результати об'єднуються для аналізу. Аналіз методом покрокового тестування вперше представив Роберт Е. Пардо у першому виданні своєї книги Design, Testing and Optimization of Trading Systems у 1992 році. Перше точне програмне впровадження цього методу було створено корпорацією Pardo у застосунку Advanced Trader і вдосконалено в інших програмах, таких як Blast та XT. Метод покрокового тестування дозволяє моделі торгівлі бути на крок попереду ринку.[5] Цей підхід отримав назву покрокового через багаторазове навчання та тестування, що зменшує ймовірність перенавчання моделі. Аналіз методом покрокового тестування вперше був представлений у журналі Futures (нині закритому) у своїй зародковій формі.
Покрокове тестування дозволяє розробити торгову систему, зберігаючи розумний «ступінь свободи». Воно переносить ідею тестування поза вибіркою на наступний рівень. Це специфічна реалізація методу, відомого як крос-валідація. Суть у тому, щоб використовувати сегмент даних для оптимізації системи і ще один сегмент даних для її валідації. Наприклад, оптимізується вікно даних розміром 1000 барів, а тестування проводиться на наступних 200 барах. Потім усе це зміщується вперед на 200 барів, і процес повторюється. Це забезпечує великий період даних поза вибіркою та дозволяє оцінити стабільність системи з часом.
Для прикладу розглянемо стратегію на основі ковзної середньої. Припустимо, ви берете перші три місяці даних і виявляєте, що для цього періоду оптимальною є ковзна середня з періодом 20 хвилин (на основі тикових даних). Далі ви перевіряєте це правило, оцінюючи його продуктивність у четвертому місяці (наприклад, за такими показниками, як прибуток, співвідношення ризик/винагорода або інша статистика). Потім ви повторюєте оптимізацію, використовуючи дані з 2-го по 4-й місяць, а валідацію — на 5-му місяці, і продовжуєте процес, поки не дійдете до кінця доступних даних.
Результати, які ви отримуєте для місяців валідації (4–13), є вашою продуктивністю поза вибіркою.
Перед тим як виконувати ретроспективне тестування або оптимізацію, необхідно підготувати історичні дані за певний період. Цей сегмент історичних даних поділяється на два типи:
- Дані «з вибірки»: Це сегмент ринкових даних з минулого (історичних даних), який резервується для тестування. Ці дані використовуються для початкового тестування та оптимізації, а також для встановлення базових параметрів системи, яку тестують.
- Дані «поза вибіркою»: Це зарезервований набір даних (історичних даних), який не входить до даних з вибірки. Його важливість полягає в тому, що він дозволяє тестувати систему на іншому періоді історичних даних, що не використовувався раніше. Це допомагає усунути будь-яку упередженість чи вплив на перевірку продуктивності системи.
Повний процес аналізу з урахуванням просування вперед полягає у знаходженні оптимальних параметрів для торгової системи за допомогою вхідних даних (із вибірки), а потім застосуванні даних, які не входять до зразка, до системи. Цей процес повторюється протягом усього історичного періоду тестування.
![]() | Цей розділ може містити оригінальне дослідження. (17 січня 2025) |
Для кращого розуміння, будь ласка, подивіться приклад тут.[6]
Для оцінки будь-якої системи потрібно перевірити її ефективність, використовуючи «дані поза вибіркою» (тестові дані), а не «дані в вибірці» (дані, що використовуються для оптимізації системи). Таким чином, тестування за методом walk-forward визначає ефективність оптимізованої системи шляхом складання статистики ефективності всіх вікон поза вибіркою. Це підсумок ефективності аналізу покрокового тестування.
- Чи є вона надійною? Торгову стратегію вважають надійною, якщо вона показує позитивний підсумок ефективності. Надійна стратегія — це та, яка, ймовірно, продемонструє реальні результати торгівлі, що відповідають її профілю розробки. Оцінка торгової стратегії як торгового активу є абсолютно іншим процесом. Див. опубліковану цитату 2, сторінки 263—280.
- Чи є вона «перенавченою»? Це складна тема. Загалом стратегії, які «перенавчені», зазнають невдачі під час аналізу покроковим методом. Однак, слід зазначити, що стратегія може бути надійною і одночасно виявляти певні ознаки перенавчання. Наприклад, коли стратегія удосконалюється шляхом додавання різних компонентів і фільтрів, це може призвести до певного рівня перенавчання. Якщо трейдер виявить це, залежно від ступеня, доцільно відмовитися від таких змін. Детальніше про це див. опубліковану цитату 2, сторінки 281—300.
- ↑ Pardo, Robert E. (1992). Design, Testing and Optimization of Trading Systems (вид. 1st). US: J. Wiley. с. 108—119. ISBN 0-471-55446-4.
- ↑ Pardo, Robert E. (2008). The Evaluation and Optimization of Trading Strategies (вид. 2nd). US: J. Wiley. с. 237—262. ISBN 978-0-470-12801-5.
- ↑ Kirkpatrick, Charles D.; Dahlquist, Julie R. (2010). Technical Analysis: The Complete Resource for Financial Market Technicians. FT Press. с. 548. ISBN 978-0-13-705944-7.
- ↑ а б Folger, Jean. Backtesting and Forward Testing: The Importance of Correlation. Investopedia.
- ↑ Walking forward can keep a trading model a step ahead.
- ↑ Can your system do the walk? | Futures. www.futuresmag.com. April 2023.