Як тестувати радник в тестері mt4 - докладна інструкція

Спонсор цієї статі - сайт Richinvest.biz - торгуйте бінарніми опціонами з максимальним прибутком!

Як протестувати форекс радник в тестері стратегій

Всім привіт! Механічні торгові системи так само старі, як і ринки. З розвитком в 20 столітті комп`ютерних технологій і мережі інтернет стало можливим торгувати не виходячи з дому, а на початку 21 століття, з появою платформи MetaTrader, ще й в автоматичному режимі. Ресурси сучасного настільного комп`ютера дозволяють втілювати в життя будь-які, навіть найскладніші алгоритми, а вбудований в термінал MetaTrader редактор MetaEditor дає можливість написати робота навіть людині, мало знайомому з програмуванням. В результаті околофорексовий ринок заповнений різними пропозиціями купити чудо-радники і деякі з них дійсно варті уваги. Але як же зрозуміти, чи варто застосовувати на реальних рахунках той чи інший форекс радник? Сьогодні я розповім, як тестувати торгового робота на історичних даних за допомогою програми MetaTrader 4.

Підготовка до тестування

Підготовка до тестування радника в mt4

Ми не будемо сьогодні розбирати, як встановити радник в термінал - для цього є відповідна стаття в блозі. Будемо вважати, що радник ми вже встановили. Тепер необхідно подумати про котируваннях, які ви будете використовувати. Більшість брокерів не мають власної історичної бази, виняток становлять Alpari і Ducascopy, інші ж використовують котирування, що надаються компанією MetaQuotes. Сказати, що ці котирування взагалі годяться для тестів я не беруся - вони дуже низької якості (багато прогалин, помилок і неточностей). Як завантажувати котирування від компанії Ducascopy - тема окремої статті, до того ж це не так просто зробити новачкові. Тому для тестів радників ми скачати саме термінал від компанії Alpari. Увага! Щоб отримати доступ до історичної базі котирувань Альпарі, в терміналі ви повинні бути підключені саме до реального рахунку! З недавніх пір цей брокер не надає свою базу котирувань для власників демо-рахунків.

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

Для початку нам потрібно дещо налаштувати, для чого йдемо до вкладки Сервіс -> Настройки або тиснемо Ctrl + O

001

З`явиться вікно з настройками терміналу:

004

Вибираємо вкладку «Графіки» і в графах «Макс. барів історії »і« Макс. барів у вікні »та запальними як у мене на малюнку вгорі (за умовчанням там стоїть 65000 барів).

Для того, щоб котирування по потрібної нам парі стали доступні в терміналі для проведення по ним тесту, відкриваємо вкладку Сервіс -> Архів котирувань або тиснемо F2.

003

Відкривається наступне вікно:

002

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

Тестер терміналу. основний функціонал

Тестер стратегій основний функціонал

Отже, щоб приступити до тестування радника відкриваємо тестер стратегій або натискаємо Ctrl + R.

005

Знизу в терміналі з`явиться ось така панель:

006

Давайте зупинимося на кожній функції детальніше.

Перше, що ви побачите зліва вгорі панелі - перемикач радник-індикатор:

007

