Автоматична торгівля в MetaTrader4™

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

Чи може комп'ютер почати заробляти самостійно? Його потрібно лише трохи навчити, закласти в нього нехитрий алгоритм — купувати, коли дорожчає, та продавати, коли дешевшає, поділитися з ним своїм досвідом перемог та застерегти від прикрих невдач. Саме для цього існує функція автоматичної торгівлі в терміналі MetaTrader4™, яка реалізується за допомогою так званих радників (Expert Advisors).

Радниками в MetaTrader4™ називаються програми, розроблені мовою програмування MetaQuotes Language 4 (MQL 4) та що дозволяють автоматизувати аналітичні та торгові операції. Радники дозволяють в автоматичному режимі проводити аналіз поточної ситуації та на основі отриманих сигналів здатні видавати команди на виконання торгових операцій та керування відкритими позиціями.

У клієнтський термінал MetaTrader4™ вбудовано власне середовище розробки експертів — MQL4 IDE. Воно містить в собі:

  • Термінал MetaTrader4™ — модуль керування та виконання програм автотрейдингу.
  • MetaQuotes Language 4 (MQL4) — безпосередньо мова програмування торгових стратегій.
  • MetaEditor — редактор та компілятор радників.
  • Strategy Tester — модуль тестування та оптимізації експертів.

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

Що дає трейдеру автоматична торгівля:

  1. Можливість створити стратегію-автомат, яка торгує цілодобово без трейдера.
  2. Можливість частково позбавитися рутини здійснення торгових операцій та зосередитися на творчій роботі, наприклад, на розробці та оптимізації нової торгової системи.
  3. Можливість реалізувати торгову систему, яку за ручної торгівлі застосувати не вдасться.
  4. Можливість використання торгових стратегій, створених іншими авторами, просто копіюючи програмні коди.
  5. Можливість отримати інструменти автоматизації торгівлі:
    • радники, що дають лише сигнали;
    • інструменти збирання різної статистики;
    • реалізацію недостатнього функціоналу.
  6. Можливість створення індивідуального тестера стратегій:
    • розрахунок унікальних, потрібних саме вам показників;
    • використання унікальних авторських торгових систем.

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

Для створення радників використовується редактор MetaEditor. Щоб запустити редактор радників, необхідно виконати команду «Створити» контекстного меню вікна «Навігатор — Радники», команду меню «Сервіс — Редактор MetaQuotes Language», натиснути клавішу F4 або кнопку на панелі «Стандартна». Під час створення експерта автоматично відкриється майстер створення радників, що дозволяє швидко розпочати роботу з новою MQL4-програмою. У ньому як тип об'єкта, що створюється, необхідно вказати «Радник» і заповнити поля необхідними даними:

Ім'я — назва радника;

Автор — ім'я автора;

Посилання — адреса сайту розробника;

Параметри — список вхідних параметрів радника. Щоб додати новий параметр, необхідно натиснути кнопку «Додати», щоб видалити — кнопку «Видалити».

Після цього в редакторі відкривається вікно нового радника із заданими параметрами. Файл з вихідним текстом (*.MQ4) радника автоматично розміщується в папці /EXPERTS клієнтського термінала ForexClub MetaTrader4™. З цього моменту можна розпочинати написання коду експерта.

Після завершення розробки необхідно скомпілювати радник. Для цього в редакторі радників необхідно виконати команду меню «Файл» — «Компілювати». В результаті успішної компіляції створюється файл програми, що виконується, з розширенням *.EX4, що автоматично поміщається в папку /EXPERTS. Список отриманих експертів можна переглянути у вікні «Навігатор» — «Радники» клієнтського термінала. Якщо компіляцію не було успішно завершено, піктограма експерта буде зафарбована сірим кольором. Це означає, що його не можна використовувати.

Редагування радників

Щоб розпочати редагування вже існуючого радника з термінала, необхідно виконати команду «Змінити» контекстного меню вікна «Навігатор — Радники». При цьому відкриється редактор радників, до якого вже буде завантажено вихідний текст обраного експерта. Після зміни вихідного тексту радника необхідно повторно скомпілювати його і отримати новий EX4-файл, що виконується. В іншому випадку в терміналі використовуватиметься незмінена, попередня версія експерта.

