Як протестувати і оптимізувати радник?

Як тестувати радник

1) Відкрийте MT4, перейдіть в тестер стратегій

2) В рядку "Радник" увімкніть на радник
3) Виберіть валютну пару, наприклад, EURUSD
4) Встановіть модель - все тики
5) Встановіть мітку "Використовувати дату"
6) Встановіть дату на Ваш розсуд. Для уникнення помилок, перевірте архів котирувань, при необхідності оновіть Ваші котирування.
7) Виставите період (таймфрейм).

8) Для того, щоб бачити хід роботи радника, встановіть прапорець "Візуалізація"


9) Натисніть Start і дочекайтеся закінчення процесу тестування
10) Для перегляду результатів тестування радника, перейдіть в закладку "Звіт"

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

Для оптимізації параметрів, встановіть мітку "оптимізація". У властивостях експерта встановіть межі зміни тих параметрів, які Ви хочете підібрати і натисніть Start.
Для оптимізації параметрів, встановіть мітку оптимізація

Після того як Ви Порадник в тестері на оптимізацію, Ви отримаєте величезну кількість результатів. Тепер залишається найскладніше - який результат вибрати, які параметри системи є лише підгонка під історію, а за яких параметрах система буде приносити прибуток на реальному ринку.
При оптимізації в Метатрейдер зручно використовувати Генетичний Алгоритм, а в якості оптимизируемого параметра вибирати баланс. Таким чином намагатися максимізувати прибуток системи. Але це не означає, що саме результати з максимальним прибутком дадуть нам систему, яка здатна приносити прибуток на реальному ринку.
Під час оптимізації потрібно не просто отримати найкращий результат, а вибрати серед всіх найбільш вірогідний - той, який в майбутньому принесе прибуток. Це буде легше зробити, якщо відсіяти свідомо неробочі результати тестування.
Для цього я пропоную прості правила, які допоможуть зменшити кількість результатів оптимізації системи.
1. Кількість угод повинно бути не менше 300. Краще щоб було більше 500.
2. Профіт-фактор системи (відношення загального прибутку до загальних збитків) повинен бути більше 1.5. - чим вище значення профіт-фактора, тим краще, але не забувайте про інших пунктах.
3. При тестуванні поза періодом оптимізації, система повинна показати його результати будуть відповідати тим, що отримані під час оптимізації. Перше на що слід звернути увагу це просадка, вона не повинна бути більше, ніж просадка за період оптимізації (про це наступний пункт).
4. Осідання системи повинна складати таку величину, яку дозволить терпіти депозит. Просадка системи - це наш програш, який ми можемо собі дозволити, не зупиняючи торгівлю. Якщо система на реалі, допускає просідання більше тієї, що отримана на тестах, таку систему слід зняти з торгів і переглянути. Тут можна довго сперечатися про величину допустимої просадки. Нехай кожен сам для себе вирішує, чим він може пожертвувати в разі невдачі.
5. Зверніть увагу на самі параметри системи, які оптимізували. Значення змінних, отримані в результаті оптимізації, повинні перебувати в розумних межах, і відповідати основній ідеї системи.
Ці прості правила дозволяють відсіяти свідомо неробочі параметри системи, які не будуть працювати на реалі.
Чому при тестуванні на одних і тих же параметрах результати різні?
Є кілька варіантів:
- Якщо Ви використовуєте генетичний алгоритм при оптимізації, то результати будуть майже завжди хоч трохи але відрізнятися.
- Якщо тестер знаходиться в онлайні, можуть підкачуватися котирування, які оновлюють базу, тим самим змінюючи історію.
- Тестер бере настройки того ДЦ (спред, своп, стоплевел ...), до рахунку якого підключений в поточний момент термінал, наприклад закачали котирування з датацентру MQ, а тестували в момент підключення до іншого ДЦ.
І ще кілька порад наостанок.
Ніколи не проводите оптимізацію системи на всій доступній історії. Завжди залишайте частину даних (приблизно 10%) для тестування out-of-sample. Це дуже важливий момент при проведенні оптимізації. Якщо система, на цьому проміжку поводиться по-іншому, ніж на періоді оптимізації, то сміливо відкидайте ці результати оптимізації - це лише підгонка під історію.
Завжди уважно вивчайте результати оптимізації. Спостерігаючи те, як змінюється результат роботи системи при зміні будь-якого параметра, можна сказати, як цей параметр впливає на систему. Може його взагалі виключити з оптимізації.
Багато хто стверджує, що, проводячи оптимізацію можна лише підігнати систему на кривій історії, і вона ніколи не буде вести себе також як поводилася в тестері. Це не вірно. Використовуючи історичні дані, завжди можна грамотно протестувати систему і підібрати такі параметри, які будуть працювати в майбутньому на реальному ринку. Це складно і вимагає трохи більше часу, ніж багато хто думає, але це можливо.
Чим більше і всебічної Ви протестуєте систему, тим більше Ви про неї дізнаєтесь і тим більше Ви зможете на ній заробити.


Чому при тестуванні на одних і тих же параметрах результати різні?