У нових білдах терміналу з`явилася можливість подивитися на роботу індикатора в візуальному режимі (про який мова піде нижче). Треба сказати, що така можливість була і раніше, але неофіційно. Тепер же під тестування індикаторів відведена окрема кнопочка.

Отже, вибираємо радник.

008

Під цифрою 1 у нас знаходиться список, що випадає з доступними для тестування радниками. Тут ви знайдете тільки ті радники, які завантажені в ваш термінал. Цифра 2 - список, що випадає валютних пар, вибираємо потрібну. Не забудьте закачати для неї котирування в архів котирувань. Якщо ви раптом не змогли знайти потрібну вам пару в списку, хоча впевнені, що вона у брокера доступна для торгівлі, включите огляд ринку або натисніть Ctrl + M:

009

Далі правою кнопкою миші клікніть прямо у вікні навігатора і натисніть «Показати всі символи»:

010

На пункті 3 зупинимося трохи докладніше. Тут ми можемо вибрати необхідну нам модель тестування. Для якісного тестування торгової стратегії важливо вибрати адекватний спосіб моделювання розвитку цінових барів. Всього доступні три варіанти:

- За цінами відкриття (швидкий метод на сформованих барах, тільки для радників з явним контролем відкриття барів)

Використовує грубу оцінку стратегії. При кожній свічці генерується тільки один тик. Гідність - найшвидший спосіб перевірки. В цьому режимі спочатку моделюється відкриття бару (Open = High = Low = Close, Volume = 1), що дає можливість експерту точно ідентифікувати закінчення формування попереднього цінового бара. Саме на цьому зароджується барі запускається тестування експерта. На наступному кроці видається вже повністю сформований поточний бар.

- Контрольні точки (дуже грубий метод на основі найближчого меншого таймфрейма, результати не можна брати до уваги)

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

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

- Все тики (найбільш точний метод на основі всіх доступних менших таймфреймів)

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

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

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

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

Пункт 5 - візуалізація, про яку ми поговоримо пізніше.

Налаштування на панелі тестера справа:

011

Період - вибір періоду для тестування радника. Доступні періоди аж до D1. W1 і MN1 недоступні для тестування. Крім того, якщо у вас не завантажена історія котирувань потрібного періоду, тест ви виконати не зможете.

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

Кнопка «Змінити експерта» доступна тільки якщо у вас є вихідний код радника (файл з розширенням mq4). Вона відкриває редактор коду радника, де ви зможете внести в радник необхідні зміни.

Кнопка «Відкрити графік» відкриває графік з нанесеними на нього індикаторами і угодами, вчиненими радником під час тесту (натиснути можна після того, як тест виконаний).

Кнопка «Шрифт»

012

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

Кнопка «Властивості експерта»

013

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

Вкладка «Тестування».

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

Вкладка «Вхідні параметри»

014

Тут знаходяться всі керуючі змінні самого експерта, його налаштування. До речі, вікно масштабоване - якщо ви потягнете мишкою за нижній правий кут, можна збільшити або зменшити його в розмірах. Разом з експертами як правило зазвичай поставляються файли з настройками, що мають розширення *.set. Причому найчастіше для кожної пари свій файл з налаштуванням. Щоб завантажити правильні настройки для потрібної пари натискаємо кнопку «Завантажити» і вибираємо потрібний файл. Часто після установки експерта в термінал вони виявляються не в потрібній папці. Після натискання на кнопку «Завантажити» ми опиняємося в папці тестера (у мене це C: UsersSilentspecAppDataRoamingMetaQuotesTerminalFE03BE71CD8F9E8F4C70E0FDAFC997E5 ester). Якщо потрібних файлів там не виявилося, йдемо в папку FE03BE71CD8F9E8F4C70E0FDAFC997E5MQL4Presets, швидше за все файли там. Отже, вибираємо і завантажуємо потрібний настроювальний файл. Після завантаження нам потрібно знайти параметри маніменеджмента радника і виставити фіксований лот 0.1 - в цьому випадку кожен долар прибутку або збитку буде дорівнює 1 старому пункту. Для чого це - я розповім нижче.

Тестування радника. результати тесту

Тестування радника результати

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

Настав час поглянути в нижній лівий кут тестера:

015

Тут ми можемо помітити вкладки «Налаштування», «Результати», «Графік», «Звіт» та «Журнал».

У вкладці «Результати» доступний список всіх угод, укладених радником за час тесту.

На вкладці «Графік» можна помилуватися кривої прибутковості радника.

Якщо радник не вчинив жодної угоди, варто заглянути у вкладку «Журнал». У ній ви знайдете опис всього, що сталося під час тесту. Цілком ймовірно, що в радника якась помилка. Розшифровку номера помилки можна подивитися в розділі Коди помилок.

У вкладці «Звіт» доступна вся статистика роботи експерта на обраному відрізку часу:

017

Барів в історії - кількість барів в історії, показує глибину історії, на основі якої проводилося моделювання.

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

Якість моделювання - якість моделювання.

Помилки неузгодженості графіків - помилки, що виникають при моделюванні тиків за різними таймфрейме. Якщо є хоч одна така помилка, видаляємо всю історію з терміналу і закачуємо заново. Видалити можна так: Файл -> Відкрити каталог даних -> Відкриється вікно з папкою терміналу -> папка history -> Вибираємо потрібний нам тип рахунку (той, що ви використовуєте в даний момент) -> Закриваємо термінал і видаляємо всі файли з розширенням *. hst. Далі закачуємо заново котирування в архіві котирувань.

Панелька з сигналізатором якості котирувань (у мене вона зелена, тому для прикладу знайшов в інтернеті):

018

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

Початковий депозит - депозит, з яким проводилося тестування.

Спред - спред, з яким проводилося тестування.

Загальний прибуток - скільки всього було зароблено під час роботи радника

Загальний збиток - скільки всього було втрачено.

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

Прибутковість - прибутковість, показує відношення між загальним прибутком і загальним збитком. Розраховується за формулою Прибутковість = Загальний прибуток / Загальний збиток.

Матожіданіє виграшу - математичне очікування виграшу.

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

Максимальна просадка - це максимальна різниця між одним з локальних верхніх екстремумів графіка зміни балансу і наступних нижніх екстремумів.

На наступному малюнку цифрами показані основні стадії зміни величини максимальної осідання в процесі тестування. Підсумкове значення максимальної осідання виділено потовщеними стрілками.

20

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

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

Якщо клікнути по звіту правою кнопкою мишки, можна зберегти цей звіт у вигляді html файлу:

016

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

режим візуалізації

режим візуалізації в тестері стратегій mt4

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

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

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

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

висновок

тестування радників висновок

У цій статті було розглянуто основний функціонал тестера стратегій терміналу MetaTrader 4 і особливості закачування котирувань. Також ми познайомилися з результатами тесту радника і візуальним режимом тестування. Хочу звернути увагу, що це лише основи роботи з радниками. Спосіб тестування радника, розглянутий в статті, підійде для радників на періодах від Н1 і вище. Для скальперів, що працюють на більш дрібних періодах, такий спосіб тестування підходить умовно, він носить чисто інформативний характер. Якщо ви зібралися заробляти за допомогою радників, необхідно також освоїти оптимізацію радників. Також не зайвим буде отримати більш глибокі знання про тестування і оптимізації радників з більш високою якістю моделювання, недоступним, на жаль, в стандартному виконанні терміналу.

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

TradeLikeaPro.ru