Разработка EA и Builder beginner 12 мин чтения

Как собрать советника на MACD в MT5 без программирования — и почему его лучший результат оказался самым опасным

Советник на MACD для MT5 без программирования: собираем пересечение сигнальной линии из блоков прямо в браузере, компилируем в настоящий .ex5 и честно читаем цифры. Включая результат, который должен насторожить сильнее всего: собственный перебор параметров Builder нашёл настройку MACD с профит-фактором 1,14 вне выборки, а на предыдущем окне та же настройка провалилась до 0,74.

Опубликовано · Проверено

Вы собираете советника на MACD в MT5 без программирования так: ставите узел «Старт» (Start), два блока MACD — один читает основную линию, другой сигнальную, — условие «Пересечение» (Cross) между ними и блок ордера. Сервер генерирует и компилирует MQL5 и отдаёт вам настоящий .ex5. Пятнадцать минут, и ни одной строки синтаксиса.

Дальше идёт та часть, которая решает, стоит ли полученный файл хоть чего-нибудь. У этого рецепта есть измеренная запись, и самое лестное её число — как раз то, которому стоит доверять меньше всего.

Что вы соберёте

Советника на одну позицию по одной паре: покупает, когда линия MACD пересекает свою сигнальную линию снизу вверх, и продаёт, когда пересекает её сверху вниз, с фиксированными стопом и целью, скомпилированного в настоящий .ex5. Восемь блоков.

Два блока из этого счёта существуют по одной-единственной причине: блок индикатора MACD возвращает одну линию за раз.

Прежде чем начать: что показывает MACD и какую линию вы читаете

Вам нужен бесплатный аккаунт с подтверждённым адресом почты (проектировать бесплатно и без входа, а вот компиляция в .ex5 входа требует), около пятнадцати минут и терминал MetaTrader 5.

MACD вычитает медленную скользящую среднюю из быстрой, а затем сглаживает саму эту разницу ещё раз. Поэтому основная линия измеряет, насколько далеко разошлись две средние, а сигнальная — это то же самое измерение, только сглаженное. Всё, что вообще способно сказать правило на MACD, — это утверждение о расстоянии между двумя средними. А значит, перед вами трендовый инструмент в одежде осциллятора, и он наследует запаздывание обеих средних, из которых собран.

Блок MACD в Builder открывает такие настройки:

Настройка блокаПо умолчаниюЧем управляет
fast_ema12Быстрая средняя. Диапазон 1–999
slow_ema26Медленная. Зазор между ними и есть весь сигнал
signal_period9Насколько сильно разница сглаживается, прежде чем вы её сравниваете
lineMODE_MAINКакую линию выдаёт этот блокMODE_MAIN или MODE_SIGNAL
applied_pricePRICE_CLOSEКакая цена идёт в расчёт
shift00 — формирующийся бар, 1 — последний закрытый
timeframeтаймфрейм графикаЛюбой от M1 до MN1, читается независимо от графика

line — та строка, которая меняет саму форму вашей схемы. Это выбор из двух значений, поэтому один блок даёт вам одну линию. Пересечению сигнальной линии из-за этого нужны два блока MACD; пересечению нуля — один плюс сравнение с константой.

Пошагово: собираем советника на MACD в Builder

  1. Откройте EA Builder и загрузите шаблон macd_signal из галереи — или начните с чистого холста и соедините всё сами.
  2. Поставьте узел «Старт» (Start) из палитры «Утилиты» (Utility). Без него валидация останавливает сборку с кодом EAB-E202.
  3. Добавьте блок MACD и оставьте line в значении MODE_MAIN. Для первой сборки не трогайте 12/26/9, чтобы ваш результат остался сопоставим с базовой линией ниже.
  4. Добавьте второй блок MACD с теми же периодами и задайте line равным MODE_SIGNAL. Тот же индикатор, те же настройки, другой выход — это тот самый шаг, который пропускают, и именно поэтому их схема сравнивает линию саму с собой.
  5. Заведите оба блока в условие «Пересечение» (Cross). Cross принимает два входа и спрашивает, пересёк ли один другой на этом баре; его cross_type — это crossover или crossunder, поэтому сторона покупки и сторона продажи — два отдельных условия, а не одно перевёрнутое.
  6. Заведите каждое условие в свой блок «Открыть покупку» (Open Buy) / «Открыть продажу» (Open Sell). Индикатор, заведённый напрямую в ордер, отклоняется с кодом EAB-E205 — сырое значение решением не является.
  7. Задайте риск во вкладке «Настройки» (Settings). Общие значения по умолчанию: стоп в 50 пунктов, цель в 100 пунктов и фиксированный лот 0.01; схема без действующего стопа поднимает диагноз уровня CRITICAL в preflight раньше, чем что-либо соберётся.
  8. Нажмите «Измерить» (Measure) и прочитайте результат относительно порога, который печатает панель: профит-фактор не ниже 1,2, не менее 60 сделок, просадка не хуже 20 %.
  9. Нажмите «Скомпилировать .ex5» (Compile .ex5), перенесите файл в MQL5/Experts через «Файл > Открыть каталог данных» (File > Open Data Folder), обновите «Навигатор» и протестируйте советника в тестере стратегий, прежде чем он окажется рядом со счётом.
  • Узел «Старт» (Start)
  • Блок MACD, line = MODE_MAIN
  • Блок MACD, line = MODE_SIGNAL
  • «Пересечение» (Cross) — crossover для покупки, crossunder для продажи
  • «Открыть покупку» (Open Buy) и «Открыть продажу» (Open Sell)
  • Стоп-лосс и тейк-профит
  • Компиляция в .ex5
