Радник на замовлення

Далеко не всі трейдери - програмісти. А з них далеко не все - хороші програмісти. Що робити, якщо треба автоматизувати свою систему, а часу і бажання вчити MQL4 немає? Зазвичай людина йде на форум і створює тему з назвою типу "Шукаю програміста". За останній місяць таких тем було сім:

Що необхідно зробити до замовлення експерта?

Перед тим, як шукати програміста, переконайтеся в прибутковості вашої стратегії. Навіщо платити за експерт, який не зможе заробляти? Це можна зробити вручну, переглядаючи історію і торгуючи в розумі, що досить складно. Або зробити за допомогою ручного тестера, описаного в статті Візуалізація тестування. Ручна торгівля. Самі правдоподібні результати ви отримаєте, торгуючи на демо або міні-реальному рахунку, але це зажадає більше часу і, можливо, грошей. Тестуючи стратегію, враховуйте, що:

  • ринок змінюється і правильна поведінка індикаторів на історії не гарантує їх адекватність при реальній торгівлі;
  • деякі індикатори малюють сигнали на вже сформованих барах. Дуже вдало розташовані стрілочки на екстремуму ціни - надбання історії, при реальній роботі вони стануть видні тільки через кілька барів. Приклад такого індикатора - Fractals. його значення з'являються з затримкою в два бари. Тобто, використовувати його можна, але треба враховувати, що ви ввійдете в ринок не прямо під фракталом, а тільки коли сформуються ще два бари (на годинному графіку через дві години). Не використовуйте індикатори, алгоритму роботи яких ви не знаєте. Це може погано закінчитися;
  • є маса індикаторів, які, свідомо чи ні, зазирають у майбутнє. Наприклад, простий Moving Average з негативним зрушенням буде дуже своєчасно показувати розвороти ринку. Але тільки на історії.

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

  • швидкість виконання ордерів на демо-рахунку завжди вище, ніж на реальному рахунку. Будьте готові до того, що ваша реальна позиція відкриється тільки через кілька хвилин після віддачі команди. Це не сильно погіршить показники довгострокової стратегії, але може повністю "вбити" внутрішньоденне трейдинг;
  • на реальному рахунку торговельні умови (спред, відстань до стоп-наказів, рівень margin call тощо) можуть змінюватися "на ходу" (під час торгів). Наприклад, перед виходом новин або перед святами. Тестуючи стратегію на демо-рахунку, ви навряд чи зустрінетеся з подібними сюрпризами, але обов'язково враховуйте їх вплив при підсумковій оцінці стратегії.


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

формалізація алгоритму

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

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

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

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

Добридень! Хочу замовити у вас експерт.
Він повинен відкривати позиції при перетині МА (9) і МА (18).
Якщо швидка перетинає повільну знизу вгору, то бай-позицію, якщо навпаки - то селл-позицію.
Скільки він буде коштувати?

Для визначення вартості мені необхідно докладний і точне завдання.
Орієнтовно - $ 50.

Я ж все написав в попередньому листі!
Є 2 ковзаючі середні, коли швидка (з періодом 9) перетинає повільну (з періодом 18) знизу вгору, відкривається бай-позиція. Коли навпаки - селл-позиція.

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

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

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

Чому ось тут відкрилася ця бай-позиція? Тут же не було перетину!

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

Давайте спробуєм.
І ще: я можу оптимізувати параметри ковзних середніх і значення СтопЛосса і ТейкПрофіта?

Версія №3 - Sample_3.mq4:
- пошук сигналів ведеться по сформованим барам (1-му і 2-му);
- параметри ковзних середніх і розміри СтопЛосса і ТейкПрофіта винесені в зовнішні змінні.
Перевіряйте.

Це вже схоже на те, що я хотів.
Але коли я запускаю кілька експертів, торгує тільки один з них. А іноді вони закривають позиції один одного!

У версії №4 (Sample_4.mq4) додано поділ ордерів по магічному номеру. Якщо ви запускаєте кілька експертів на графіках одного інструмента, встановлюйте їм різні значення змінної MagicNumber.

Ось тепер зовсім добре!

Так яким, повинно було бути спочатку технічне завдання, щоб Виконавець відразу написав 4-ю версію експерта? Давайте спробуємо сформулювати вимоги до експерта:
  • Експерт повинен контролювати тільки свої позиції, не чіпаючи позиції, відкриті вручну і / або за допомогою інших експертів.
  • Якщо немає позицій, відкритих експертом:
    • якщо швидка МА перетинає повільну знизу вгору, відкриваємо бай-позицію;
    • якщо швидка МА перетинає повільну зверху вниз, відкриваємо селл-позицію.
  • Якщо є позиція, відкрита експертом:
    • якщо позиція бай:
      • якщо швидка МА перетинає повільну зверху вниз, закриваємо бай-позицію і відкриваємо селл-позицію;
    • якщо позиція селл:
      • якщо швидка МА перетинає повільну знизу вгору, закриваємо селл-позицію і відкриваємо бай-позицію.
  • Параметри швидкої і повільної МА (період, метод побудови, застосована ціна) повинні задаватися зовнішніми змінними.
  • Значення індикаторів беруться з періоду графіка, на якому працює експерт.
  • Для визначення перетину використовуються 1-й і 2-й бари.
  • Розмір позиції визначається зовнішньої змінної.
  • При відкритті позиції встановлюються СтопЛосс і ТейкПрофіт, відстань до яких визначається зовнішніми змінними.
  • СтопЛосс і ТейкПрофіт повинні бути відключаються.
  • При помилку відкриття позиції експерт повинен вивести вікно з інформацією про помилку і повторити спробу на наступному тику.

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


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

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

вибір програміста


За кілька років існування мови MQL4 з'явилося досить багато експертопісателей. Багато з них - постійні мешканці ресурсу mql4.com. Тут вони викладають свої напрацювання в CodeBase. пишуть статті і просто спілкуються на форумі. допомагаючи новачкам і вдосконалюючись у своїй справі. Багато з них мають реальні рахунки і торгують як за допомогою експертів, так і вручну.

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

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

тестування експерта

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

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

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

Якщо тестування в тестері стратегій помилок не виявило, переходите до тестування на демо-рахунку.

Спробуйте запустити кілька радників з різними або однаковими параметрами і торгуйте одночасно з ними. Експерт повинен продовжувати працювати за алгоритмом, не реагуючи на "те, що відбувається навколо". Якщо і на цей раз помилок немає, можете повідомити програмісту, що все в порядку, і завершити операцію.

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

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

висновок

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

Добридень! Я б хотів зробити відгук про співпрацю з програмістом-трейдером StatBars. Мій замовлення було виконано дуже добре! Швидко та якісно. Людина постарався і зробив все, щоб замовник, тобто, я, був повністю задоволений. Було приємно працювати з цією людиною. Рекомендую! З повагою, Олексій

Схожі статті