Пошук на сайті

Що хочете знайти?

Введіть назву брокера, інструмента або теми.

Ордери й виконання

Бектестинг на Форекс: як перевірити стратегію без зазирання в майбутнє

Бектестинг на Форекс застосовує чіткі торгові правила до минулих цін і показує, які угоди виникли б за заданих умов виконання. Корисний тест розкриває послідовність подій, дані й витрати. Він не встановлює, як саме виконав би заявки брокер і скільки стратегія заробить у майбутньому.

Автор · Редактор

Перевірено

Паралельні панелі зі світлого каменю, скло в бірюзовій рамі на передньому плані й невелика бурштинова панель між кам’яними панелями.
Простежте шлях сигналу до наступної події виконання

Головне

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

  2. Спред, проковзування та комісію потрібно враховувати узгоджено. Витрати, уже включені в ціни виконання, не можна віднімати повторно.

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

Що таке бектестинг на Форекс?

Бектестинг — це послідовне відтворення: беруть фіксоване правило, проходять доступні спостереження в часі та записують рішення, припущення щодо виконання й результат. Для стратегії Форекс потрібно визначити валютну пару, цінові дані, розмір позиції, входи, виходи та торгові витрати. Питання в тому, що вийшло за цих правил і припущень, а не в тому, чи можна заднім числом знайти привабливі угоди.

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

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

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

Визначте правила до перегляду результату

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

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

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

Це умова «вище/нижче», а не обов’язковий перетин середньої й не рекомендація стратегії. Розмір позиції завжди становить 10 000 EUR. У власному дослідженні можна задати інші правила, але зміна кількох умов після перегляду результату створює новий експеримент. Шаблон торгового плану допомагає відокремити чинну специфікацію від запропонованих змін.

Виберіть дані, достатні для моделі виконання

Почніть із питання, на яке дані здатні відповісти. Свічка OHLC містить відкриття, максимум, мінімум і закриття; чотири значення не показують усі проміжні ціни та послідовність досягнення максимуму й мінімуму. Якщо всередині однієї свічки розташовані і стоп, і ціль, за цією свічкою зазвичай не можна встановити, що спрацювало раніше. Тут midpoint — ціна (Bid + Ask) / 2 у конкретний момент. SMA3 — середнє значення цін midpoint на закритті трьох послідовних барів.

Дані або налаштування

Що з’ясувати до тесту

Bid, Ask, середня ціна або Last

Визначте основу котирування. Середня ціна між Bid і Ask сама собою не є ціною купівлі чи продажу.

Свічки або тики

Узгодьте деталізацію з логікою заявок. Не вигадуйте точний шлях ціни всередині свічки за чотирма значеннями.

Час і сесії

Запишіть часовий пояс, межі свічок, розриви вихідних та відсутні інтервали.

Специфікація символу

Перевірте крок ціни, розмір контракту, валюту результату й одиниці зазначеного спреда.

Прокрутіть убік, щоб порівняти всі стовпці ↔

Документація MetaTrader 5 про тики пояснює, чому потрібно розрізняти ціни графіка й виконання: купівля та продаж використовують різні сторони котирування, а доступний графік не обов’язково показує обидві. Для чутливого до ціни правила це може змінити і можливість угоди, і її результат.

Режим «реальні тики» також потребує перевірки даних. Документація MQL5 з тестування описує ситуації, коли тестер генерує тики за відсутності або неузгодженості записів реальних тиків. Записуйте вибраний режим і з’ясовуйте причини попереджень про покриття: сама назва налаштування не описує кожне використане спостереження.

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

Простежте шлях сигналу до наступної події виконання

Спробуйте самі

Розберіть бектест крок за кроком

Простежте за фіксованим правилом на 36 вигаданих п’ятихвилинних барах EUR/USD. Їхні ціни mid розташовані посередині між Bid та Ask. Змініть припущення щодо витрат і перевірте сигнал, наступне відкриття та облік результату.

Лише навчальні дані. Ці бари вигадані: це не ринкова історія і не доказ дієвості правила.

Правило залишається незмінним

Після закриття бара порівняйте ціну mid на його закритті із середнім значенням цін mid на закритті цього та двох попередніх барів. Вище SMA3 — відкрити лонг, якщо позиції немає. Нижче SMA3 — закрити лонг. За рівності нічого не змінювати. Розмір позиції — 10 000 EUR, результат — у USD.

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

