Поширені помилки криптобектесту та способи їх виявити
Найнебезпечніші помилки бектесту покращують результат, а не роблять графік явно зламаним. Надійна перевірка шукає витік інформації, багаторазове підлаштування, відсутні витрати й надмірну концентрацію до запитання про прибутковість стратегії.
Усуньте використання майбутніх даних і часові зміщення
Використання майбутніх даних виникає, коли рішення спирається на відомості, яких у змодельований момент ще не було. Поширені приклади: вхід за ціною закриття тієї самої свічки, що сформувала сигнал; передчасне використання закритої свічки старшого таймфрейму; вибір вигідного порядку максимуму й мінімуму всередині однієї свічки.[4][2]
Ураховуйте всі перевірені ідеї та параметри
Якщо перевірено сотні варіантів, а показано лише найкращий, його результат містить удачу відбору. Ведіть журнал експериментів, обмежуйте кількість вільних параметрів і залишайте дані, що не впливали на вибір правил. Сусідні значення параметрів мають утворювати стійку область, а не єдиний вузький пік.[3][4]
Ураховуйте не лише запуски формального оптимізатора. Зміна списку інструментів, періоду, сімейства індикаторів, типу виходу, орієнтира або порога успіху після перегляду результату — теж спроба. Записуйте кожну таку спробу. Якщо результат уже вплинув на рішення, відносьте ці дані до розроблення й шукайте справді незалежне підтвердження. Що ширшим був пошук, то вищою має бути планка для підсумкового кандидата.
Вивчайте всю область параметрів, а не лише рядок-лідер. Перевірте невелику сітку навколо вибраних значень і шукайте широке плато подібних результатів у різні періоди. Один різкий пік указує на залежність від окремих історичних спостережень. Краще просте значення всередині стійкої області. Порівнюйте одночасно чистий результат, просадку й кількість угод: гладка поверхня дохідності може приховувати надто малу вибірку.
| Ознака | Чому це небезпечно | Як перевірити |
|---|---|---|
| Працює одне точне значення | Оптимум може бути випадковим шумом | Перевірити сусідні значення |
| Багато відкинутих варіантів | Реальну кількість спроб приховано | Записати всі перевірені сімейства правил |
| Результат є лише на навчальній вибірці | Правила могли запам’ятати один період | Зафіксувати правила й перевірити пізніше |
| Складні фільтри й мало угод | Вільних параметрів більше, ніж даних | Спростити модель або розширити вибірку |
Перевірте повноту даних і склад інструментів
Якщо використовувати лише активи, доступні сьогодні, з історії зникнуть невдалі та вилучені з лістингу інструменти. Пропуски свічок, недостатнє прогрівання індикаторів, зміна специфікацій контрактів і неповні ряди фінансування чи відкритого інтересу непомітно змінюють сигнали. Зберігайте попередження й указуйте склад доступних інструментів для кожного історичного моменту.
Спочатку складіть звіт про повноту даних. Для кожного інструмента вкажіть першу й останню доступну часову мітку, пропуски та дублікати, період прогрівання, необхідні зовнішні ряди й причини вилучення. Порівняйте фактично доступний набір інструментів із заявленим ринком стратегії. Якщо в тесті використовуються лише поточні лістинги, прямо зазначте зміщення вцілілих. Не підміняйте відсутнє зовнішнє спостереження нулем, якщо джерело не визначає нуль як коректне значення.
- До розрахунку сигналів знайдіть пропущені й дубльовані свічки.
- Залиште достатньо попередніх даних для прогрівання кожного індикатора.
- Зафіксуйте делістинги, перейменування та періоди недоступності інструментів.
- Не додавайте прибутковий інструмент після перегляду результату.
- Вважайте неповний ряд зовнішніх сигналів обмеженням, а не нульовими подіями.
Змоделюйте виконання, витрати, плече та ліквідацію
Якщо вважати виконаною будь-яку лімітну заявку за одного дотику ціни, ігнорувати bid-ask-спред, списувати одну комісію замість комісії за кожне виконання або пропускати фінансування, можна отримати прибуток, недосяжний на ринку. Плече має впливати на маржу й ризик ліквідації; не можна множити на нього лише прибутковий PnL.
Перевірте модель на несприятливих прикладах: свічка торкнулася і стопу, і цілі; ціна відкрилася за стопом; ліміту торкнувся лише екстремум; розмір нижчий за біржовий мінімум; позиція з плечем наблизилася до ліквідації. До розрахунку запишіть очікувану поведінку моделі. Невизначеність усередині свічки показуйте як обмеження або діапазон чутливості, а не як точне вигідне виконання.
правдоподібний чистий результат = валовий торговий результат − усі витрати виконання + фінансування зі знакомКонкретна формула залежить від продукту, але кожне припущення має бути видимим і перевірюваним. Якщо невелике погіршення виконання знищує перевагу, у стратегії немає достатнього запасу.
Не використовуйте показники, що приховують крихкість
Частка прибуткових угод без відношення середнього прибутку до середнього збитку, дохідність без просадки та річний перерахунок короткого періоду можуть вводити в оману. Перевіряйте кількість і розподіл угод, час відновлення, концентрацію за інструментами й місяцями, а також порівняння з простим орієнтиром. Одна виняткова угода не повинна приховувати постійні збитки.
- Порівняйте чистий і валовий PnL із простим орієнтиром.
- Перевірте максимальну просадку й час нижче попереднього максимуму капіталу.
- Знайдіть найбільшу угоду й перерахуйте результат без неї.
- Розбийте результат за періодами, інструментами, напрямками та режимами волатильності.
- Переконайтеся, що контрольна вибірка не використовувалася під час розроблення правил.
Критично перевірте привабливий бектест
Припустіть, що результат завищений, і спробуйте знайти механізм, перш ніж прийняти його.
- Побудуйте часову шкалу доступності кожного сигналу й можливого виконання.
- Перелічіть усі перевірені варіанти, відхилені параметри та рішення щодо складу інструментів.
- Перерахуйте результат із консервативним виконанням, повними витратами й реалістичним фінансуванням.
- Вилучіть найбільшу прибуткову угоду й розділіть решту угод на незалежні періоди.
- Запишіть нерозв’язані обмеження й виберіть: відхилити стратегію або призначити окрему перевірку.
Перевірка бектесту на типові помилки
Не переводьте стратегію далі, доки залишається невідомим хоча б один критичний елемент.
- Жоден сигнал не використовує майбутні або ще не закриті дані.
- Кількість перевірених варіантів і процес відбору задокументовано.
- Склад інструментів, прогрівання й пропуски історії доступні для перевірки.
- Виконання, комісії, спред, прослизання, фінансування, плече та ліквідація моделюються послідовно.
- Дохідність оцінюється разом із просадкою, розподілом, орієнтиром і контрольною вибіркою.
Чому контрольний список не є доказом
Така перевірка зменшує відомі способи завищити історичний результат, але не усуває невідомих дефектів даних, помилок реалізації, змін ринку й майбутньої ліквідності. Ретельний бектест — сильніший експеримент, а не гарантія. Paper, тестове середовище та обмежений запуск із реальним капіталом залишаються окремими перевірками.
Джерела та додаткове читання
Поведінку продукту звірено з документацією та кодом SteadyEdge, а змінні відомості про біржі й платформи ведуть на актуальні офіційні джерела.
- Як SteadyEdge оцінює стратегіїSteadyEdge
- Чому результати реальної торгівлі та ретроспективної перевірки відрізняютьсяДовідковий центр SteadyEdge
- Як перенавчання під час ретроспективної перевірки у фінансах призводить до хибних відкриттівSignificance / Oxford Academic
- Глибоке навчання з підкріпленням для торгівлі криптоактивами: практичний підхід до усунення перенавчання під час ретроспективної перевіркиarXiv
Перевірте помилки до додавання нового індикатора
Використовуйте методологію та попередження SteadyEdge, щоб критично перевірити поточний звіт. Спочатку усуньте проблеми якості даних і моделі, а вже потім намагайтеся покращувати показники.