Агент для стратегій може забруднити тестову вибірку, навіть не додаючи жодного тестового рядка до навчання. Якщо агент бачить тестову оцінку, змінює параметр і запускає все знову, ця оцінка вже вплинула на стратегію. У коді цей період може називатися «поза вибіркою». Але дослідницький процес уже включив його до пошуку.
Я бачив, як це стається заради зручності: агент запускає пакет експериментів, читає зведену таблицю, а тоді пропонує невелике покращення. Ніхто не просив його підганяти модель під контрольну вибірку. Але цикл зворотного зв’язку все одно зробив це.
Помилка 1: дозволяти агенту підглядати після кожного запуску
Наслідки зазвичай видно за тестовим Sharpe, який акуратно зростає невеликими кроками. Агент пробує 30 варіантів, залишає найкращий, а потім перевіряє ще 30 варіантів навколо нього. Кожна окрема зміна здається розумною. Разом вони перетворюють тестовий період на ціль оптимізації.
Ось спрощений приклад. Припустімо, що стратегія не має справжньої переваги, а ви тестуєте на контрольній вибірці 100 незалежних варіантів. Якщо вибрати варіант із найвищим Sharpe, цілком можливо випадково отримати результат, що виглядає привабливо. У більшості пошуків стратегій варіанти не будуть повністю незалежними, але це не виправляє процес: повторний зворотний зв’язок усе одно винагороджує налаштування, які випадково підійшли до особливостей контрольної вибірки.
Ізолюйте контрольну вибірку від результатів. Агент може працювати з навчальними й валідаційними періодами, але не повинен отримувати метрики чи графіки контрольної вибірки. Фінальну оцінку запускайте окремо й один раз, після фіксації всіх дослідницьких рішень, а разом із результатом зберігайте версію стратегії та знімок даних.
Помилка 2: називати кожен наступний період «новим»
Діапазон дат не стає новим лише тому, що йде після навчального періоду. Якщо агент бачив оцінку за цей діапазон або людина використала просадку, щоб вибрати іншу ознаку, цей діапазон уже став частиною циклу зворотного зв’язку.
| Період | Дозволене використання | Що змінює його статус |
|---|---|---|
| Навчання | Підбір правил і параметрів | Нічого: цей період призначений для пошуку |
| Валідація | Порівняння кандидатів і дослідницькі рішення | Повторне використання підвищує ризик перенавчання |
| Фінальна контрольна вибірка | Одна оцінка зафіксованого кандидата | Перегляд результату й зміна кандидата |
| Майбутній період паперової торгівлі | Проспективне спостереження за роботою під час виконання | Налаштування за результатами створює новий дослідницький цикл |
Ковзна перевірка walk-forward може допомогти оцінити, як фіксований дослідницький процес працює в різні періоди. Але вона не дає права без обмежень підглядати результати кожного фолду. Якщо агент бачить результати фолдів і змінює пошук, ці фолди теж стають зворотним зв’язком. Для рішення, яке ви справді хочете ухвалити, залиште один фінальний недоторканий період.
Помилка 3: фіксувати код, але змінювати запитання
Іноді код стратегії залишається незмінним, але дослідник після перегляду результату змінює саму оцінку: підставляє інший бенчмарк, виключає невдалий місяць, звітує про інший набір інструментів або зосереджується на метриці з найкращим результатом. Тестова вибірка підказала, яку історію розповісти, навіть якщо параметри не змінювалися.
Наслідки видно у відшліфованому звіті з одним переконливим висновком і без записів про інші випробувані варіанти. Акційна стратегія може виглядати слабкою порівняно із широким ринковим індексом, але сильною порівняно з грошовими коштами; криптостратегія може блиснути на одній біржі після перевірки кількох. Такі порівняння можуть бути корисними, але вибір серед них після перегляду контрольної вибірки — це ще один крок відбору.
Ведіть журнал досліджень. Для кожного запуску зберігайте гіпотезу, версію коду, знімок даних, пошук параметрів, вікна оцінювання, запитані метрики та позначку, чи бачив результат агент або дослідник. Стислий журнал корисніший за ідеально переконливу позначку «поза вибіркою».
Перед оцінюванням чітко сформулюйте фінальне запитання: який кандидат, який набір ринків, який бенчмарк, які витрати й які метрики? Якщо після отримання результату відповідь зміниться, вважайте наступний запуск дослідницьким і зарезервуйте нові дані для наступної фінальної перевірки.
Чого ще можна навчитися на забрудненій контрольній вибірці?
Вона не стає марною. Вона може показати, як стратегія поводилася в цей період, і допомогти діагностувати невдачу. Просто не подавайте її оцінку як незалежне підтвердження. Використовуйте її як свідчення для розробки, зафіксуйте наступного кандидата й оцініть його на справді майбутньому періоді паперової торгівлі з тими самими припущеннями щодо обліку та виконання.
У робочому процесі з агентами легко втратити лік експериментам: один запит може створити десятки запусків, перш ніж це хтось помітить. Захист забезпечують чіткі процедури. Обмежте дані, які агент може переглядати, записуйте кожен експеримент і залиште одну оцінку, результат якої не може вплинути на кандидата, що оцінюється.
← Усі статті