Почему рецепту с сигнальной линией нужны два блока MACD, а рецепту с пересечением нуля — нет

Если вам вместо этого нужна версия с пересечением нуля, удалите второй блок MACD и замените Cross на «Сравнение» (Compare), у которого операторы > < >= <= == !=, а offset по умолчанию равен 0. «Основная линия MACD выше нуля» — это утверждение о том, что быстрая средняя вообще находится выше медленной, а такое событие куда более редкое и куда более позднее, чем касание двух линий. В палитре есть также блок OsMA, который выдаёт разницу «основная минус сигнальная» напрямую одним значением, поэтому правилу по гистограмме нужен один блок, а не два.

Вход, выход и параметры MACD

НастройкаЗначение в шаблонеЧто даёт её изменение
fast_ema12Меньше — реагирует раньше и пересекает намного чаще; число сделок сдвигается раньше, чем винрейт
slow_ema26Больше — шире зазор, который должна пройти быстрая линия, поэтому сигналы приходят позже и реже
signal_period9Сглаживание линии сравнения. Короче — больше пересечений, и большинство из них шум
lineMODE_MAINНе ручка настройки — она решает, какое правило вы собрали
shift0Поставьте 1, чтобы решать только по закрытым барам
Стоп-лосс50 пунктов (общее значение по умолчанию)Перебирался диапазон 30–80
Тейк-профит100 пунктов (общее значение по умолчанию)Перебирался диапазон 60–250

О запаздывании — это честная претензия к данному индикатору. Каждое значение здесь — это выход двух средних, поставленных на третью. Поэтому пересечение — это сообщение о том, что движение уже произошло; вопрос только в том, насколько поздно. Укорачивание fast_ema покупает раннесть и платит за неё ложными пересечениями; удлинение slow_ema покупает надёжность и платит за неё входами, которые приходят после движения. Собственная запись шаблона подсказывает, где он приземлился: 698 сделок за год, второй по величине счёт из тринадцати трендовых и импульсных шаблонов, измеренных при одинаковых условиях. Это дизайн, который срабатывает непрерывно, а непрерывное срабатывание и есть цена короткого запаздывания.

Что перебор трогал, а что нет. Записанный перебор параметров двигал только стоп и цель — SL30-80 × TP60-250, 12 комбинаций по трём окнам на H1. Он ни разу не менял ни fast_ema, ни slow_ema, ни signal_period. Значит, ничто на этой странице не поддерживает утверждение, что 12/26/9 — правильно, неправильно или улучшаемо. Зато поддерживает утверждение куда более узкое и куда более полезное: ни одна комбинация стопа и цели дизайн не спасла.

Бэктест советника на MACD

Это собственная измеренная запись Builder, а не повторный прогон, и все шаблоны в сравнении разделяют один и тот же набор условий из таблицы ниже. Страница как мы тестируем описывает стандарт, которому эти записи обязаны соответствовать.

