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

Anonim

Як оптимізувати радник в MT5

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

Але в березні цього року ситуація кардинально змінилася - в платформу була таки додана друга система обліку - хеджинг. Та сама система, що використовується в четвертій версії терміналу. Тепер по інструменту можна мати безліч позицій, в тому числі - різноспрямованих. Отже, всі ті недоліки, що раніше відштовхували форекс трейдерів від платформи MetaTrader 5, прибрані, і настав час придивитися до неї уважніше. Чи дає якісь переваги використання п`ятої платформи при оптимізації торгових радників? Чи варто переходити на нову платформу любителям автоматизованої торгівлі або краще залишитися зі старим добрим MT4? Сьогодні ми навчимося оптимізувати радники на платформі MetaTrader 5 і розглянемо основні переваги та недоліки оптимізації радників з її допомогою.

оптимізація радників

daily_picdump_1987_640_71

Як тестувати радники і які бувають режими тестування в МТ5 ми вже розібралися в попередній статті. Також ви вже знаєте, як встановлювати радники в термінал. Тому відразу перейдемо до основної теми цієї статті - оптимізації торгових експертів в платформі МТ5.

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

Тестер стратегій в МТ5 є багатопотоковим і дозволяє задіяти всі доступні ресурси комп`ютера. Тестування та оптимізація здійснюються за допомогою спеціальних обчислювальних агентів, які працюють незалежно і дозволяють проводити паралельні обчислення проходів оптимізації. До тестеру стратегій може бути підключено необмежену кількість агентів, що працюють віддалено. Крім цього, в тестері стратегій доступна для використання величезна мережа хмарних обчислень MQL5 Cloud Network. Вона об`єднує тисячі агентів по всьому світу, і ця обчислювальна потужність доступна будь-якому користувачеві торгової платформи.

Підготовка до оптимізації

Підготовка до оптимізації

Тестер дозволяє проводити перевірку на історії стратегій, які торгують на кількох інструментах. Такі експерти умовно називають мультивалютними. Історія по використовуваних інструментах закачується тестером з торгової платформи (ні з торгового сервера) автоматично при першому зверненні до даного інструменту. З торгового сервера докачувати тільки недостатня історія. Таким чином, для тестування і оптимізації радників використовується в основному історія, спеціально підготовлена компанією MetaQuotes, а не реальна історія котирувань конкретного брокера.

Перед початком оптимізації мультивалютного експерта включите необхідні для тестування інструменти в «Огляді ринку». У контекстному меню виконайте команду »Символи» і включіть показ необхідних інструментів.

003

Вибір налаштувань оптимізації

Перед початком оптимізації виберіть, на якому фінансовому інструменті буде проведено дослідження роботи радника, за який період і в якому режимі.

004

  1. Виберіть радник, який необхідно оптимізувати.
  1. Виберіть валютну пару, на якій буде проводиться оптимізація. Для мультивалютних радників це пара, на графіку якої буде «висіти» радник.
  1. Таймфрейм для роботи радника. Як ви вже знаєте, в МТ5 з`явилося безліч додаткових періодів і на кожному з них можна протестувати і оптимізувати радника. І хоча корисність появи таких періодів, як М3, М12 або Н2 досить сумнівна, радує, що тепер можна тестувати довгострокові радники на періодах W1 або MN
  1. Вибір інтервалу для оптимізації:

    005

При виборі «вся історія» оптимізація пройде на всій доступній історії котирувань. Наступні два інтервали, звичайно ж, абсолютно марні.

  1. Також можна задати явні дати початку і закінчення періоду оптимізації («вибір періоду»)