Задайте умови виконання
Від 0 до 20 піпсів. Половина додається під час купівлі та віднімається під час продажу. У цьому прикладі EUR/USD 1 піпс = 0,0001 USD за EUR.
Від 0 до 10 піпсів на кожне виконання. Приклад моделює лише погіршення ціни.
Від 0 до 100 USD за кожне виконання всієї позиції 10 000 EUR. Це не тариф за лот.
Кожне вікно починається без позиції. Попередні закриття лише готують SMA3: вони не створюють угод і комісій.
Приклади витрат

Бар 36 вибраного вікна (1–36) · 11:55

Звірте результат

Закриті угоди · чистий P/L
-3,70 USD
Відкрита позиція · оцінка P/L з комісією за вхід
16,25 USD
Загальний P/L моделі
12,55 USD

Чистий результат закритих -3,70 USD + оцінка відкритої 16,25 USD = загальний результат 12,55 USD.

Закрито позицій: 4. Виконань до цього кроку: 9.

Відкритий лонг оцінюється за останньою ціною mid на закритті мінус половина спреда. Сплачена комісія за вхід віднімається один раз. Майбутні комісія та проковзування під час виходу в цю оцінку не входять.

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

Де враховані витрати
P/L закритих позицій за цінами виконання
-0,90 USD
Комісії закритих позицій
2,80 USD
Оцінка відкритого P/L до комісії за вхід
16,60 USD
Сплачена комісія за вхід у відкриту позицію
0,35 USD
Усі сплачені комісії
3,15 USD
Вплив спреда, уже врахований у виконаннях
5,40 USD
Проковзування, уже враховане у виконаннях
1,80 USD
Додаткова половина спреда в оцінці відкритої позиції
0,60 USD

Спред і проковзування вже закладені в ціни виконання: не віднімайте показані суми повторно. Комісія — окреме списання. Оцінка відкритої позиції не означає виконаний вихід.

Раннє та пізнє вікна — окремі навчальні відрізки. Це не позавибіркова перевірка і не форвард-тест на майбутніх котируваннях. Позиція з раннього вікна не закривається приховано й не переноситься в пізнє. Їхній P/L не можна додавати як безперервну історію рахунку.

Ціна mid на закритті, SMA3 і виконання

Показано лише пройдені бари. Суцільна лінія з’єднує ціни mid на закритті, пунктир — SMA3. Трикутники вгору та вниз позначають умовні купівлі й продажі на відкритті відповідного бара. Вертикальна вісь — USD за EUR.

USD за EUR

П’ятихвилинний бар

  • Ціна mid на закритті
  • SMA3
  • Купівля на відкритті
  • Продаж на відкритті

Сигнал → наступне відкриття → позиція

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

