Як правильно оптимізувати радників в тестері стратегій МетаТрейдер 4 - докладно для початківців
Як правильно оптимізувати радників в тестері стратегій терміналу МетаТрейдер 4? Навіщо взагалі потрібна оптимізація, і що це таке - оптимізація параметрів радників для досягнення прибуткової торгівлі валютою на Форекс? Відповіді на ці та інші питання Ви зможете дізнатися, прочитавши цей матеріал.
Тестер стратегій торгового терміналу MetaTrader 4 має дві важливі функції. Це, безпосередньо, тестування радників і їх оптимізація, суть якої полягає в підборі найбільш оптимальних параметрів радників. Зазвичай трейдер оптимізує (удосконалює) вхідні параметри роботів для того, щоб зробити його максимально прибутковим при мінімальних ризиках.
Процес оптимізації радника є його множинне тестування з різними вхідними параметрами в автоматичному режимі програмою МетаТрейдер 4. При цьому, проста оптимізація - це ніщо інше, як підгонка параметрів експерта під історію, тобто під умови ринку і рух ціни, які були в минулому. якщо прооптімізіровать робота - радника на історії і відразу ж поставити його торгувати, радіючи, що результати оптимізації були "гарними", сподіватися на такі ж результати торгівлі радника в реальному режимі не варто. Адже, по суті, була проведена не справжня оптимізація, а підганяючи параметрів.
Правильна і якісна оптимізація радника, яка називається форвард - тестом, включає в себе два етапи. На першому етапі радник оптимізується (правильніше - підганяється) на деякому історичному відрізку, який називається тестовий (історичний) період. Результати підгонки представляються в таблиці у вигляді вхідних параметрів експерта. З найбільш вдалими параметрами робота запускають торгувати на новому тимчасовому відрізку, де він не підганяв, і не знає, як себе вести. Такий відрізок називається форвардним періодом. Якщо і на цьому відрізку результати тестування (вже не оптимізація!) Хороші, значить, експерта можна ставити торгувати на реальний рахунок.
Тестовий і форвардний проміжки для експертів, що працюють на різних тайм-фреймах, відрізняються. Для експертів, тестованих на періоді:
- - H1: рекомендований історичний період - 2 роки, форвардний - пів року;
- - M30: 1,5 роки і 4 місяці;
- - M15: 1 рік і 3 місяці.
Тестувати радники на менших тайм-фреймах не рекомендується. Для кращого розуміння тестового і форвардного періодів, розглянемо їх у вигляді малюнка:
Тобто, якщо сьогодні 30 листопада 2011 року, і ми вирішили прооптімізіровать радника на періоді M15, з тестовим проміжком 1 рік і форвардними 3 місяці, то кінець тестового проміжку у нас буде 30 серпня 2011 року, а його початок - 30 серпня 2010 року.
Розглянемо процес тестування і оптимізація радників більш докладно:
Крок 1. Налаштування тестера. відкриваємо тестер стратегій через меню торгового терміналу, розділ Вид. У вкладці Радник вибираємо радника, якого збираємося оптимізувати. З відкриває списку поля Символ вибираємо необхідну валютну пару. Модель - За цінами відкриття. Далі - період, для якого є налаштування оптимізації, і встановлюємо історичний проміжок, на якому буде проганяти радник (щоб краще розглянути скрін, клікніть по ньому):
Запуск тестера стратегій.
Тепер необхідно закачати архів котирувань валют. Користувачі терміналу мають доступ до котирувань з найменшим періодом 1 хвилина. Перед тим, як їх закачати, налаштовуємо можливості закачування даних. Для цього в меню терміналу в вкладці Сервіс відкриваємо пункт Налаштування. У полях Максимум барів історії і Максимум барів у вікні ставимо гранично допустимі значення.
Після цього качаємо самі котирування за допомогою меню Сервіс - Архів котирувань - Символи - валютний інструмент - період.
Варто зауважити, що запропоновані дилінговими центрами котирування не дозволяють домогтися якості моделювання більш 90%, причому 90% - це в кращому випадку. Справа в тому, що завантаження даних відбувається з серверів MetaQuotes, які часто пропонують неповні архіви, в яких відсутні котирування за деякі проміжки часу, аж до місяців. Нижче, на малюнку, виділений червоним кольором якраз такий період - йдуть дані за 10.06.2011, потім слід "провал" в даних аж за 3 місяці, після чого дані архіву котирувань "з'являються" тільки з 22.09.2011:
Як ви думаєте, чи зможе тестер провести якісну оптимізацію радника, якщо йому просто напросто нема з чим працювати? Однозначно - ні, тому й результати моделювання в таких випадках складають навіть не 90%, а ледь дотягують до 40%. Однак є вихід з цієї ситуації: закачування повних архівів тикових котирувань з сайту дилінгового центру DukasCopy , Які дозволяють домогтися результатів моделювання аж до 99%. Як отримати архіви і трансформувати їх в формат, зрозумілий торговій платформі МетаТрейдер 4, читайте в статті " Якість моделювання 99% в тестері стратегій - чи реально це? ".
Крок 2. Тепер потрібно завантажити в тестер стратегій оптимізаційний файл, якщо він у Вас є. Якщо оптімізаціоннго файлу немає - завантажуємо файл настройок радника, який копіювався в папку з торговим терміналом (це папка на диску С: // Programe Files / MetaTrader / experts / presets /, або окрема папка для радника - З: // Programe Files / MetaTrader / experts / presets / названіе_советніка /). Для цього натискаємо на кнопку Властивості експерта, у вікні вибираємо вкладку Вхідні параметри, натискаємо Завантажити і знаходимо файл оптимизируемого радника з розширенням .set, з відповідним валютним інструментом і періодом (тайм-фреймом):
Завантаження оптимизационного файлу в тестер стратегій.
Завантажуються початкові налаштування радника, які на вкладці "Вхідні параметри" необхідно змінити. Для цього галочкою відзначаємо значення в стовпці Змінна, які необхідно змінювати в процесі оптимізації радника, виставляємо початкові, кінцеві цифри і значення кроку в шпальтах Старт, Стоп і Крок, після чого зберігаємо оптимізаційний файл для радника в папку С: // Programe Files / MetaTrader / tester / - ця папка буде Вам доступна за замовчуванням, якщо натиснути кнопку Зберегти. Якщо Ви оптимізуєте не одного радника, а кілька, то в такому випадку рекомендується в папці / tester / створювати папку з назвою радника і в неї зберігати початковий оптимізаційний файл - це допоможе уникнути плутанини і завжди зрозуміти, до якого раднику відноситься оптімізаціооний файл. У назва файлу оптимізації з розширенням .set слід включати ім'я валютної пари і тайм - фрейм, наприклад, оптімізація_названіе_советніка_eurusd_m15.set:
Після цього переходимо на вкладку Тестування, встановлюємо розмір депозиту, позицію (Long або Shot), вибираємо оптимізується параметр (за замовчуванням Balance), і ставимо галочку у віконці генетичний алгоритм (Можливо, у Вас виникне питання - Що таке генетичний алгоритм? Генетичний алгоритм - це "розумна" функція перебору параметрів, яка свідомо збиткові параметри відкидає, в результаті чого значно скорочується кількість варіантів перебору і час тестування). Після цього тиснемо кнопку ОК.
Крок 3. Запуск оптимізації радника. Безпосередньо перед запуском оптимізації параметрів радника ставимо галочку в віконечку зі словом Оптимізація. І тільки після цього можна тиснути кнопку Старт. Процес оптимізації форекс радника на тестуванні може зайняти значний час - від декількох хвилин, до годин і навіть до доби: все залежить від кількості оптимізуються параметрів кожного конкретного радника.
Крок 4. По закінченню процесу оптимізації у вкладці Графік оптимізації формується своєрідний графік, де більш темним кольором виділяються параметри радників, прибутковість яких вище. Навіть неозброєним оком видно, що варіації від 1,7 до 1,75 в порядку зростання більше підійдуть для подальшої оптимізації:
Графічне зображення різних комбінацій вхідних параметрів експерта після оптимізації.
Роботу з графіком слід поєднувати з аналізом таблиці Результати оптимізації, де наочно представлені вхідні параметри. Перевіряти всі параметри поспіль і шукати найкращі - сенсу немає, так як багато хто з них практично ідентичні і суттєво не відрізняються. Та й часу на перевірку сотень комбінацій піде багато. Зручніше впорядкувати їх за однією з ознак, наприклад, по прибутку, і перевіряти комбінацію з кращими результатами. Для цього натискаємо правою кнопкою миші по рядку з тієї комбінацією, де прибуток максимальна, і вибираємо Встановити вхідні параметри.
Установка вхідних параметрів, отриманих після оптимізації, для подальшого тестування радника з метою виявлення найкращої комбінації.
Відкривається вікно тестера, де, якщо потрібно, змінюємо параметр Моделі. Замість значення За ціною відкриття встановлюємо значення Всі тики, так як результати тесту по всьому тікам будуть більш точними. Але це в першу чергу залежить від того, за яким алгоритмом працює радник. Якщо робота радника побудована по Цінам відкриття - тестування його по Всім тікам дасть невірні результати! Тому, перш ніж оптимізувати радника, Ви повинні розуміти логіку його роботи. Знімаємо галочку з віконця Оптимізація і тиснемо кнопку Старт для тестування радника з оптимізованими вхідними параметрами на тестуванні:
Аналіз тесту проводиться на основі вкладок Графік і Звіт. Чим графік прибутку рівніший і висхідний, тим вхідні параметри краще:
Відповідно, якщо графік являє собою сильно ламану лінію, при цьому не має висхідного руху, а навпаки - спадний, значить вхідні параметри не задовільні, і запускати на їх основі радника можна. Однак пам'ятайте, якщо ви проводили тестування і оптимізацію радника на основі котирувань, поміщених з сервісу MetaQuotes , То цілком ймовірно, що такий графік може бути результатом відсутності даних за якийсь проміжок часу, тому і судити по ньому про вхідних параметрах не можна:
У внеску Звіт тестера стратегій торгової платформи MetaTrader 4 видається більш зручна для сприйняття та аналізу інформація. Причому, якщо оптимізація проводилася на котируваннях, що скачали з MetaQuotes, то результати будуть такими:
А якщо Ви працювали з котируваннями, скачаними з сервісу DukasCopy, то результати якісної оптимізації радника (одного і того ж) з однаковими параметрами, будуть виглядати наступним чином:
Висновок зробити нескладно.
Далі по черзі підставляємо різні комбінації вхідних параметрів, сортуючи їх за різними параметрами. Особливу увагу при виборі комбінацій слід приділяти таким параметрам, як Кількість угод (для кожного типу радників різне), Максимальна і мінімальна просадка. При виявленні "красивого" висхідного графіка і вдалих результатів (хороша прибутковість, невелика просадка і т.д.) з тим чи іншим набором параметрів, необхідно протестувати радника на форвардному періоді.
Крок 5. Тестування радника на форвардному періоді. Переходимо у вкладку тестера Налаштування і замість проміжку часу історичного періоду встановлюємо дати початку (Від) і закінчення (До) форвардного періоду. Форвард-період починається з кінця історичного періоду і закінчується сьогоднішнім числом. Кнопка Старт запускає тестування робота з встановленими вхідними параметрами, отриманими на першому етапі оптимізації.
Якщо тестер показує хороші результати (аналізувати за графіком і до звіту), то встановлену комбінацію параметрів можна зберегти. Для цього у вкладці Налаштування натискаємо кнопку Властивості експерта, виходить вже знайоме вікно з вхідними параметрами, тими, які показали хороший результат тесту. Тут натискаємо на Зберегти. Зберегти файл можна в папці з уже наявними файлами .set, давши йому таке ім'я, що б можна було відразу зрозуміти, оптимізаційний файл від якого радника, який валютної пари і будь тайм - фрейму перед Вами:
Збереження кращих оптимізаційних параметрів.
В ході тестування експерта з різними параметрами хороші результати можуть виявлятися кілька разів, а, отже, і зберігати їх можна також кілька разів. Файл з найвдалішими настройками буде взятий в основу для роботи радника.
Крок 6. Дооптімізація радників. Перед тим, як запустити радника на реальний рахунок, рекомендується його дооптімізіровать. Але, увагу - не зробите помилку! Дооптімізація - це не оптимізація радника на форвардному час Підгонку радника на форвард-тесті слід повністю виключити! Для початку пояснимо, який принцип покладено в систему дооптімізаціі радників. Відомо, що система вважається стабільною в тому випадку, якщо невелика зміна установки не були дестабілізує її стан. Ключова фраза в цьому визначенні - невелика зміна параметрів. Стосовно до дооптімізаціі радників цей принцип повинен реалізовуватися наступним чином: потрібно змінити параметри радників в невеликих межах і запустити оптимізацію на форвардному періоді. І якщо після дооптімізаціі на форвардному періоді вихідні дані (максимальна і мінімальна просадка, прибутковість, кількість угод і т. Д.) Не будуть суттєво відрізнятися від тих, які були отримані при тестуванні на форвардному періоді, то вибираєте найкращі настройки і зберігаєте їх. Ви перевірите правильність оптимізації радника і отримаєте ще більш кращий комплект налаштувань.
У різних радників дооптімізіруются різні параметри, тому в рамках даної статті конкретні параметри, які повинні дооптімізіроваться, назвати не можна. Але привести приклад для кращого розуміння матеріалу можна, що ми і зробимо. Наприклад, для даних налаштувань, які застосовувалися при оптимізації радника на тестуванні, можна дооптімізіровать параметр Pips - значення Крок поміняти з 2 на 1, коефіцент Старт змінити з 10 на 22, а Стоп - з 30 на 26:
Всі ці настройки робляться дуже акуратно і змінюються значення параметрів в дуже невеликих межах і з невеликими кроками. Після дооптімізаціі радник знову тестується на форвардному періоді, і, якщо можна вибрати результати краще, ніж після оптимізації на тестуванні, то отримані настройки остаточно зберігаються в set-файлі, який в подальшому можна використовувати при торгівлі радником, увагу - спочатку на демо - рахунку . І вже після того, як радник покаже гарні результати роботи на демо - рахунку, виставляємо його для прибуткової торгівлі на реальних грошах.
З усього вищесказаного можна зробити висновок, що тільки якісна оптимізація радника разом з його тестуванням на історичному і форвардному періоді може забезпечити нехай і не 100-відсоткову, але високу ймовірність його стабільної роботи в реальному режимі. Складно - скажете Ви? Так, складно! Але Ви зможете отримувати прибуток на повному автоматі , Яка повністю окупить ваше терпіння і наполегливість у вивченні принципів оптимізації радників в торговій платформі MetaTrader 4 ...
Можливо, у Вас виникне питання - Що таке генетичний алгоритм?Складно - скажете Ви?