Особливістю тестера є те, що він завантажує кілька додаткових даних до зазначеного періоду (для формування як мінімум 100 барів). Наприклад, при тестуванні на тижневому таймфрейме завантажуються два додаткові роки. Це необхідно для більш точного тестування і оптимізації - на цій історії будуються індикатори, які використовуються радником, наприклад. Якщо при цьому для формування додаткових 100 барів недостатньо історичних даних (для тижневих і місячних періодів наприклад), дата початку тестування буде автоматично пересунуто, а в журналі тестера стратегій з`явиться відповідний запис.

  1. Форвард.

    006

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

  1. режим торгівлі

На даний момент передбачені два режим торгівлі: «Звичайний» і «Довільна затримка». У звичайному режимі все ордера виконуються по запитаним цінами, відсутні реквот і т.д. - тобто те саме, що і в четвертому терміналі (ідеальне виконання).

Режим довільних затримок передбачений для тестування експертів в умовах, наближених до реальних. З моменту відсилання наказу і до його виконання ціна може змінитися. Залежно від відхилення (Slippage), встановленого в ордері, може статися його виконання за поточною ціною (якщо вона в межах відхилення) або реквотірованіе. Тестування в даному режимі дозволяє розробнику правильно запрограмувати обробку подібних ситуацій, а так само наблизить тести радника до реальних умов. Імітація затримки здійснюється для всіх торгових запитів, які надсилаються з терміналу (виставлення ордерів, зміна стоп-рівнів, і т.д.). Затримка виконання здійснюється за наступним принципом: випадковим чином вибирається число від 0 до 9, і на таке число секунд здійснюється затримка; якщо вибране число дорівнює 9, то випадковим чином вибирається ще одне число з такого ж діапазону і додається до першого. Таким чином, імовірність затримки виконання на 0-8 секунд становить 90%, а ймовірність затримки на 9-18 секунд становить 10%.

  1. Режим генерації тиків

Можна вибрати один з режимів генерації тиків:

  • Все тики - найбільш точний, але і найбільш повільний режим моделювання. У ньому моделюються все тики.
  • Кожен тик на основі реальних тиків - максимально наближений до реальних умов режим. Використовуються реальні тики, накопичені брокером за фінансовими інструментами. Моделювання не провадиться. Тиків дані мають великий розмір, при першому запуску тестування їх скачування з сервера брокера може зайняти тривалий час.
  • OHLC на М1 - в даному режимі моделюються лише 4 ціни кожного хвилинного бару - ціни Open, High, Low і Close.
  • Тільки ціни відкриття - в даному режимі моделюються й ціни OHLC, однак для тестування / оптимізації використовується лише ціна відкриття.
  • Математичні обчислення - в даному режимі тестер НЕ буде підкачувати історичні дані, інформацію про символи і не буде генерувати тики. Будуть викликані тільки функції OnInit (), OnTester () і OnDeinit (). Таким чином тестер можна використовувати для різних математичних обчислень, де потрібно підбір параметрів.
  1. початковий депозит

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

  1. Плече.

Виберіть кредитне плече для тестування і оптимізації. Це особливо актуально для сіткар і мавп.

  1. оптимізація

У вкладці «Налаштування» Тестера стратегій нас цікавить тільки рядок Оптимізація (з усіма іншими функціями ви вже знайомі). У тестері стратегій передбачено два режими оптимізації.

001

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

Повільна (повний перебір параметрів). В цьому режимі тестер перебирає всі можливі комбінації параметрів експерта, обраних для оптимізації на відповідній вкладці:

002

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

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

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

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

  1. Із загальної кількості можливих комбінацій параметрів випадковим чином вибираються дві популяції (безлічі).
  2. Проводиться тестування обох множин, і з них залишається тільки одне безліч, що має найкращі результати (за критерієм оптимізації).
  3. Члени даної множини випадковим чином схрещуються між собою, зазнаючи випадкові мутації і інверсії параметрів.
  4. Нащадки упорядковано відповідно до найкращих результатів і схрещування повторюється.
  5. Операції сортування і схрещування тривають до тих пір, поки є поліпшення результатів (найкращий результат серед нащадків перевищує найкращий результат серед батьків). Для закінчення оптимізації необхідно відсутність поліпшення критерію оптимізації протягом декількох схрещувань (поколінь).

Після запуску генетичної оптимізації на вкладці «Налаштування» показується оціночна кількість майбутніх проходів тестування. Якщо загальна кількість кроків оптимізації перевищує 1 000 000 в 32х бітної системі або 100 000 000 в 64х бітної системі, то автоматично включається режим швидкої оптимізації.

Проміжні результати зберігаються в кеші після розрахунку кожного покоління (файл папка_данних_платформи / tester / cache / *. Gen). Таким чином, процес генетичної оптимізації можна переривати в будь-який момент. Навіть якщо процес генетичної оптимізації буде перерваний через зовнішні причини (наприклад, відключення електрики), оптимізація буде автоматично продовжена з останнього розрахованого покоління при наступному запуску. Кеш генетичної оптимізації зберігається до зміни налаштувань оптимізації або до повного завершення процесу оптимізації. При штатної зупинці оптимізації (кнопкою «Стоп») зберігаються всі раніше розраховані проходи. При поновленні оптимізації, процес буде продовжений з місця зупинки.

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

  1. критерій оптимізації

    007

Вибір даного показника здійснюється на вкладці «Налаштування» праворуч від поля «Оптимізація». Критерій оптимізації необхідний тільки для генетичного алгоритму. Доступні наступні критерії оптимізації:

Максимальний баланс - показником оптімізірованності є максимальне значення балансу.

Баланс + максимальна прибутковість - показником є максимальне значення твори балансу на прибутковість.

Баланс + максимальне матожіданіє виграшу - показником є твір балансу на матожіданіє виграшу.

Баланс + мінімальна просадка - в даному випадку крім значення балансу враховується рівень просадки: Баланс / Осідання по Еквіті.

Баланс + максимальний фактор відновлення - показником є твір балансу на фактор відновлення.

Баланс + максимальний коефіцієнт Шарпа - показником є твір балансу на коефіцієнт Шарпа.

Призначений для користувача критерій оптимізації - при виборі даного параметра в якості критерію оптимізації буде враховуватися значення функції OnTester () в радника. Даний параметр дозволяє користувачеві використовувати будь-який власний показник для оптимізації.

Вибір вхідних параметрів для оптимізації

Вибір вхоlys [параметрів для оптимізації

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

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

002

Щоб включити оптимізацію по параметру, виберіть його галочкою. Далі задайте початок і кінець діапазону значень, а також крок перебору. Можна вибрати один або кілька параметрів. Загальна кількість можливих комбінацій буде показано під списком параметрів.

запуск оптимізації

Запуск оптимізації MT5

Щоб почати оптимізацію, натисніть «Старт» на вкладці «Налаштування». Лівіше при цьому буде показуватися хід її виконання.

Докладні результати по кожному проходу виводяться на вкладці «Оптимізація». Тут представлені загальні результати тестування, такі як прибуток і кількість торгових операцій, а також безліч статистичних показників, які допоможуть оцінити якість роботи робота.

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

008

Для кожного проходу оптимізації виводяться наступні показники:

Прохід - номер проходу.

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

Прибуток - отриманий прибуток / збиток за результатами проходу.

Всього трейдів - загальна кількість трейдів (угод, які привели до фіксації прибутку або збитку), скоєних за цей прохід.

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

Матожіданіє виграшу - цей статистично розраховується показник відображає середню прибутковість / збитковість однієї угоди.

Просадка - відносна просадка коштів, найбільший збиток у відсотках від максимального значення засобів. Зняття коштів (Withdrawal) радником під час оптимізації враховується при розрахунку осідання.

Фактор відновлення - даний показник відображає ризикованість стратегії

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

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

За допомогою команд контекстного меню можна приховувати / показувати деякі з вищевказаних стовпців.

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

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

Для аналізу в сторонніх програмах, наприклад, в екселя, звіт оптимізації можна зберегти у вигляді файлу командою «Експортувати в XML» в контекстному меню. Також, чисельні значення всіх параметрів і характеристик, отримані в результаті оптимізації, по її завершенні зберігаються в XML файл, розташований в папці папка_данних_платформи / tester / cache /. Файлу присвоюється ім`я за наступним правилом: ExpertName.Symbol.Period.GenerationMode.xml. тут:

