Важливо. Стаття має освітній характер і не є інвестиційною порадою. Торгівля криптовалютою може призвести до втрати всіх вкладених коштів.
1. Тест знає те, чого бот знати не міг
Найпідступніша помилка — дані з майбутнього. Вона рідко виглядає як очевидний баг: вхід за ціною закриття тієї самої свічки, на якій з’явився сигнал; індикатор, перерахований із пізнішими даними; фільтр, що відкидає монети за подіями, які сталися пізніше. Кожна така дрібниця додає тесту кілька відсотків прибутку, якого в реальній торгівлі не буде.
Як ловити: прогнати ту саму логіку на випадковому сигналі. Якщо «випадкова стратегія» теж заробляє — тест зазирає вперед.
2. У тесті лише ті монети, що вижили
Якщо всесвіт стратегії — «монети, які зараз у топі за обігом», тест мовчки викидає все, що впало, зникло з біржі чи було пампом на тиждень. Минуле, складене з переможців, завжди виглядає прибутковим. Схожа пастка — всесвіт, що змінюється заднім числом: монета потрапила в список, бо виросла, а тест «купив» її до зростання.
Як ловити: фіксувати всесвіт на кожну дату тими правилами, які були відомі на ту дату.
3. Тест і торгівля працюють на різних даних
Ціни на різних біржах відрізняються, історія буває неповною, а ряд, склеєний з кількох бірж, поводиться не так, як реальний ринок. В одному з моїх досліджень стратегія на трирічних даних зі змішаних бірж дала коефіцієнт Шарпа 1,69, а на семирічній історії однієї біржі в тій самій конструкції — 0,28. Висновок «знайдено нове джерело прибутку» не витримав довшої історії.
Як ловити: кожен результат записувати разом із «відбитком» даних — біржа, період, дата збору — і порівнювати з еталоном лише на тих самих даних.
4. З тридцяти спроб одна завжди «працює»
Якщо перебрати 30 варіантів параметрів, хоча б один випадково покаже гарний результат. Стратегія з t-статистикою 2,2 виглядає значущою, але якщо це найкраща з тридцяти спроб — вона нічого не доводить. Що більше ідей перевірено, то вищою має бути планка.
Як ловити: вести журнал усіх спроб, а не лише вдалих, і вимагати t не нижче 3; перевіряти, чи працює ідея в обох половинах історії окремо.
5. Бектест і бот — різні стратегії
Навіть з однаковим сигналом бот і тест можуть торгувати по-різному: інша частота перегляду позицій, інший розмір, інша кількість монет у портфелі. Одного разу виявилось, що через подвійне нормування ваг тест тримав портфель у сім разів меншим, ніж бот. Шарп від цього не змінився, а просадки й «відсоток прибутку» виявились заниженими всемеро.
Як ловити: перш ніж дивитися на прибуток, звірити «інваріанти»: скільки позицій одночасно, скільки триває позиція, який валовий розмір портфеля — у тесті й у боті.
Чекліст перед тим, як вірити бектесту
- контрольний прогін на випадковому сигналі не заробляє;
- всесвіт монет зафіксований на кожну дату без знання майбутнього;
- результат прив’язаний до конкретних даних і відтворюється;
- комісії й прослизання враховані з реальним оборотом;
- ідея працює в обох половинах історії й не залежить від одного параметра;
- розмір і будова портфеля в тесті збігаються з ботом;
- форвард-тест на паперовому рахунку підтверджує бектест за денною волатильністю.
Часті запитання
Скільки років історії потрібно для перевірки стратегії?
Що менший Шарп, то більше: орієнтовно t ≈ Шарп × √років. Для Шарпа 1 і порогу t = 3 це близько дев’яти років — тому для більшості криптомонет чесна відповідь «ще невідомо». Детальніше — на сторінці «Крипто-трейдинг без ілюзій».
Чи можна довіряти бектестам із курсів і «сигнальних» каналів?
Без даних, коду й журналу всіх спроб — ні. Перевірте хоча б, чи враховано комісії та чи не підібрано період, на якому стратегія виглядає найкраще.
Чи можете зробити інструменти для бектесту?
Так: збір даних з бірж, бектест-рушій з контрольними прогонами й інваріантами, paper-торгівля й облік угод. Дивіться розробку вебдодатків і сервісів. Я не продаю сигнали й не керую чужими грошима.