Базовая линия macd_signalЗначение
Профит-фактор0,93
Сделок698
Максимальная просадка-1,05 %
Итог-93,93
Место в своём соседстве по профит-фактору8-й из 13
Место в своём соседстве по числу сделок2-й из 13
Проходит собственный порог панели Measureнет
Условия теста
Идентификатор экспериментаEXP-MACD-RECIPE-BASELINE-001
Родительский экспериментEXP-BUILDER-TEMPLATE-BASELINE-001
Символ / таймфреймUSDJPYm M5
Период2025-06-01 – 2026-06-09
МодельM1 OHLC (Model=1)
Депозит10,000
СредаExness MT5
Базовая линия измерена2026-06-18
Последняя проверка2026-08-25
1,14Лучший профит-фактор вне выборки, который нашёл записанный перебор параметров
0,74Сколько та же самая настройка набрала на предыдущем окне
8-й из 13Какое место шаблон MACD занимает среди трендовых и импульсных дизайнов, измеренных одинаково

Результат перебора заслуживает больше одной строки. Восемь шаблонов галереи несут записанный перебор параметров, и все восемь закончили вердиктом no_robust_edge. Но провалились они двумя разными способами, и разница здесь важнее общего вердикта. Двое из них не дали выигрышной настройки вообще — даже на том периоде, под который перебор подгонялся. macd_signal — единственный, кто дал настройку, перешагнувшую 1,0 вне выборки (1,14–1,15 на самой широкой цели), а затем набравшую 0,74–0,77 на предыдущем окне. Собственное слово манифеста для этого — режимозависимый.

Прочитайте, что отсюда следует про тестирование. Если бы вы разделили свои данные один раз, подогнали на первой половине и проверили на второй, этот шаблон вручил бы вам проходной результат. Поймала его единственная вещь — проверка на третьем периоде, которого перебор не видел. Это и есть аргумент в пользу проверки вперёд на одном конкретном случае, и он стоит больше любого общего предупреждения о переоптимизации.

Где MACD стоит среди соседей — все измерены при одном и том же наборе условий выше:

ШаблонБлоковПрофит-факторПросадкаСделок
ma_perfect_order_trend101,07-0,36 %305
mtf_osc_filter271,04-0,64 %187
consecutive_bars_momentum71,03-0,36 %377
ao_ama_trend140,97-0,95 %239
adx_trend120,96-0,76 %534
multi_tf_trend150,96-0,51 %247
ma_crossover90,95-0,84 %420
macd_signal80,93-1,05 %698
ma_slope_trend70,92-1,00 %478
mtf_adx_filter140,92-0,84 %343
elder_ray90,90-1,34 %529
pitch_trail_trend90,77-1,61 %467
dynamic_sl_trend90,68-1,62 %708

Разделите эти тринадцать по их же медианному числу сделок — 420, — и половины расходятся чисто. Шесть тех, кто торговал меньше, дали в среднем профит-фактор 1,00 на 283 сделках при просадке -0,61 %. Шесть тех, кто торговал больше, — в среднем 0,86 на 569 сделках при -1,23 %: результаты хуже и глубина вдвое больше. Все три дизайна выше 1,0 сидят в тихой половине. MACD сидит в деятельной.

Это описание тринадцати дизайнов при одной установке, а не закон: логика входа, число узлов и выходы тоже различаются, поэтому частота как причина не установлена. Но это тот паттерн, который перед вами, и поставляемый шаблон MACD стоит на неправильной его стороне.

Типичные ошибки, которых стоит избегать

Верить проходному результату вне выборки. Это та самая ошибка, ради демонстрации которой этот шаблон и существует. Один отложенный период — это одна выборка, и правило на импульсе может выиграть одну выборку просто потому, что в это время рынок трендовал. Проверьте третье окно, которого перебор не видел, прежде чем поверить числу.

Сравнивать линию саму с собой. Если оба блока MACD оставлены на MODE_MAIN, условие Cross сравнивает одинаковые значения и не срабатывает никогда — либо срабатывает на округлении. Проверьте настройку line в обоих блоках, прежде чем удивляться нулевому числу сделок.

Читать пересечение как предсказание. MACD — это две средние от средней. Пересечение сообщает, что движение идёт уже несколько баров. Выбор дизайна состоит в том, сколько опоздания вы принимаете, а не в том, принимать ли его вообще.

Подгонять стоп и цель, пока кривая капитала не станет красивой. Записанный перебор уже проделал это систематически — 12 комбинаций и три окна — и вернул no_robust_edge. Если ваша ручная подкрутка обыгрывает систематический поиск, подозревайте подкрутку.

Складывать импульсные фильтры друг на друга. Композиция выше — это измеренная версия такого порыва: просадка в 3,76 раза глубже ради чуть худшего профит-фактора.