ExpertName - найменування оптимизируемого експерта.

Symbol - символ.

Period - таймфрейм (M1, H1,…).

GenerationMode - режим генерації тиків (0 - «Все тики», 1 - «OHLC на M1», 2 - «Тільки ціни відкриття»).

При генетичної оптимізації проміжні результати зберігаються в кеші після розрахунку кожного покоління (файл папка_данних_платформи / tester / cache / *. Gen). Таким чином, процес генетичної оптимізації можна переривати в будь-який момент. Навіть якщо процес генетичної оптимізації буде перерваний через зовнішні причини (наприклад, відключення електрики), оптимізація буде автоматично продовжена з останнього розрахованого покоління при наступному запуску. Кеш генетичної оптимізації зберігається до зміни налаштувань оптимізації або до завершення процесу оптимізації. При штатної зупинці оптимізації (кнопкою «Стоп») зберігаються всі раніше розраховані проходи. При поновленні оптимізації, процес буде продовжений з місця зупинки.

Візуальне представлення результатів оптимізації

Візхуальние результати оптимізації в MT5

Тестер стратегій в торговій платформі володіє потужною системою візуалізації результатів оптимізації. На вкладці «Графік оптимізації» є кілька видів графіків, перемикатися між ними можна через контекстне меню.

Нульова лінія (площину)

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

Графік з результатами і Лінійний графік (1D)

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

На лінійному графіку (1D) відображається зміна параметра, що є критерієм оптимізації (вертикальна вісь) в залежності від одного з оптимізуються параметрів, обраного для відображення на горизонтальній осі. Щоб вибрати параметр для відображення на горизонтальній осі, використовуйте команду «Вісь X» в контекстному меню.

Плоский графік (2D) і Об`ємний графік (3D)

010

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

011

У тривимірному режимі перегляду на осях X і Y відкладаються зміни обраних параметрів, за якими проходила оптимізація. Зміни критерію оптимізації відображаються по вертикальній осі Z, а також за допомогою колірного градієнта.

Щоб вибрати параметри для відображення на горизонтальної та вертикальної осях, використовуйте команди «Вісь X» і «Вісь Y» в контекстному меню.

Управління 3D графіка:

G - включення / відключення координатної сітки

Пропуск - перемикання між суцільною заливкою і заливкою за допомогою ліній

Стрілки вгору / вниз / вліво / вправо - переміщення графіка

Плюс / мінус - наближення / віддалення від графіка

Home, Page Up, Page Dn, End - обертання графіка

висновок

Оптимізація радників в MT5 висновок

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

З повагою, Дмитро аkа Silentspec

TradeLikeaPro.ru

AMarkets