July 31, 2022

Як протестувати торгову стратегію?

Короткий зміст

Ви думаєте, що у вас є чудові ідеї для ринку, але ви не знаєте, як їх перевірити, не ризикуючи своїми коштами? Уміння тестувати торгові ідеї на історичних даних (бектестінг) - це хліб з маслом для хорошого систематичного трейдера.

Основна передумова бектестінгу полягає в тому, що те, що спрацювало в минулому, може спрацювати в майбутньому. Але як зробити це самому? Як оцінювати результати? Давайте розглянемо простий процес бектестінгу.

Вступ

Бектестінг - один з ключових компонентів розробки вашої власної стратегії побудови графіків і торгівлі. Це робиться шляхом реконструкції угод, які відбулися б у минулому з системою, заснованою на історичних даних. Результати бектестінгу на історії повинні дати вам загальне уявлення про те, чи ефективна інвестиційна стратегія.

Що таке бектестінг?

По-перше, якщо ви хочете глибше зрозуміти, що таке бектестінг, прочитайте нашу попередню статтю.

Коротше кажучи, основна мета бектестінгу - показати вам, чи вірні ваші торгові ідеї. Ви використовуєте минулі ринкові дані, щоб побачити, як спрацювала б стратегія. Якщо стратегія виглядає так, як ніби у неї є потенціал, вона також може бути ефективною в реальному торговому середовищі.

Що робити перед бектестінгом

Перш ніж ми почнемо з бектестінгу, вам потрібно дещо визначити. Вам потрібно буде визначити, який ви трейдер. Ви дискреційний або систематичний трейдер?

Дискреційна торгівля заснована на рішеннях. Трейдери самостійно вирішують, коли входити та виходити з позиції. Це відносно вільна і відкрита стратегія, в якій більшість рішень залежить від оцінки трейдером поточних умов. Як і слід було очікувати, бектестінг менш актуальний, коли мова йде про дискреційну торгівлю, оскільки стратегія чітко не визначена.

Це, звичайно, не означає, що якщо ви дискреційний трейдер, вам взагалі не слід використовувати бектестінг або торгувати на папері. Це просто означає, що результати можуть бути не такими надійними, як в іншому випадку.

Систематична торгівля більше підходить до нашої теми. Систематичні трейдери покладаються на торгову систему, яка визначає і повідомляє їм, коли саме входити та виходити з позиції. Хоча вони повністю контролюють свою стратегію, сигнали входу і виходу визначаються стратегією. Ви можете уявити собі просту систематичну стратегію як:

  • Коли A і B відбуваються одночасно, потрібно входити в угоду.
  • Коли X відбудеться після, потрібно вийти з угоди.

Деякі трейдери вважають за краще такий підхід. Він може виключити емоційні торгові рішення та забезпечити розумну ступінь впевненості в прибутковості торгової системи. Звичайно, гарантій поки немає.

Ось чому важливо переконатися, що у вас є дуже конкретні правила у вашій системі, коли входити або виходити з позицій. Якщо стратегія не визначена чітко, результати також будуть суперечливими. Як і слід було очікувати, цей вид торгівлі популярніший серед алгоритмічної торгівлі.

Існує програмне забезпечення для бектестінгу, яке ви можете купити, якщо хочете проводити автоматичний бектестінг. Ви можете ввести свої власні дані, і програма проведе за вас бектестінг. Однак в цьому прикладі ми скористаємося стратегією ручного бектестінгу. Буде потрібно трохи більше роботи, але це абсолютно безкоштовно.

Як протестувати торгову стратегію на історії

Ви можете знайти шаблон електронної таблиці Google Sheets за цим посиланням. Це елементарний шаблон, який можна використовувати в якості відправної точки для створення свого власного. Це дає вам загальне уявлення про те, яку інформацію може містити таблицю бектестінгу. Деякі трейдери віддають перевагу використовувати Excel або кодувати його на Python, тут немає строгих правил. Ви можете додати набагато більше даних і все, що ви вважаєте за корисним.