Запускать его рядом с другим советником, не разделив их. Каждому советнику на одном счёте нужен свой магический номер, иначе выходы одного закроют позиции другого.

Дальнейшие шаги и вариации

Когда MACD использовать не стоит. В боковике две средние пересекаются раз за разом, и каждое пересечение — шум, а часто срабатывающее значение по умолчанию — ровно то, что боковик наказывает. Если вы не можете сформулировать условие, которое выключает правило на плоских участках, либо добавьте такое условие, либо возьмите идею, не зависящую от расхождения двух средних.

Вариации, которые стоит попробовать, в порядке доказательности. Сначала попробуйте версию с пересечением нуля: она на один блок проще и срабатывает намного реже, а тихая половина соседства — это как раз то место, где сидит каждый результат выше 1,0. Затем попробуйте то же правило на старшем timeframe внутри блока MACD, что замедляет сигнал, не трогая график. И только после этого двигайте периоды — по одному за раз.

А затем протестируйте как следует. Панель Measure барная и приблизительная; это фильтр, а не вердикт. Статья как запустить бэктест в MT5 проходит настоящий прогон от начала до конца, включая то, какому из двух чисел просадки в отчёте верить. Статья как собрать советника на RSI — родственный рецепт с противоположным режимом отказа: его перебор не выиграл ничего и нигде, отчего его легче отвергнуть и он менее поучителен, чем этот. Статья как создать советника для MT5 без программирования охватывает более широкий словарь блоков, а руководства по бэктестингу глубже разбирают шаг с проверкой вперёд, за который эта страница и агитирует.

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

Часто задаваемые вопросы

Чем пересечение сигнальной линии MACD отличается от пересечения нуля?
Это разные вопросы и, внутри Builder, разные схемы соединений. Пересечение сигнальной линии спрашивает, пересекла ли линия MACD собственную 9-периодную среднюю, поэтому ему нужны два блока MACD — один с MODE_MAIN, другой с MODE_SIGNAL, — заведённые в условие «Пересечение» (Cross). Пересечение нуля спрашивает лишь о том, сменил ли импульс знак вообще, поэтому ему хватает одного блока MACD на MODE_MAIN и сравнения с 0. Версия с сигнальной линией срабатывает намного чаще и раньше; версия с нулём — редко и поздно. Поставляемый шаблон использует форму с сигнальной линией, и это второй по деятельности дизайн во всём своём соседстве.
Какие настройки MACD лучше всего подходят советнику?
Ничто на этой странице вам этого не скажет, и об этом стоит сказать прямо. Блок MACD в Builder по умолчанию берёт 12/26/9 по цене закрытия, а записанный перебор по этому шаблону двигал только стоп и цель — SL30-80 на TP60-250, 12 комбинаций по трём окнам. Он ни разу не менял ни fast_ema, ни slow_ema, ни signal_period. Любая статья, называющая вам лучший набор периодов, называет своё убеждение, а не измерение. Зато перебор установил вот что: ни одна комбинация стопа и цели не сделала этот дизайн устойчивым.
Прибыльна ли стратегия на пересечении MACD?
В том виде, в каком она поставляется, — нет. По измерениям на USDJPY M5 за год шаблон macd_signal закрывается с профит-фактором 0,93 на 698 сделках — второй по деятельности дизайн из тринадцати трендовых и импульсных шаблонов, измеренных при одинаковых условиях, и восьмой из тринадцати по результату. Полезнее другое: его записанный перебор действительно нашёл настройку, дотянувшую до 1,14–1,15 вне выборки, которая затем упала до 0,74–0,77 на более раннем окне. Вот честный ответ: результаты, выглядящие прибыльно, существуют, и они не удержались при смене режима.
Стоит ли добавить в советника на MACD дополнительные индикаторы-фильтры?
Прежде чем считать, что это помогает, проверьте, что сочетание сделало на самом деле. В галерее есть одна композиция, включающая ровно этот шаблон, — macd_signal плюс правило по уровню CCI плюс Elder Ray, — и при одинаковых условиях она закрылась с профит-фактором 0,91 против 0,93 у одного MACD, с просадкой в 3,76 раза глубже на 2 016 сделках. Все три части — это показания импульса по одной и той же цене, поэтому они склонны соглашаться и срабатывать вместе, а не диверсифицировать. Фильтр помогает тогда, когда он иногда спорит с вашим входом; три версии одной и той же идеи не спорят.

Связанные термины

Ссылки на глоссарий