Сигнал → наступне відкриття → позиція
Бар · час прикладуНа цьому відкриттіЦіна mid закриття / SMA3На цьому закриттіПісля закриття бараЗагальний P/L моделі
109:00Виконання немає1,10000—Менше трьох закриттів: рішення немаєБез позиції0,00 USD
209:05Виконання немає1,10020—Менше трьох закриттів: рішення немаєБез позиції0,00 USD
309:10Виконання немає1,100401,10020Вище SMA3: купити на наступному відкриттіБез позиції0,00 USD
409:15Купівля за 1,10058; сигнал бара 31,100801,1004667Вище SMA3: зберегти лонг без нової заявкиЛонг 10 000 EUR1,25 USD
509:20Виконання немає1,101201,10080Вище SMA3: зберегти лонг без нової заявкиЛонг 10 000 EUR5,25 USD
609:25Виконання немає1,101601,10120Вище SMA3: зберегти лонг без нової заявкиЛонг 10 000 EUR9,25 USD
709:30Виконання немає1,101801,1015333Вище SMA3: зберегти лонг без нової заявкиЛонг 10 000 EUR11,25 USD
809:35Виконання немає1,101601,1016667Нижче SMA3: продати на наступному відкриттіЛонг 10 000 EUR9,25 USD
909:40Продаж за 1,10142; сигнал бара 81,101301,1015667Нижче SMA3: залишитися без позиціїБез позиції7,70 USD
1009:45Виконання немає1,101001,10130Нижче SMA3: залишитися без позиціїБез позиції7,70 USD
1109:50Виконання немає1,100801,1010333Нижче SMA3: залишитися без позиціїБез позиції7,70 USD
1209:55Виконання немає1,101001,1009333Вище SMA3: купити на наступному відкриттіБез позиції7,70 USD
1310:00Купівля за 1,10118; сигнал бара 121,101201,10100Вище SMA3: зберегти лонг без нової заявкиЛонг 10 000 EUR6,95 USD
1410:05Виконання немає1,101001,1010667Нижче SMA3: продати на наступному відкриттіЛонг 10 000 EUR4,95 USD
1510:10Продаж за 1,10072; сигнал бара 141,100701,1009667Нижче SMA3: залишитися без позиціїБез позиції2,40 USD
1610:15Виконання немає1,100901,1008667Вище SMA3: купити на наступному відкриттіБез позиції2,40 USD
1710:20Купівля за 1,10108; сигнал бара 161,101301,1009667Вище SMA3: зберегти лонг без нової заявкиЛонг 10 000 EUR3,65 USD
1810:25Виконання немає1,101601,1012667Вище SMA3: зберегти лонг без нової заявкиЛонг 10 000 EUR6,65 USD
1910:30Виконання немає1,101801,1015667Вище SMA3: зберегти лонг без нової заявкиЛонг 10 000 EUR8,65 USD
2010:35Виконання немає1,101401,10160Нижче SMA3: продати на наступному відкриттіЛонг 10 000 EUR4,65 USD
2110:40Продаж за 1,10122; сигнал бара 201,101001,10140Нижче SMA3: залишитися без позиціїБез позиції3,10 USD
2210:45Виконання немає1,101201,10120Дорівнює SMA3: залишитися без позиціїБез позиції3,10 USD
2310:50Виконання немає1,100801,10100Нижче SMA3: залишитися без позиціїБез позиції3,10 USD
2410:55Виконання немає1,100401,10080Нижче SMA3: залишитися без позиціїБез позиції3,10 USD
2511:00Виконання немає1,100601,10060Дорівнює SMA3: залишитися без позиціїБез позиції3,10 USD
2611:05Виконання немає1,100901,1006333Вище SMA3: купити на наступному відкриттіБез позиції3,10 USD
2711:10Купівля за 1,10103; сигнал бара 261,100601,10070Нижче SMA3: продати на наступному відкриттіЛонг 10 000 EUR-2,15 USD
2811:15Продаж за 1,10042; сигнал бара 271,100301,10060Нижче SMA3: залишитися без позиціїБез позиції-3,70 USD
2911:20Виконання немає1,100601,10050Вище SMA3: купити на наступному відкриттіБез позиції-3,70 USD
3011:25Купівля за 1,10078; сигнал бара 291,101101,1006667Вище SMA3: зберегти лонг без нової заявкиЛонг 10 000 EUR-1,45 USD
3111:30Виконання немає1,101501,1010667Вище SMA3: зберегти лонг без нової заявкиЛонг 10 000 EUR2,55 USD
3211:35Виконання немає1,101901,10150Вище SMA3: зберегти лонг без нової заявкиЛонг 10 000 EUR6,55 USD
3311:40Виконання немає1,102301,10190Вище SMA3: зберегти лонг без нової заявкиЛонг 10 000 EUR10,55 USD
3411:45Виконання немає1,102701,10230Вище SMA3: зберегти лонг без нової заявкиЛонг 10 000 EUR14,55 USD
3511:50Виконання немає1,103101,10270Вище SMA3: зберегти лонг без нової заявкиЛонг 10 000 EUR18,55 USD
3611:55Виконання немає1,102501,1027667Нижче SMA3: продати на наступному відкриттіЛонг 10 000 EUR12,55 USD

Таблиці прокручуються горизонтально. За потреби перейдіть до області таблиці клавішею Tab і скористайтеся стрілками.

Журнал позицій

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

Журнал позицій
ПозиціяВиконання входуВиконання виходу / оцінкаP/L за цінами mid без витратP/L за виконаннями / оцінкоюСплачена комісіяЧистий P/L закриття / оцінки
1ЗакритаБар 4 · 1,10058Бар 9 · 1,1014210,00 USD8,40 USD0,70 USD7,70 USD
2ЗакритаБар 13 · 1,10118Бар 15 · 1,10072-3,00 USD-4,60 USD0,70 USD-5,30 USD
3ЗакритаБар 17 · 1,10108Бар 21 · 1,101223,00 USD1,40 USD0,70 USD0,70 USD
4ЗакритаБар 27 · 1,10103Бар 28 · 1,10042-4,50 USD-6,10 USD0,70 USD-6,80 USD
5Відкрита · лише оцінкаБар 30 · 1,10078Бар 36 · 1,1024418,00 USD16,60 USD0,35 USD16,25 USD
Завантажити цей журнал позицій · CSV

