Вы собираете советника на MACD в MT5 без программирования так: ставите узел «Старт» (Start), два блока MACD — один читает основную линию, другой сигнальную, — условие «Пересечение» (Cross) между ними и блок ордера. Сервер генерирует и компилирует MQL5 и отдаёт вам настоящий .ex5. Пятнадцать минут, и ни одной строки синтаксиса.
Дальше идёт та часть, которая решает, стоит ли полученный файл хоть чего-нибудь. У этого рецепта есть измеренная запись, и самое лестное её число — как раз то, которому стоит доверять меньше всего.
Что вы соберёте
Советника на одну позицию по одной паре: покупает, когда линия MACD пересекает свою сигнальную линию снизу вверх, и продаёт, когда пересекает её сверху вниз, с фиксированными стопом и целью, скомпилированного в настоящий .ex5. Восемь блоков.
Два блока из этого счёта существуют по одной-единственной причине: блок индикатора MACD возвращает одну линию за раз.
Прежде чем начать: что показывает MACD и какую линию вы читаете
Вам нужен бесплатный аккаунт с подтверждённым адресом почты (проектировать бесплатно и без входа, а вот компиляция в .ex5 входа требует), около пятнадцати минут и терминал MetaTrader 5.
MACD вычитает медленную скользящую среднюю из быстрой, а затем сглаживает саму эту разницу ещё раз. Поэтому основная линия измеряет, насколько далеко разошлись две средние, а сигнальная — это то же самое измерение, только сглаженное. Всё, что вообще способно сказать правило на MACD, — это утверждение о расстоянии между двумя средними. А значит, перед вами трендовый инструмент в одежде осциллятора, и он наследует запаздывание обеих средних, из которых собран.
Блок MACD в Builder открывает такие настройки:
| Настройка блока | По умолчанию | Чем управляет |
|---|---|---|
fast_ema | 12 | Быстрая средняя. Диапазон 1–999 |
slow_ema | 26 | Медленная. Зазор между ними и есть весь сигнал |
signal_period | 9 | Насколько сильно разница сглаживается, прежде чем вы её сравниваете |
line | MODE_MAIN | Какую линию выдаёт этот блок — MODE_MAIN или MODE_SIGNAL |
applied_price | PRICE_CLOSE | Какая цена идёт в расчёт |
shift | 0 | 0 — формирующийся бар, 1 — последний закрытый |
timeframe | таймфрейм графика | Любой от M1 до MN1, читается независимо от графика |
line — та строка, которая меняет саму форму вашей схемы. Это выбор из двух значений, поэтому один блок даёт вам одну линию. Пересечению сигнальной линии из-за этого нужны два блока MACD; пересечению нуля — один плюс сравнение с константой.
Пошагово: собираем советника на MACD в Builder
- Откройте EA Builder и загрузите шаблон
macd_signalиз галереи — или начните с чистого холста и соедините всё сами. - Поставьте узел «Старт» (Start) из палитры «Утилиты» (Utility). Без него валидация останавливает сборку с кодом
EAB-E202. - Добавьте блок MACD и оставьте
lineв значенииMODE_MAIN. Для первой сборки не трогайте 12/26/9, чтобы ваш результат остался сопоставим с базовой линией ниже. - Добавьте второй блок MACD с теми же периодами и задайте
lineравнымMODE_SIGNAL. Тот же индикатор, те же настройки, другой выход — это тот самый шаг, который пропускают, и именно поэтому их схема сравнивает линию саму с собой. - Заведите оба блока в условие «Пересечение» (Cross). Cross принимает два входа и спрашивает, пересёк ли один другой на этом баре; его
cross_type— этоcrossoverилиcrossunder, поэтому сторона покупки и сторона продажи — два отдельных условия, а не одно перевёрнутое. - Заведите каждое условие в свой блок «Открыть покупку» (Open Buy) / «Открыть продажу» (Open Sell). Индикатор, заведённый напрямую в ордер, отклоняется с кодом
EAB-E205— сырое значение решением не является. - Задайте риск во вкладке «Настройки» (Settings). Общие значения по умолчанию: стоп в 50 пунктов, цель в 100 пунктов и фиксированный лот
0.01; схема без действующего стопа поднимает диагноз уровняCRITICALв preflight раньше, чем что-либо соберётся. - Нажмите «Измерить» (Measure) и прочитайте результат относительно порога, который печатает панель: профит-фактор не ниже 1,2, не менее 60 сделок, просадка не хуже 20 %.
- Нажмите «Скомпилировать .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 и замените Cross на «Сравнение» (Compare), у которого операторы > < >= <= == !=, а offset по умолчанию равен 0. «Основная линия MACD выше нуля» — это утверждение о том, что быстрая средняя вообще находится выше медленной, а такое событие куда более редкое и куда более позднее, чем касание двух линий. В палитре есть также блок OsMA, который выдаёт разницу «основная минус сигнальная» напрямую одним значением, поэтому правилу по гистограмме нужен один блок, а не два.
Вход, выход и параметры MACD
| Настройка | Значение в шаблоне | Что даёт её изменение |
|---|---|---|
fast_ema | 12 | Меньше — реагирует раньше и пересекает намного чаще; число сделок сдвигается раньше, чем винрейт |
slow_ema | 26 | Больше — шире зазор, который должна пройти быстрая линия, поэтому сигналы приходят позже и реже |
signal_period | 9 | Сглаживание линии сравнения. Короче — больше пересечений, и большинство из них шум |
line | MODE_MAIN | Не ручка настройки — она решает, какое правило вы собрали |
shift | 0 | Поставьте 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 |
Результат перебора заслуживает больше одной строки. Восемь шаблонов галереи несут записанный перебор параметров, и все восемь закончили вердиктом no_robust_edge. Но провалились они двумя разными способами, и разница здесь важнее общего вердикта. Двое из них не дали выигрышной настройки вообще — даже на том периоде, под который перебор подгонялся. macd_signal — единственный, кто дал настройку, перешагнувшую 1,0 вне выборки (1,14–1,15 на самой широкой цели), а затем набравшую 0,74–0,77 на предыдущем окне. Собственное слово манифеста для этого — режимозависимый.
Прочитайте, что отсюда следует про тестирование. Если бы вы разделили свои данные один раз, подогнали на первой половине и проверили на второй, этот шаблон вручил бы вам проходной результат. Поймала его единственная вещь — проверка на третьем периоде, которого перебор не видел. Это и есть аргумент в пользу проверки вперёд на одном конкретном случае, и он стоит больше любого общего предупреждения о переоптимизации.
Где MACD стоит среди соседей — все измерены при одном и том же наборе условий выше:
| Шаблон | Блоков | Профит-фактор | Просадка | Сделок |
|---|---|---|---|---|
ma_perfect_order_trend | 10 | 1,07 | -0,36 % | 305 |
mtf_osc_filter | 27 | 1,04 | -0,64 % | 187 |
consecutive_bars_momentum | 7 | 1,03 | -0,36 % | 377 |
ao_ama_trend | 14 | 0,97 | -0,95 % | 239 |
adx_trend | 12 | 0,96 | -0,76 % | 534 |
multi_tf_trend | 15 | 0,96 | -0,51 % | 247 |
ma_crossover | 9 | 0,95 | -0,84 % | 420 |
macd_signal | 8 | 0,93 | -1,05 % | 698 |
ma_slope_trend | 7 | 0,92 | -1,00 % | 478 |
mtf_adx_filter | 14 | 0,92 | -0,84 % | 343 |
elder_ray | 9 | 0,90 | -1,34 % | 529 |
pitch_trail_trend | 9 | 0,77 | -1,61 % | 467 |
dynamic_sl_trend | 9 | 0,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 без программирования охватывает более широкий словарь блоков, а руководства по бэктестингу глубже разбирают шаг с проверкой вперёд, за который эта страница и агитирует.
А чтобы откалибровать, как выглядит задокументированная запись, каждый из опубликованных советников несёт полный список закрытых сделок и манифест прогона. Сравните один из них с таблицей выше, прежде чем доверять любой стратегии, включая ту, которую собрали сами.