Налаштування роботи радників

Перед початком використання радників необхідно виконати їхнє попереднє налаштування. Загальні для всіх експертів параметри задаються у вікні налаштувань клієнтського термінала. Це вікно можна відкрити командою меню «Сервіс — Налаштування» або за допомогою гарячих клавіш Ctrl+O. Для налаштування параметрів роботи експертів необхідно вибрати вкладку «Радники». У ній доступні:

Увімкнути радники. Ця опція дозволяє дозволити чи заборонити використання всіх радників. Якщо вона вимкнена, з надходженням нового тіка для всіх експертів перестає запускатися функція start(). При цьому замість смайликів навпроти назв експертів у правому верхньому кутку графіків з'являться хрестики. Щоб увімкнути радники, необхідно виставити прапорець та натиснути кнопку «ОК». З надходженням нового тіка вони почнуть працювати, а хрестики у правому верхньому кутку графіка знову перетворяться на смайлики.

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

Вимкнути радники при зміні рахунку. Ця опція є захисним механізмом, що вимикає радники при зміні рахунку. Вона буває корисною, наприклад, при переключенні з демо- на реальний рахунок. Щоб увімкнути механізм, необхідно виставити прапорець та натиснути кнопку «ОК».

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

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

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

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

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

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

Запуск радників

Після налаштування загальних параметрів можна запускати експерти. Для цього достатньо лише приєднати радник до графіка, просто перетягнувши його на графік із меню «Радники». Команда «Приєднати до графіка» контекстного меню вікна «Навігатор — Радники» або подвійний клік лівою кнопкою миші на вибраному експерті в тому ж вікні дозволяють накласти його на активний графік. На екрані з'явиться вікно індивідуальних налаштувань радника. У вкладці «Загальні» можна:

Позиції — вибрати напрямок відкриття позицій:

  • Long&Short — в обидві сторони;
  • Only Long — тільки на купівлю;
  • Only Short — тільки на продаж.

Дозволити сигнали — дозволити/заборонити раднику подавати сигнали;

Не повторювати сигнал — заборонити подання сигналів про події після надходження першого сигналу;

Дозволити раднику торгувати — дозволити/заборонити проведення торгових операцій у реальному часі;

Ручне підтвердження — Запитувати підтвердження на відкриття позиції при проведенні торгових операцій;

Дозволити імпорт DLL — дозволити/заборонити імпорт функцій із DLL-файлів;

Підтверджувати імпорт функцій DLL — запитувати підтвердження під час кожного виклику функцій із DLL-файлів;

Дозволити імпорт зовнішніх експертів — дозволити/заборонити виклик функцій із зовнішніх експертів.

У вкладці «Вхідні параметри» можна змінити зовнішні змінні експерта. До них відносяться змінні класу extern. Щоб змінити параметр, необхідно двічі натиснути лівою кнопкою миші на його значенні і записати нове. Можна змінювати значення кожної змінної або завантажити вже збережений набір вхідних параметрів (кнопка «Завантажити»). Зберегти поточний набір зовнішніх змінних можна за допомогою однойменної кнопки.

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

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

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

Увага: до одного графіка можна приєднати лише один радник. При накладенні другого радника перший видаляється.

Завершення роботи радника

Щоб завершити роботу експерта, потрібно видалити його з графіка. Перед завершенням роботи проводиться деініціалізація експерта. Для видалення експерта з графіка необхідно виконати команду контекстного меню графіка «Радники — Видалити» або приєднати до графіка інший радник. Крім того, радник може видалятися з графіка при зміні профілю або шаблону.

Увага:

  • при вимкненні клієнтського термінала відбувається завершення роботи всіх експертів;
  • при закритті графіка відбувається завершення прикріпленого до нього радника;
  • при накладенні другого радника перший видаляється після підтвердження;
  • видалення радника з вікна «Навігатор» не завершує роботу однойменного накладеного на графік експерта;
  • вимкнення радників у налаштуваннях клієнтського терміналу не є гарантією повного вимкнення експертів. Ця опція припиняє запуск функції start() кожного радника, але функція init() продовжується.