Отже, протестуймо просту торгову стратегію. Ось наша ідея:

  • Ми купуємо 1 Bitcoin при першому закритті дня після золотого хреста. Ми розглядаємо золотий хрест, коли 50-денна середня ковзна перетинає 200-денну середню ковзну.
  • Ми продаємо 1 Bitcoin при першому закритті дня після "хреста смерті". Ми розглядаємо "хрест смерті", коли 200-денна середня ковзна перетинає 50-денну середню ковзну.

Як бачите, ми також визначили часові рамки, в яких стратегія діє. Це означає, що ми не будемо вважати торговим сигналом появу золотого хреста на 4-годинному графіку.

Заради цього прикладу ми розглянемо тільки період часу до початку 2019 року. Однак, якщо ви хочете отримати більш точні та надійні результати, ви можете повернутися до більш ранньої цінової дії Bitcoin.

Тепер подивимося, які торгові сигнали надала ця система за період:

  • Купити @ ~ 5 400$
  • Продати @ ~ 9 200$
  • Купити @ ~ 9 600$
  • Продати @ ~ 6 700$
  • Купити @ ~ 9 000$

Ось як наші сигнали виглядають накладеними на графік:

Стратегія "золотого хреста" і "хреста смерті".

Наша перша угода принесла б прибуток у розмірі близько 3 800$, а наша друга угода принесла б збиток близько 2 900$. Це означає, що наш реалізований PnL наразі складає 900$.

Ми також перебуваємо в активній угоді, яка, станом на грудень 2020 року, має нереалізований прибуток близько 9 000$. Якщо ми будемо дотримуватися нашої спочатку певної стратегії, ми закриємо її, коли відбудеться наступний "хрест смерті".

Оцінка результатів бектестінгу

Отже, що показують ці результати? Наша стратегія принесла б розумний прибуток, але поки вона не показує нічого такого видатного. Ми могли б закрити нашу поточну відкриту угоду, щоб різко збільшити наш реалізований PnL, але це позбавило б цілі бектестінгу. Якщо ми не будемо дотримуватися плану, результати теж не будуть надійними.

Незважаючи на те, що це систематична стратегія, її також варто враховувати в контексті. Збиткова угода від 9600 до 6700$ сталася під час краху COVID-19 у березні 2020 року. Така подія "чорного лебедя" може мати величезний вплив на будь-яку торгову систему. Це ще одна причина, по якій варто повернутися ще раз, щоб побачити, чи є ця втрата викидом або просто побічним продуктом стратегії.

У будь-якому випадку, так може виглядати простий процес бектестінгу. Ця стратегія може бути багатообіцяючою, якщо ми повернемося і протестуємо її з великою кількістю даних або включимо інші технічні індикатори, щоб потенційно посилити сигнали, які вона дає.

Але що ще можуть показати вам результати бектестінгу?

  • Вимірювання волатильності: ваш максимальний потенціал зростання і падіння.
  • Суму ризику: розмір капіталу, який вам потрібно виділити для стратегії з усього вашого портфеля.
  • Річна прибутковість: відсоткова прибутковість стратегії за рік.
  • Відношення прибутків-збитків: яка частина угод в системі закінчилася прибутком, а яка - збитком.

Це всього лише кілька прикладів, а не вичерпний список. Які показники ви хочете відслідковувати, повністю залежить від вас. У будь-якому випадку, чим більше подробиць ви записуєте тим більше у вас можливостей витягти уроки з результатів. Деякі трейдери дуже строго проводять бектестінг, і це також може відображатися на їх результатах.

І останнє, про що слід подумати, - це оптимізація. Якщо ви прочитаєте нашу статтю про бектестінг, ви дізнаєтеся різницю між бектестінгом і форвард-тестуванням або торгівлею на папері.

Заключні думки

Ми пройшли базовий процес ручного бектестінгу торгової стратегії. Пам'ятайте, минулі результати не є гарантією майбутніх результатів.

Ринкове середовище змінюється, і вам необхідно адаптуватися до цих змін, якщо ви хочете поліпшити свою торгівлю. Як правило, також корисно не довіряти сліпо даним. Коли справа доходить до оцінки результатів, здоровий глузд може бути на диво корисним інструментом.