Бектест без ілюзій: чому прибуток на історії не гарантує результат у реальній торгівлі
Бектест — один із найкорисніших інструментів у системному трейдингу. Він дозволяє перевірити торгову ідею на історичних даних, побачити кількість угод, відсоток прибуткових входів, максимальну просадку та загальний фінансовий результат.
Але бектест має небезпечну особливість: він може виглядати значно краще, ніж стратегія працюватиме в реальності.
Красивий графік капіталу, високий winrate і великий історичний прибуток ще не означають, що система має стійку перевагу.
Історія показує, що могло б відбутися за певних припущень.
Реальна торгівля показує, що відбувається зі справжніми сигналами, комісіями, затримками, помилками та ринком, який постійно змінюється.
Чому хороший результат на історії може вводити в оману
Коли трейдер тестує десятки фільтрів, параметрів і комбінацій, він поступово підлаштовує стратегію під уже відомі дані.
Наприклад, можна підібрати:
• ідеальне значення індикатора;
• найвигідніший таймфрейм;
• точний розмір стопа;
• оптимальний період ковзної середньої;
• найкращі години для входу;
• відповідний набір активів;
• фільтр, який прибирає історично збиткові угоди.
Після великої кількості спроб майже завжди можна отримати привабливий результат.
Проблема полягає в тому, що стратегія може вивчити не закономірність ринку, а випадкові особливості конкретного історичного періоду.
Так виникає переоптимізація.
Що означає переоптимізація стратегії
Переоптимізована стратегія ідеально пояснює минуле, але погано адаптується до майбутнього.
Вона може показувати високий результат на даних, на яких створювалася, і різко погіршитися після запуску.
Зазвичай така система має занадто багато точних умов:
• індикатор має перебувати вище певного значення;
• вхід дозволений лише у вузький проміжок часу;
• волатильність має потрапляти в обмежений діапазон;
• ціна має бути на точно визначеній відстані від середньої;
• кілька додаткових фільтрів мають збігтися одночасно.
Кожен фільтр окремо може виглядати логічним. Але разом вони можуть створити систему, яка працює лише на обмеженій ділянці історії.
Чим складніша стратегія, тим важливіше перевіряти, чи справді кожен фільтр підвищує її стійкість, а не просто видаляє минулі збиткові угоди.
Комісії можуть знищити перевагу
У тестах часто недооцінюють торгові комісії.
Особливо сильно це впливає на стратегії з великою кількістю угод і невеликим середнім прибутком на одну позицію.
Уявімо, що стратегія в середньому заробляє 0,35% на угоду. Якщо комісії за вхід і вихід разом із прослизанням забирають 0,15–0,25%, більша частина переваги зникає.
Потрібно враховувати:
• комісію за відкриття позиції;
• комісію за закриття позиції;
• funding на ф’ючерсах;
• витрати під час часткових виходів;
• погіршення ціни виконання;
• різницю між очікуваною та фактичною ціною входу.
Стратегія має залишатися прибутковою після всіх реальних витрат, а не лише до них.
Прослизання: ціна в тесті та ціна в реальності
На історичному графіку вхід часто виглядає ідеальним.
Сигнал з’явився за ціною 100, і тест вважає, що позиція була відкрита саме за ціною 100.
У реальній торгівлі між появою сигналу та виконанням ордера минає певний час. За цей період ціна може змінитися.
Це називається прослизанням.
Воно стає особливо небезпечним:
• під час різких рухів;
• на малоліквідних активах;
• при великому розмірі позиції;
• під час важливих новин;
• при використанні ринкових ордерів;
• коли багато учасників входять одночасно.
Навіть невелике систематичне погіршення ціни входу може суттєво зменшити profit factor і збільшити просадку.
Якість історичних даних
Будь-який тест залежить від даних, на яких він побудований.
Якщо дані неповні або неточні, результат тестування також буде ненадійним.
Можливі проблеми:
• пропущені свічки;
• неправильні значення high або low;
• невідповідність часових поясів;
• відсутність реальних bid і ask цін;
• використання закриття свічки замість доступної ціни виконання;
• відмінності між даними TradingView і конкретної біржі;
• неправильна обробка одночасного торкання TP і SL.
Особливо важливо визначити, що сталося першим, якщо всередині однієї свічки ціна торкнулася і цілі, і стопа.
Без даних меншого таймфрейму неможливо точно відновити послідовність руху.
Консервативний підхід у такій ситуації зазвичай вважає, що першим спрацював стоп. Це зменшує ризик завищення результатів.
Чому winrate недостатньо
Високий відсоток прибуткових угод виглядає переконливо, але сам по собі майже нічого не гарантує.
Стратегія може вигравати у 80% випадків, але втрачати занадто багато в інших 20%.
Тому потрібно дивитися не лише на winrate, а й на:
• середню прибуткову угоду;
• середню збиткову угоду;
• profit factor;
• максимальну просадку;
• максимальну серію стопів;
• результат після комісій;
• кількість угод;
• тривалість тестового періоду;
• розподіл прибутку між окремими періодами.
Особливо небезпечно, коли більша частина загального прибутку була отримана лише за кілька виняткових угод.
Така стратегія може виглядати сильною, хоча її результат залежить від невеликої кількості історичних подій.
Зміна режиму ринку
Ринок не залишається однаковим.
Періоди спокійного зростання змінюються високою волатильністю. Трендовий ринок переходить у боковик. Ліквідність збільшується та зменшується. Поведінка учасників змінюється.
Стратегія, створена під час бичачого ринку, може погано працювати під час ведмежого.
Система для сильного тренду може постійно отримувати хибні сигнали в боковому русі.
Тому результати потрібно розділяти за ринковими режимами:
• бичачий ринок;
• ведмежий ринок;
• боковик;
• висока волатильність;
• низька волатильність;
• risk-on;
• risk-off.
Важливо розуміти не лише загальний результат стратегії, а й умови, у яких вона заробляє або втрачає.
In-sample та out-of-sample тестування
Щоб зменшити ризик переоптимізації, історичні дані потрібно розділяти.
Перша частина використовується для розробки стратегії. Це in-sample період.
Друга частина не повинна використовуватися для підбору параметрів. На ній проводиться незалежна out-of-sample перевірка.
Якщо стратегія показує хороший результат лише на першій ділянці та різко погіршується на другій, її перевага може бути випадковою.
Стійка система не зобов’язана показувати однаковий прибуток у кожному періоді. Але її логіка та ризик-показники мають залишатися прийнятними на даних, які не використовувалися під час налаштування.
Навіщо потрібен forward-тест
Навіть успішний out-of-sample тест не замінює forward-тестування.
Forward-тест перевіряє стратегію на нових даних, які з’являються вже після завершення розробки.
Сигнали фіксуються в реальному часі. Їх неможливо змінити заднім числом або видалити після невдалого результату.
Forward-тест допомагає перевірити:
• чи справді сигнал з’являється вчасно;
• чи немає перемальовування;
• чи правильно передаються дані;
• чи збігається логіка Pine Script і backend;
• чи коректно розраховуються TP і SL;
• чи немає повторних сигналів;
• чи працюють обмеження портфеля;
• чи відповідає реальний результат історичним очікуванням.
Наступний етап — paper trading
Після forward-тесту стратегія має пройти paper trading.
У цьому режимі система працює на реальному ринку, але без ризику для капіталу.
Потрібно враховувати:
• реальні комісії;
• реалістичне прослизання;
• розмір позиції;
• обмеження ліквідності;
• одночасні угоди;
• загальний ліміт капіталу;
• денні, тижневі та місячні ліміти збитків;
• kill switch.
Paper trading має перевіряти не лише стратегію, а й усю інфраструктуру виконання.
Як зрозуміти, що стратегія готова до реальних грошей
Стратегію не можна вважати готовою лише тому, що вона заробила на історії.
Надійніша послідовність виглядає так:
- Формулювання торгової гіпотези.
- Бектест із комісіями та консервативним виконанням.
- Перевірка на незалежному історичному періоді.
- Тестування на різних режимах ринку.
- Forward-тест нових сигналів.
- Paper trading.
- Перевірка лімітів і kill switch.
- Запуск із невеликим капіталом.
- Поступове збільшення розміру позиції лише після підтвердження стабільності.
Кожен наступний етап має бути складнішим за попередній.
Якщо результат різко погіршується, потрібно шукати причину, а не збільшувати ризик у надії, що стратегія відновиться.
Висновок
Бектест необхідний, але він є лише першим етапом перевірки.
Він не може повністю врахувати:
• переоптимізацію;
• зміну режиму ринку;
• реальні торгові комісії;
• прослизання;
• затримки;
• помилки даних;
• проблеми виконання;
• психологічний тиск реальних збитків.
Сильна стратегія — це не та, яка показує найкрасивіший графік на історії.
Сильна стратегія проходить кілька незалежних перевірок, зберігає перевагу після витрат і вміє обмежувати збиток, коли ринкові умови змінюються.
Справжня мета тестування полягає не в тому, щоб довести, що система завжди права.
Мета — зрозуміти, де вона працює, де перестає працювати і скільки капіталу їй можна довірити.