CSV містить лише чинний розрахунок до вибраного бара. Сталі англійські назви полів, десяткова крапка та повна точність моделі дають змогу перевірити арифметику. Округлюється відображення, а не розрахунок.

Таблиці прокручуються горизонтально. За потреби перейдіть до області таблиці клавішею Tab і скористайтеся стрілками.

Переглянути вигадані дані OHLC

Усі ціни нижче — mid, середина між Bid та Ask. Максимуми й мінімуми показані для перевірки даних; правило «закриття → наступне відкриття» не вигадує за ними виконання. Рядки підготовки SMA позначені окремо й не створюють угод.

Переглянути вигадані дані OHLC
Бар · час прикладуВідкриттяМаксимумМінімумЗакриття
1 · 09:001,099801,100101,099701,10000
2 · 09:051,100001,100351,099801,10020
3 · 09:101,100201,100601,100051,10040
4 · 09:151,100501,100901,100401,10080
5 · 09:201,100801,101351,100601,10120
6 · 09:251,101201,101801,101051,10160
7 · 09:301,101601,101901,101501,10180
8 · 09:351,101801,101951,101401,10160
9 · 09:401,101501,101701,101151,10130
10 · 09:451,101301,101401,100901,10100
11 · 09:501,101001,101151,100601,10080
12 · 09:551,100801,101201,100651,10100
13 · 10:001,101101,101301,101001,10120
14 · 10:051,101201,101351,100801,10100
15 · 10:101,100801,101001,100551,10070
16 · 10:151,100701,101001,100601,10090
17 · 10:201,101001,101451,100801,10130
18 · 10:251,101301,101801,101151,10160
19 · 10:301,101651,101901,101551,10180
20 · 10:351,101751,101901,101201,10140
21 · 10:401,101301,101501,100851,10100
22 · 10:451,101001,101301,100901,10120
23 · 10:501,101201,101351,100601,10080
24 · 10:551,100801,101001,100251,10040
25 · 11:001,100401,100701,100301,10060
26 · 11:051,100601,101051,100401,10090
27 · 11:101,100951,101151,100451,10060
28 · 11:151,100501,100601,100201,10030
29 · 11:201,100301,100751,100101,10060
30 · 11:251,100701,101301,100551,10110
31 · 11:301,101101,101601,101001,10150
32 · 11:351,101501,102051,101301,10190
33 · 11:401,101901,102501,101751,10230
34 · 11:451,102301,102801,102201,10270
35 · 11:501,102701,103251,102501,10310
36 · 11:551,103101,103301,102351,10250

Таблиці прокручуються горизонтально. За потреби перейдіть до області таблиці клавішею Tab і скористайтеся стрілками.

Завантажте протокол дослідження

Заповніть редагований текстовий список до перегляду результатів окремого експерименту. Він не підтверджує якість тесту й не перетворює вигаданий ряд на ринкові докази.

Завантажити протокол · TXT
Межі моделі

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

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

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

Наприклад, сигнал купівлі після закриття свічки 3 може виконатися на відкритті свічки 4. Отримати ціну відкриття свічки 3 він не може. Тому розрив між свічками має значення. Документація стратегій TradingView також розділяє створення заявки й пізніший тик, на якому емулятор брокера може виконати її за стандартної послідовності розрахунку.

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

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

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

Враховуйте витрати один раз і на одній основі

У цій моделі із середніми цінами купівля виконується за ціною відкриття плюс половина спреда плюс несприятливе проковзування. Продаж під час виходу — за ціною відкриття мінус половина спреда мінус несприятливе проковзування. Комісія окремо нараховується в USD за кожне виконання фіксованої позиції 10 000 EUR. У цьому прикладі EURUSD один піпс дорівнює 0,0001 USD за EUR.

Приклад повного входу й виходу

Розрахунок

Середня ціна входу / виходу

1,10000 / 1,10200

Припущення

Спред 1,2 піпса; проковзування 0,2 піпса на виконання; комісія $0,35 на виконання

Ціни виконання входу / виходу

1,10008 / 1,10192

Ціновий P/L після спреда та проковзування

