1. Что это
Signal Matrix Lab — рабочее место для сборки и проверки торговых систем прямо на графике. Шестнадцать стандартных индикаторов расставлены по строкам, девять таймфреймов по колонкам; на пересечении стоит ячейка, которая показывает, что этот индикатор говорит на этом периоде прямо сейчас. Из ячеек набирается комбинация, комбинация голосует, голосование превращается в сигнал, сигнал прогоняется по истории и получает статистику. Всё это происходит на одном чарте и без единого запуска тестера стратегий.
Торговых приказов индикатор не отправляет. Он отвечает на вопрос «что бы эта система сделала» и отдаёт готовый ответ советнику: строкой-ключом или через буферы iCustom.
- MetaTrader5 Version of the indicator is Here
Рис. 1. Панель на вкладке MATRIX.

2. Установка
Индикатор распространяется через MQL5 Market и ставится из терминала, без копирования файлов.
- Продукт находится на вкладке «Маркет» окна «Инструменты» терминала либо в карточке товара на
mql5.com. Для покупки, аренды и загрузки демо нужен вход в учётную запись MQL5.community: «Сервис → Настройки → Сообщество». - После оплаты терминал сам скачивает и устанавливает продукт. Он появляется в «Навигаторе» в
разделе «Индикаторы → Market». - Индикатор перетаскивается из «Навигатора» на график.
Обновления приходят туда же, в список купленных продуктов вкладки «Маркет». Число активаций указано в карточке товара. Бесплатная демо-версия из Маркета, как у любого продукта Маркета, запускается только в тестере стратегий; о поведении панели в тестере сказано в разделе «Ограничения».
Панель появляется в углу графика и перетаскивается за заголовок. Кнопка − в заголовке сворачивает её в полоску, на которой остаётся живой процент консенсуса. Позиция панели, собранная комбинация, параметры индикаторов, фильтры и критерии оптимизатора сохраняются по символу и переживают смену таймфрейма, перезапуск терминала и переинициализацию.
Таймфрейм графика — это сетка, на которой считаются сделки и статистика. Ячейки живут на своих периодах, но вход, выход и учёт результата всегда происходят по барам графика.
3. Быстрый старт
Пяти минут хватает, чтобы получить первую проверенную систему.
Клик по нескольким ячейкам матрицы собирает комбинацию: обычно достаточно трёх-пяти. Разумный первый набор состоит из одного медленного индикатора на старшем периоде для направления и одного-двух быстрых на рабочем для входа. Внизу панели появляются чипы выбранных слотов, а под матрицей появляется строка с чистым результатом, долей выигрышных сделок, числом сигналов и профит-фактором. Вкладка STATS показывает ту же систему подробно. Если картина не устраивает, вкладка OPTIMIZER подбирает состав сама. Готовая система копируется из поля KEY одной строкой и сохраняется под именем кнопкой SAVE.
4. Устройство панели
Рис. 2. Вкладка MATRIX с разбором по зонам.
Заголовок несёт символ и таймфрейм графика, за него панель перетаскивается, кнопка справа сворачивает её. Три клавиши под заголовком переключают режимы работы: MATRIX собирает комбинацию, STATS оценивает её, OPTIMIZER ищет лучшую.
Прибор консенсуса показывает крупным числом, какая доля слотов голосует в одну сторону, а биполярная шкала под ним несёт риски порога: точки, за которыми направление считается сигналом. Справа две лампы, BUY и SELL: горит та, чей уровень набран.
Матрица разложена на три суб-вкладки. TREND держит восемь трендовых индикаторов (MA, MACD, ADX, Ichimoku, Bollinger, SAR, OsMA, AO), OSC восемь осцилляторов (RSI, Stochastic, CCI, Williams %R, Momentum, RVI, DeMarker, MFI), FILTERS гейты входа. Цифра на суб-вкладке считает слоты комбинации внутри неё, на FILTERS считает включённые фильтры.
Под матрицей идёт результат текущей комбинации, ещё ниже идёт полоса с чипами слотов, именем пресета и ключом.
5. Ячейка и комбинация
Рис. 3. Состояния ячейки, плашка строки и тумблер FOCUS.
Ячейка живёт на своём таймфрейме и читается с последнего закрытого бара этого таймфрейма. Приглушённая заливка со стрелкой означает направление: у скользящих это взаимное расположение быстрой и медленной, у осцилляторов это сторона от средней линии, у Ichimoku положение цены относительно облака. Яркая заливка с буквой B или S означает, что сработало правило входа (пересечение, выход из зоны, разворот SAR) и оно ещё живо. Точка означает нейтраль, а пустая ячейка говорит, что брокер не отдал историю этого периода на всю глубину окна.
Сигнал ячейки держится столько баров её таймфрейма, сколько задано параметром Signal lifetime (по умолчанию три). Пока он жив, ячейка голосует как сигнал, а не как тренд.
Клик по ячейке берёт её в комбинацию: по углам появляются белые скобки, а внизу панели новый чип. Повторный клик отпускает слот. Клик по плашке строки открывает параметры индикатора.
Тумблер FOCUS в углу матрицы гасит всё, что не входит в комбинацию, и перестаёт это считать. На слабой машине или при большом наборе видимых ячеек это заметно разгружает терминал.
6. Параметры индикаторов
Рис. 4. Поповер настроек MACD, открытый кликом по плашке строки.
Параметры принадлежат индикатору, а не ячейке: изменение применяется ко всей строке сразу, на всех таймфреймах. APPLY пересчитывает строку и всё, что от неё зависит, RESET возвращает значения из свойств индикатора. Набор сохраняется вместе с символом.
Awesome Oscillator составляет исключение: настраивать в нём нечего, и его плашка поповер не открывает.
7. Голосование и сигнал
Каждый слот отдаёт один голос: +1 вверх, −1 вниз, 0 при нейтрали. Уровень BUY возникает, когда доля голосов «вверх» достигает порога Consensus threshold P (по умолчанию 75 %), уровень SELL возникает зеркально. Крупный процент на приборе и лампы показывают именно это состояние, живьём.
Сигнал — не уровень, а его фронт. Он возникает в тот момент, когда уровень появился там, где его на предыдущем баре не было, и фиксируется на закрытии бара графика. Ровно этот фронт даёт стрелку на графике, оповещение и сделку в статистике: три вещи, которые в лаборатории никогда не расходятся между собой.
Отсюда одна особенность, которую стоит знать заранее. Процент на приборе и подсветка ячеек показывают живое состояние: каждый слот читается на своём последнем закрытом баре. Фронт же проверяется на закрытии бара графика. Пока текущий бар не закрылся, слот на младшем периоде уже успевает поменять цвет, а сделки ещё нет. Это не рассинхронизация, а разная точка отсчёта.
8. Модель сделки
Сделка открывается по цене открытия следующего бара после сигнального, то есть так же, как это сделает советник, читающий последний закрытый бар.
Стоп задаётся либо как k × ATR текущего таймфрейма, либо фиксированным числом пунктов. Тейк задаётся либо как отношение к риску, либо тоже фиксированным. Дополнительно включаются три ранних выхода: по противоположному сигналу, по затуханию консенсуса ниже заданного процента и по числу баров в рынке. Стоимость спреда учитывается настройкой Spread cost и вычитается из результата каждой сделки.
Если стоп и тейк задеты одним и тем же баром, порядок разрешается по минутной истории; когда её нет, засчитывается стоп. Результат от этого не украшается.
9. Фильтры входа
Рис. 5. Суб-вкладка FILTERS.
Пять переключателей действуют одинаково на бэктест, на живые сигналы и на оповещения, и записываются в ключ после F:, и советник получает их вместе со стратегией.
MA distance отклоняет вход, когда цена стоит слишком близко к скользящей средней; дистанция задаётся в долях ATR или в пунктах. Volatility держит коридор ATR в пунктах: ниже нижней границы рынок спит, выше верхней стоп модели теряет масштаб; ноль с любой стороны выключает эту сторону. Time window ограничивает торговые часы по серверному времени.
Overlap решает судьбу сигналов поверх открытой сделки. Выключенный, он оставляет одну виртуальную позицию: сигнал, пришедший в рынок, просто не существует: ни стрелки, ни оповещения, ни сделки в статистике. Включённый, он разрешает каждому сигналу свою сделку.
Reverse exit закрывает сделку по противоположному консенсусу: STRONG ждёт полного противоположного уровня, WEAK срабатывает на границе нейтральной полосы.
10. Статистика
Рис. 6. Вкладка STATS.
Прогон идёт по окну в Backtest window баров текущего таймфрейма. Чистый результат считается в пунктах со спредом: денег модель не знает, потому что не знает объёма.
Шесть строк под ним: число сделок с разбивкой на покупки и продажи, доля выигрышных, профит-фактор, средняя прибыль против среднего убытка, ожидание на сделку и максимальная просадка. Внизу разбивка по причинам выхода. Система, которая живёт на стопах и таймаутах, построена на неверном стопе, и разбивка показывает это раньше, чем эквити.
Пересчёт происходит при любом изменении комбинации, профиля выхода или фильтра и ещё раз на каждом новом баре.
11. Оптимизатор
Рис. 7. Вкладка OPTIMIZER с раскрытым пулом.
Критерии правятся прямо на вкладке. TARGET выбирает метрику, которую максимизируем: чистый результат, профит-фактор, доля выигрышных или ожидание. MIN TRD задаёт жёсткий минимум сделок, и комбинации с меньшим числом отбрасываются целиком: это главная защита от системы, подогнанной под десяток удачных входов. SLOTS ограничивает размер комбинации. Порог голосования перебирается сам, от 50 до 90.
POOL задаёт то, среди чего идёт поиск. Свёрнутый, он показывает состав одной строкой; раскрытый, даёт чипы индикаторов, таймфреймов и фильтров. Сужать пул до того, во что трейдер действительно верит, и быстрее, и честнее: перебор по всем 144 ячейкам всегда что-нибудь найдёт.
Поиск идёт в два приёма. Сначала каждая ячейка пула оценивается в одиночку, потом начинаются поколения: элита, турнир, скрещивание, мутации. Лидерборд из десяти строк обновляется живьём и работает до нажатия STOP. Клик выбирает строку, APPLY переносит её на график: матрица, статистика, отметки и ключ обновляются разом. Применённая строка подсвечена.
12. Refine — подбор параметров
Рис. 8. Тот же экран в режиме Refine.
Первый этап ищет состав, второй числа внутри него: периоды, уровни, отклонения тех слотов, которые уже применены, в том числе набранных вручную. Метод простой, покоординатный спуск по сеткам в несколько проходов; случайности в нём нет, и одно и то же окно даёт один и тот же ответ.
Колонок здесь две. Параметры подбираются на старшей части окна и проверяются на свежей, и обе оценки стоят рядом. Когда проверка сильно отстаёт от подбора, колонка загорается красным: это признак набора, настроенного на прошлое, а не на рынок. Строка BASE держит текущие параметры, чтобы каждому кандидату было с чем сравниться.
APPLY отдаёт значения слотам: они начинают голосовать по своим параметрам, матрица продолжает показывать глобальные, а уточнённые слоты получают звёздочку в чипе и внутри ключа.
13. График
Рис. 9. Отметки сделок и сигнальные свечи.
Свечи перекрашиваются по силе консенсуса: пять ступеней от полной продажи до полной покупки, нейтраль посередине. Набор консенсуса виден боковым зрением, без чтения цифр. Раскрашено ровно окно бэктеста: бары старше него остаются в родных цветах графика.
Каждая сделка модели оставляет стрелку входа под минимумом бара для покупки и над максимумом для продажи. Выход отмечен пунктиром на цене закрытия сделки, галкой или крестом на нём и подписью с причиной и результатом в пунктах: TP, SL, REV, FADE, TIME. Открытая сделка показана пунктирными лучами тейка и стопа и живым результатом у последнего бара.
Число отметок на экране ограничивается настройкой Show last N trades, перекраска свечей отключается отдельно.
14. Ключи и пресеты
Ключ — это вся стратегия одной строкой:
SML1@M15|S:MACD:H4,STO:M5,MA:H1,ADX:H1,RSI:M15|P:75|L:3|E:A2.0R2.0|F:h7-21
После S: идёт состав слотов, после P: порог голосования, после L: время жизни сигнала, после E: профиль выхода (A2.0 это стоп в два ATR, R2.0 тейк вдвое от риска), после F: фильтры. Слот с собственными параметрами несёт их в скобках: MACD(9,21,7):H4.
Поле KEY на панели — обычное поле ввода. Ключ из него копируется и вставляется куда угодно; вставка чужого ключа применяет стратегию целиком. Разбор идёт по принципу «всё или ничего»: ключ с ошибкой не меняет ни одной настройки.
Кнопка SAVE кладёт ключ в библиотеку под именем из поля PRESET, LOAD открывает список сохранённых: клик загружает, X удаляет. Библиотека лежит в общей песочнице терминала, поэтому пресет, созданный на одном графике, виден со всех остальных и из советника.
15. Оповещения
Оповещение уходит на сигнал комбинации, один раз на бар, и проходит те же фильтры, что и сделка: если вход отклонён по времени или волатильности, звука не будет. Каналы включаются по отдельности: всплывающее окно, звук с выбором файла и push на телефон.
16. Режим Strategy и режим данных
Рис. 10. Боевой модуль и свёрнутая полоска.
Параметр Mode переключает три состояния одного и того же индикатора.
Matrix Lab — полная лаборатория, всё описанное выше.
Strategy module — компактный модуль одной стратегии: консенсус, план входа или открытая позиция, шесть цифр истории и полоса с составом и ключом, доступная только для чтения. Матрицы, оптимизатора и лишних расчётов здесь нет. Стратегия берётся из параметра Strategy key; если он пуст, берётся пресет по имени; если пусто и там, последняя комбинация, сохранённая для этого символа.
EA data feed — то же самое без единого объекта на графике: работают только буферы. Этот режим и предназначен для боевого советника.
Блок POSITION показывает либо FLAT, либо FLAT · ARMED BUY, когда сигнал уже есть и вход состоится на открытии, либо направление и число баров в рынке для живой сделки. Цены входа, стопа и цели те же, что получит советник.
Ячейка SIGNALS в блоке HISTORY загорается янтарным, пока сделок меньше, чем Minimum trades. Это панель говорит, что статистике верить рано.
17. Мост к советнику
Буферы работают во всех трёх режимах; для робота рекомендуется третий. Первый параметр iCustom задаёт режим, второй ключ стратегии, третий имя пресета (используется, когда ключ пуст).
| Буфер | Содержимое |
|---|---|
| 5 | Сигнал входа: +1 покупка, −1 продажа на своём сигнальном баре. Фильтры уже применены |
| 6 | Подписанный процент консенсуса; на формирующемся баре живой |
| 7–16 | Статистика окна: сделки, доля выигрышных, чистый результат, профит-фактор, ожидание, просадка, средняя прибыль, средний убыток, покупки, продажи |
| 17 | Уровень консенсуса против порога: +1, 0, −1 |
| 18, 19 | Дистанции стопа и цели в цене на сигнальном баре |
int h = iCustom(_Symbol, _Period, "SignalMatrixLab",
3, //Mode: EA data feed
"SML1@M15|S:MACD:H4,STO:M5,MA:H1,ADX:H1,RSI:M15|P:75|L:3|E:A2.0R2.0",
""); // или имя пресета вместо ключа
double sig[1], sl[1], tp[1];
CopyBuffer(h, 5, 1, 1, sig); // сигнал последнего закрытого бара
CopyBuffer(h, 18, 1, 1, sl);
CopyBuffer(h, 19, 1, 1, tp);
if(sig[0] != 0)
{
const double entry = SymbolInfoDouble(_Symbol, sig[0] > 0 ? SYMBOL_ASK : SYMBOL_BID);
const double slPrice = entry - sig[0] * sl[0]; // дистанции уже в цене
const double tpPrice = entry + sig[0] * tp[0];
// ... отправка приказа
}
Стоп и цель отдаются дистанциями, а не ценами, потому что модель входит по открытию следующего бара: советник откладывает их от своей фактической цены входа и получает паритет с бэктестом.
18. Настройки
| Группа | Что настраивает |
| Mode | Режим работы, ключ стратегии, имя пресета |
| General | Цветовая схема (Dark Blue, Dark Green, Light), размер панели, шрифт и его размер, шрифт цифр, положение панели по X и Y |
| Matrix | Режим Focus, видимость каждой строки и каждой колонки |
| Voting | Порог консенсуса в процентах |
| Signals | Время жизни сигнала ячейки в барах её таймфрейма |
| Блоки индикаторов | Периоды, уровни и отклонения всех шестнадцати: MA, MACD, RSI, Stochastic, CCI, ADX, Ichimoku, Bollinger, SAR, Williams %R, Momentum, OsMA, RVI, DeMarker, MFI. Те же значения правятся из панели |
| Trade Profile | Режим стопа с коэффициентом ATR или фиксированными пунктами, период ATR, режим тейка с отношением к риску или фиксированными пунктами, три ранних выхода, стоимость спреда |
| Filters | Стартовое состояние пяти фильтров и их значения |
| Trade Marks | Показ сделок на графике, число последних отметок |
| Signal Candles | Перекраска свечей по силе консенсуса |
| Stats | Глубина окна бэктеста в барах |
| Optimizer | Целевая метрика, минимум сделок, границы размера комбинации, размер популяции |
| Refine | Проверка на свежих данных, её доля от окна, число проходов |
| Alerts | Включение оповещений и каналы: окно, звук с именем файла, push |
Значения из свойств стартовые. То, что правится в панели, живёт в файле состояния символа и имеет приоритет, пока сами свойства не изменены; изменение свойств сбрасывает соответствующие значения к новым.
19. Файлы
Библиотека пресетов лежит в Common\Files\SignalMatrixLab\Presets.csv, одна на все терминалы и графики. Состояние символа хранится в MQL5\Files\SignalMatrixLab\<символ>.txt: комбинация, порог, профиль выхода, фильтры, параметры индикаторов, положение панели, активная вкладка и свёрнутость.
Удаление файла состояния возвращает символ к значениям из свойств. Удаление файла пресетов очищает библиотеку.
20. Если что-то выглядит не так
Часть ячеек пустая. Брокер не отдал историю этого таймфрейма на всю глубину окна. Это не ошибка: ячейка без данных не голосует ни в какую сторону. Помогает уменьшение окна бэктеста или отключение самых старших колонок.
SIGNALS горит янтарным. Сделок меньше, чем Minimum trades. Статистика посчитана, но говорить о ней рано: помогает более длинное окно, более мягкие фильтры или комбинация попроще.
Оптимизатор нашёл слишком красивую систему. Стоит открыть Refine и посмотреть на колонку проверки: высокий подбор при просевшей проверке означает подгонку. Второй признак, маленькое число сделок при высоком профит-факторе.
Сигнал на графике есть, а сделки в статистике нет. Скорее всего, вход отклонён фильтром либо выключен Overlap и в этот момент уже открыта виртуальная сделка.
Панель мелкая или крупная. Размер Auto подбирается по экрану; XS, S, M и L задаются вручную.
21. Ограничения
Индикатор не торгует и не отправляет приказов. Статистика считается по модели: вход по открытию следующего бара, стоп и тейк по бару, спред учитывается настройкой, проскальзывание и комиссия не учитываются. Результаты выражены в пунктах, а не в деньгах.
Глубина расчёта ограничена историей, которую отдаёт брокер, и окном бэктеста. Оптимизатор и Refine работают, пока открыт график, и их состояние не сохраняется между запусками. Сохраняется результат, применённый к чарту, и пресеты.
Интерфейс англоязычный. В тестере стратегий индикатор загружается и считает, но панель там управляется мышью, которой в тестере нет.