10 000 × (1,10192 − 1,10008) = $18,40

Чистий P/L закритої угоди

$18,40 − $0,35 − $0,35 = $17,70

Прокрутіть убік, щоб порівняти всі стовпці ↔

Сам рух середньої ціни дав би $20,00. Не віднімайте спред і проковзування від $18,40 ще раз: вони вже закладені у виконання. Якщо середня ціна входу й виходу однакова, за цих припущень результат становитиме −$2,30. Збільшення спреда на один піпс зменшує результат повного входу й виходу на $1,00, оскільки на кожній стороні враховується половина доданого спреда.

Якщо позиція залишається відкритою, інтерактив оцінює її за останньою модельною ціною Bid і враховує вже сплачену комісію за вхід. Майбутню комісію за вихід і проковзування на виході не списують до виконання виходу. Показаний підсумок — модельний P/L, а не повний розрахунок коштів на торговому рахунку.

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

Розділяйте розробку, відкладену історію та майбутні спостереження

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

Етап

Призначення

Чого він не підтверджує

Розробка

Створити правило й дослідити припущення на дозволених для розробки даних.

Що вибрана версія збереже властивості на інших даних.

Відкладена історична вибірка

Застосувати зафіксовану версію до пізніших, раніше не використаних спостережень.

Фактичне виконання брокера або майбутню прибутковість.

Спостереження вперед у часі

Стежити за новими цінами після фіксації правил.

Що модельні виконання збігатимуться з реальними.

Прокрутіть убік, щоб порівняти всі стовпці ↔

Налаштування Forward у MetaTrader 5 використовує пізнішу частину вибраного історичного інтервалу. Попри назву, це не те саме, що дочекатися майбутніх ринкових даних. У записах чітко розрізняйте назву функції платформи та метод дослідження.

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

Якщо відкладена вибірка виявила проблему, зафіксуйте її. Змінена стратегія може заслуговувати на новий експеримент, але попередня вибірка вже відома. Не можна зберегти за нею статус «непереглянутого тесту», просто перейменувавши файл або вибравши іншу метрику результату.

Перевірте помилки до інтерпретації дохідності

Гарний результат — привід дослідити журнал, а не припинити перевірку. Виберіть кілька входів і виходів, зокрема незручну межу періоду, та відновіть інформацію, доступну в момент кожного рішення. Найкориснішим рядком може виявитися невиконаний сигнал або неприваблива угода, яку легко пропустити під час суб’єктивного перегляду.

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

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

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

Збережіть відтворюваний протокол тесту

Після вибору періоду й витрат завантажте протокол експерименту з інтерактиву. Зберігайте його разом із показаним сценарієм і журналом. Позначка про вигадані дані суттєва: передавання чисел без цього контексту перетворить навчальну вправу на оманливе твердження про результативність.

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

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

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

Читайте метрики разом із контекстом

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

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

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

Корисний висновок описує умови: яке правило перевірили, на яких даних, за яких припущень і що залишилося невідомим. «Ця версія дала збиток за підвищення витрат» — зрозуміліший результат дослідження, ніж нічим не підтверджена обіцянка прибутковості наступної версії.

Поширені запитання

Чи можна перевірити стратегію Форекс вручну?

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

Що вибрати для бектесту: MetaTrader 5 чи TradingView?

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

Чи завжди потрібні реальні тики?

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

Скільки угод потрібно для надійного бектесту?

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

Чому реальні результати можуть відрізнятися від бектесту?

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

Чи доводить прибутковий бектест наявність переваги?

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

Джерела та матеріали

  1. MetaTrader 5 — Strategy TestingПеревірено
  2. MetaTrader 5 — Real and Generated TicksПеревірено
  3. MQL5 — Testing Trading StrategiesПеревірено
  4. TradingView — StrategiesПеревірено
Ордери й виконання
Шаблон торгового плануЗафіксуйте правила та зміни версій до порівняння результатів.Шаблон торгового журналуЗберігайте окремі угоди й спостереження з початковим контекстом.Проковзування в трейдингуВідокремте припущення моделі від котирування та реального виконання.Профіт-факторЧитайте підсумковий коефіцієнт разом із початковою вибіркою.Симулятор кривої капіталуПодивіться, як порядок угод і припущення змінюють траєкторію результату.Коефіцієнт КальмараРозберіться у виборі періоду та просадки для розрахунку показника.
Усі гіди