Создание и тестирование совета из 15 моделей в MetaTrader 5
Предыдущая статья заканчивалась честным признанием: система из четырёх аналитиков — это хорошее начало, но не конец разговора. Виктор, Мария, Алексей и арбитр сделали главное — они доказали, что несколько голосов лучше одного. Но четыре голоса — это всё ещё маленькая комната. В реальных хедж-фондах таких комнат много, и говорят в них очень разные люди.
Представьте инвестиционный комитет крупного фонда в момент принятия решения. За столом сидит не просто бык и медведь. Там есть квант с тремя PhD, который видит только стандартные отклонения и z-оценки (z-scores). Есть специалист по рыночной микроструктуре, который не доверяет ни одному движению без подтверждения объёмом. Есть волатильный трейдер, которому вообще всё равно, куда пойдёт цена — он торгует режим. Есть японский аналитик свечей, для которого тело и тень последней свечи говорят больше, чем все индикаторы вместе взятые. И за отдельным столом — четыре риск-менеджера с разными осями страха: один смотрит на ATR, второй считает, не слишком ли далеко цена ушла от точки входа, третий оценивает качество рыночного режима, четвёртый ищет признаки «чёрного лебедя».
Всем этим людям не нужен один мудрый арбитр — им нужен Председатель, который прочитал все доклады, понял все противоречия и принял единственное решение.
Именно это описывает данная статья.
Почему четырёх было недостаточно
Архитектура первых дебатов — Виктор/Мария/Алексей/Арбитр — страдала от структурной асимметрии, которую легко не заметить. Три аналитика работали в разных измерениях: бык смотрел на тренд, медведь искал слабые места, риск-менеджер оценивал волатильность. Но огромные пласты рыночной информации оставались вне поля зрения.
Кто смотрел на объём? Никто. А объём — это единственная «правда» в техническом анализе: деньги либо пришли на движение, либо нет. Кто анализировал статистическую значимость отклонения цены от среднего? Тоже никто — была Мария с медвежьим взглядом, но не квант с z-оценкой. Кто систематически считал сигналы по всем индикаторам, не рассуждая, а просто суммируя — плюс один, минус один? Такого голоса не было вовсе.
Когда мы работаем с четырьмя «линзами», мы охватываем четыре угла зрения. Когда линз десять — плюс четыре специализированных риск-менеджера, плюс Председатель с жёсткой процедурой принятия решений — мы перестаём гадать и начинаем голосовать. Это принципиально разные эпистемологические режимы.
Совет пятнадцати: архитектура трёх фаз
Новая система называется Council of 15. Её работа разбита на три последовательные фазы, каждая из которых строго зависит от результатов предыдущей.
Фаза I — десять аналитиков работают параллельно. Одни данные, одно мгновение времени, десять разных профессиональных философий. Каждый выносит вердикт в своей предметной области: BUY, SELL или NO SIGNAL — и объясняет его конкретными числами из брифинга.
Фаза II — четыре риск-менеджера, каждый со своей осью оценки, видят и рыночные данные, и сводку мнений аналитиков. Их задача — не сказать, куда пойдёт рынок, а сказать, можно ли торговать прямо сейчас. Каждый отвечает одним из трёх вердиктов: APPROVED, CAUTION или BLOCKED.
Фаза III — Председатель читает все четырнадцать докладов и применяет жёсткую процедуру: сначала проверяет риск-гейт (сколько менеджеров поставили BLOCKED?), затем считает голоса аналитиков, затем взвешивает качество аргументов — и выдаёт один JSON-объект с финальным решением.
Десять аналитиков: галерея философий
Подбор участников первой фазы — это не произвол. Каждый представляет отдельную торговую школу с собственной логикой и собственными слепыми пятнами. Именно несовпадение этих слепых пятен создаёт ценность ансамбля.
Виктор — трендовый трейдер. Смотрит на выравнивание скользящих средних, наклон RSI, согласованность импульса на трёх горизонтах. Его правило простое: если цена выше MA20 и MA50, а моментум положительный — это BUY. Он никогда не будет спорить сам с собой.
Мария — контрарианский медведь. Её взгляд симметричен Виктору, но направлен в противоположную сторону. Перекупленный RSI14 выше 70, цена в зоне верхней полосы Боллинджера, свеча с длинной верхней тенью... Мария видит в этом не продолжение роста, а признаки распределения. Её ценность в том, что она кричит «стоп!» именно тогда, когда остальные кричат «вперёд!».
Елена — специалист по возврату к среднему. Она не реагирует на движение внутри нормального диапазона — только на экстремумы. RSI7 ниже 25 или выше 75, цена у нижней или верхней полосы Боллинджера, стохастик в зоне перепроданности/перекупленности — вот её моменты. Вне экстремумов Елена молчит, и это правильная профессиональная позиция.
Дмитрий — квант. Бывший физик, который не признаёт суждений без математики. Он вычисляет z-оценку отклонения цены от полосы Боллинджера, нормированный импульс (Mom20 / ATR14), соотношение ATR14 к ATR21 как индикатор расширения волатильности. Его сигнал появляется только при статистически значимых отклонениях — z-оценка выше 1.5 или нормированный моментум выше 0.5. Иначе — NO SIGNAL.
Чэнь — эксперт по микроструктуре рынка и объёму. Его фундаментальная убеждённость: объём говорит правду, которую цена пытается скрыть. Ratio объёма последней свечи к среднему за 20 баров выше 1.5 — это институциональная активность. Бычья свеча с большим телом на высоком объёме — это программа покупок. Без подтверждения объёмом Чэнь не даёт сигнала вообще никогда.
Изабелла — трейдер волатильности с бывшего деска Goldman Sachs. Её интересует не направление, а режим. Узкие полосы Боллинджера — это сжатие перед разрывом. Расширяющийся ATR14 относительно ATR21 — переход в волатильный режим. Если StdDev10 выше StdDev20 — краткосрочная волатильность превысила долгосрочную, мы в трендовой фазе. В зависимости от режима один и тот же технический сигнал может быть либо подтверждён, либо отвергнут.
Маркус — аналитик Вайкоффа, читающий следы институциональных денег. Он смотрит на структуру: положение цены относительно MA200 — это долгосрочное смещение. Тени свечей — это абсорбция покупок или отвержение продаж. Пружина Вайкоффа (ложный пробой ниже поддержки с разворотной свечой) или Аптраст (ложный пробой выше сопротивления с отвержением) — это его момент.
Юки — мастер японских свечей. Для неё тело свечи относительно ATR говорит о силе убеждённости рынка. Тело больше 70% от ATR14 — сильное движение, меньше 30% — доджи, нерешительность. Закрытие в верхней трети диапазона свечи — быки победили в этой сессии. У нижней полосы Боллинджера с бычьей свечой и большим телом — это молот. Юки не смотрит на индикаторы — только на форму свечи.
Рафаэль — специалист по дивергенциям импульса. Его паттерн — расхождение между ценой и осцилляторами. RSI7 падает, пока цена растёт — скрытая слабость, ловушка для лонгов. Стохастик K пересекает D снизу вверх — бычий сигнал. Все три RSI (7, 14, 21) выше 50 и согласованы с положительным Mom5 — это подтверждённый импульс, а не шум. Рафаэль даёт самые сильные сигналы, когда все осцилляторы говорят одно.
Софи — систематик. Она не рассуждает, она считает. Десять бинарных проверок, каждая даёт плюс один балл быкам или медведям: цена выше MA20? — Плюс один быкам. RSI14 выше 50? Плюс один. Стохастик K выше D? Плюс один. Итого десять проверок, итого скор. Семь и выше в одну сторону — сигнал. Меньше семи — NO SIGNAL. Никаких исключений, никакого усмотрения.
Каждый из десяти аналитиков получает одинаковый рыночный брифинг, работает с одинаковыми данными — и приходит к своему выводу через собственную призму. Это и есть декоррелированные ошибки: даже если Виктор и Рафаэль ошибутся одновременно, Дмитрий с его z-оценками или Чэнь с его объёмным скептицизмом, возможно, не ошибутся.
Четыре оси риска
Риск-менеджеры в системе — это не просто «осторожные голоса». Каждый из четырёх смотрит на рынок через совершенно отдельную ось оценки, и все четыре оси независимы друг от друга.
Алексей смотрит на волатильность и ATR. Его порог прост: ATR14 в процентах от цены выше 0.3% — HIGH RISK. Ширина полос Боллинджера выше 0.5% — HIGH RISK. Соотношение ATR14 к ATR21 выше 1.2 — волатильность ускоряется, впереди шторм. Алексей ставит BLOCKED.
Елена (риск-менеджер, не путать с аналитиком) охраняет позицию от плохих входов. Тело свечи больше 80% от ATR14 — значит, мы гонимся за ценой, вход запоздалый — BLOCKED. Стохастик K выше 85 при попытке открыть лонг — опасная зона — BLOCKED. RSI14 выше 75 при входе в длинную позицию — тоже BLOCKED. Её задача — защитить не от рынка, а от плохого тайминга.
Джеймс оценивает качество рыночного режима. Если MA5 > MA10 > MA20 > MA50 > MA200 — это идеально выровненный тренд, APPROVED. Если три из пяти скользящих перепутались — CAUTION. Если RSI7, RSI14 и RSI21 смотрят в разные стороны — рынок в хаосе, это BLOCKED. Без качественного режима торговать нельзя, даже если все аналитики кричат BUY.
Наталья — охотница за хвостами. Она ищет признаки того, что рынок вот-вот сделает что-то неожиданное. RSI7 ниже 15 или выше 85 — хвостовая зона. Объёмное соотношение выше 2.0 — институциональный ордер, возможна мгновенная вспышка. Цена у верхней полосы Боллинджера с медвежьей свечой — ловушка для быков. Mom5 и Mom20 с противоположными знаками — краткосрочный и долгосрочный импульс воюют между собой. Наташа ставит BLOCKED не тогда, когда рынок плохой, а тогда, когда он непредсказуемый.
Четыре BLOCKED от разных менеджеров — это не паранойя. Это четыре независимых измерения, каждое из которых говорит об одном: сейчас не время.
Председатель и процедура голосования
Председатель — единственный участник системы, который видит всё. Он получает рыночный брифинг, четырнадцать докладов и два сводных талли: голоса аналитиков и вердикты риск-менеджеров. И работает по жёсткому трёхшаговому алгоритму, вшитому прямо в его системный промпт.
Шаг первый — риск-гейт. Три или больше BLOCKED от риск-менеджеров — финальный сигнал всегда hold, без исключений. Два BLOCKED — тоже hold, если только восемь и более аналитиков не выдали единодушный сигнал в одном направлении. Один BLOCKED — требуется семь голосов аналитиков. Ноль BLOCKED — переходим к подсчёту.
Шаг второй — голосование аналитиков. Семь и более голосов в одну сторону — сильный сигнал. Пять-шесть — слабый, требует чистого риск-профиля. Меньше пяти — hold.
Шаг третий — качество аргументов. Председатель не просто считает — он взвешивает. Единственный блестящий аргумент специалиста в его предметной области может перевесить слабый консенсус. Подтверждение объёмом от Чэня и оценка режима от Джеймса несут дополнительный вес. Когда сомнения остаются — hold. «Сохранение капитала — первое правило».
Температура Председателя выставлена на 0.15 — ниже, чем у любого другого участника. Он не должен быть творческим. Он должен быть предсказуемым.
CHAIRMAN_PROMPT = ( "You are THE CHAIRMAN — the supreme decision-maker of the world's most elite hedge fund.\n" "DECISION FRAMEWORK — follow this EXACTLY:\n" "STEP 1 — RISK GATE: Count risk manager verdicts.\n" " • If 3 or more say BLOCKED → output 'hold'. Non-negotiable.\n" " • If 2 say BLOCKED → output 'hold' unless analyst consensus is overwhelming (8+ agree).\n" " • If 1 says BLOCKED → proceed with extreme caution, require 7+ analyst agreement.\n" " • If 0 say BLOCKED → proceed to analyst vote.\n" "STEP 2 — ANALYST VOTE: Count BUY / SELL / NO SIGNAL from all 10 analysts.\n" " • 7+ analysts say BUY → strong BUY signal.\n" " • 5-6 majority → weak signal, proceed only if RISK is fully GREEN.\n" " • <5 agreement → 'hold'.\n" "STEP 3 — FINAL SYNTHESIS: A single brilliant argument from a specialist\n" " in their domain can override weaker consensus. When in doubt: 'hold'.\n" # ... )
Параллельность как инженерное решение
С ростом числа участников возвращается та же проблема, которую мы решали в прошлой статье: последовательные вызовы убивают время ответа. Только теперь масштаб другой — не три аналитика, а десять плюс четыре.
Решение то же, что работало раньше: ThreadPoolExecutor. В первой фазе запускается пул из десяти воркеров — все аналитики стартуют одновременно. На практике десять параллельных запросов к API укладываются в то же окно, что занял бы один: 4–6 секунд. Вторая фаза добавляет ещё 3–4 секунды — четыре риск-менеджера тоже работают параллельно, но им нужно дождаться сводки от первой фазы. Председатель — последние 3–4 секунды.
Итого: полный цикл совета из пятнадцати моделей занимает 10–15 секунд. Это больше, чем четыре аналитика из предыдущей версии, но всё ещё в пределах разумного для позиционной торговли на H1. Для скальпинга такое решение неприменимо — и это честно.
Риск-менеджеры получают не только рыночный брифинг, но и краткую сводку мнений аналитиков — направление голосования и первые 120 символов каждого мнения. Это намеренная конструкция: риск-менеджер должен знать, в каком направлении склоняется консенсус, чтобы оценить риск именно предполагаемой сделки, а не абстрактный риск рынка вообще.
Что видит советник в журнале
[12:41:03] [COUNCIL] ══ EURUSD — Phase I: 10 Analysts (parallel) ══ [12:41:03] ↳ Analyst [VICTOR] thinking... [12:41:03] ↳ Analyst [MARIA] thinking... ... [12:41:08] ✓ [SOPHIE]: BUL=7 BEA=3 → BUY signal confirmed by score. [12:41:09] ✓ [CHEN]: Vol Ratio=1.71x BULL candle — institutional buying... [12:41:09] [COUNCIL] Phase I done → BUY:6 SELL:2 NO_SIGNAL:2 [12:41:09] [COUNCIL] ══ Phase II: 4 Risk Managers (parallel) ══ [12:41:12] ✓ [ALEXEI]: APPROVED (LOW RISK) ATR%=0.08%, BB Width=0.31%... [12:41:13] ✓ [JAMES]: APPROVED (TRENDING) 4/5 MAs aligned upward... [12:41:13] ✓ [HELENA]: CAUTION (MEDIUM RISK) Body/ATR=0.61... [12:41:13] ✓ [NATASHA]: APPROVED (TAIL RISK LOW) No tail signals... [12:41:13] [COUNCIL] Phase II done → APPROVED:3 CAUTION:1 BLOCKED:0 [12:41:13] [COUNCIL] ══ Phase III: The Chairman ══ [12:41:16] ✓ [CHAIRMAN]: {"signal":"buy","comment":"6/10 analysts BUY..."} [12:41:16] [COUNCIL] ══ FINAL VERDICT: BUY ══
Шесть аналитиков из десяти проголосовали за покупку. Два за продажу. Двое воздержались. Все четыре риск-менеджера либо одобрили, либо выразили осторожность — ни одного BLOCKED. Председатель применил процедуру и вынес вердикт. Трейдер видит не просто сигнал — он видит все противоречия, которые этому сигналу предшествовали, и все защитные фильтры, которые он прошёл.
Особенно ценно то, что NO SIGNAL теперь тоже несёт информацию. Если Чэнь сказал NO SIGNAL — значит, объём не подтверждал движение. Если Дмитрий сказал NO SIGNAL — значит, z-оценка отклонения была ниже порога значимости. Это не «нет данных», это «данные есть, но они недостаточно убедительны в моей области».
Обратная совместимость
Переход с V17 или с четырёханалитической версии — это буквально замена одного файла и одного слова в коде советника:
// Режим V17 (один аналитик): string cmd = "PRICES:EURUSD:" + csv; // Режим четырёх дебатов (предыдущая статья): string cmd = "DEBATE:EURUSD:" + csv; // Режим совета пятнадцати (эта статья): string cmd = "COUNCIL:EURUSD:" + csv;
Сервер понимает все три префикса. Советник, который умеет читать только поля signal и comment, продолжит работать без изменений — расширенный блок council со всеми пятнадцатью голосами он просто проигнорирует.
Зависимости не изменились: Python 3.8+, requests, numpy. Всё остальное — стандартная библиотека.
Результаты бэктеста системы
До этого момента архитектура Council of 15 выглядела убедительно на уровне идей: десять аналитиков, четыре независимых риск-менеджера, один Председатель с жёсткой процедурой голосования. Но в трейдинге архитектура сама по себе ничего не стоит, если её нельзя прогнать через беспощадную машину фактов — Strategy Tester. Именно там заканчиваются красивые схемы и начинается единственный разговор, который имеет значение: сколько система заработала, какой ценой и как именно она это делала.

Бэктест проводился на EURUSD, таймфрейм M15.

Результаты бэктеста оказались умеренно сильными и, что важнее, достаточно чистыми по риску. На EURUSD, на таймфрейме M15, за период с 1 февраля по 2 марта 2026 года система совершила 43 сделки и заработала 2 942,67 доллара при стартовом депозите 100 000 долларов. Profit Factor составил 1,47, доля прибыльных сделок — 60,47%, а максимальная относительная просадка по equity осталась на уровне всего 2,73%. Для модели, которая принимает решения через многоступенчатый совет аналитиков и риск-менеджеров, это означает главное: система не просто умеет угадывать направление чаще случайности, но делает это без разрушительной цены в виде глубоких провалов капитала.
Особенно показательно сочетание умеренной прибыли с высокой устойчивостью кривой капитала. Sharpe Ratio 3,05, Recovery Factor 1,07 и сравнительно короткие серии убытков говорят о том, что Council of 15 работает не как агрессивный «угадайщик», а как дисциплинированный фильтр, который отсекает значительную часть плохих входов. При этом тест не выглядит фантастическим или «перегретым»: средняя прибыль на сделку — 68,43 доллара, крупнейший убыток почти сопоставим с крупнейшей прибылью, а значит, перед нами не магическая система, а реалистичная торговая архитектура, которая действительно показывает положительное математическое ожидание при контролируемом риске.
Честный разговор о недостатках
Система из пятнадцати голосов производит впечатление. Это впечатление нужно намеренно охлаждать.
Все пятнадцать участников — это один и тот же grok-4-fast с разными системными промптами. Их независимость — это независимость точек зрения, а не независимость весов нейронной сети. Если базовая модель систематически ошибается в каком-то специфическом рыночном паттерне — все пятнадцать «аналитиков» будут ошибаться там одинаково. Консенсус пятнадцати копий одной модели не то же самое, что консенсус пятнадцати независимо обученных моделей.
Второе ограничение — производительность. 10–15 секунд на одно решение — это разумно для позиционной торговли, но каждый символ требует до четырнадцати параллельных API-вызовов в первых двух фазах. При работе с восемью парами одновременно это до 112 параллельных запросов за один цикл анализа. Нужно понимать, какой тарифный план API это выдержит.
Третье: система обучается на каждом решении ровно ничему. Она не знает, что было после предыдущего сигнала. Она не помнит, что шесть недель назад при похожей конфигурации три блокировки от риск-менеджеров оказались правы. Решения принимаются каждый раз в вакууме.
Именно последнее и является главным аргументом в пользу следующего шага, который напрашивается сам собой: дать системе память. Записывать каждый вердикт совета в SQLite вместе с тем, что произошло с ценой после. Через месяц реальной работы у вас появится датасет, на котором видно — при каких конфигурациях голосования Председатель оказывался прав, а при каких ошибался систематически. Это основа для итеративного улучшения промптов на основе данных, а не интуиции. Именно этому будет посвящена следующая статья серии.
Заключение
Мы начали серию с простого тезиса: один системный промпт — это один голос, а один голос в трейдинге всегда несёт в себе confirmation bias. Предыдущая статья показала, как четыре голоса с разными ролями дают качественно другой результат. Эта статья делает следующий шаг: пятнадцать голосов с принципиально разными философиями, разными осями оценки риска и строгой процедурой голосования.
Технически это прямое расширение предыдущей версии. Та же Python-архитектура, тот же WebSocket-протокол, те же пятнадцать индикаторов на чистом NumPy. Новое — две дополнительные фазы, девять новых участников и один Председатель с жёстким регламентом. Переход занимает ровно столько времени, сколько нужно, чтобы заменить один файл и одно слово в строке советника.
Результат — это не просто buy, sell или hold. Это стенограмма профессионального инвестиционного комитета с десятью специалистами, четырьмя риск-менеджерами и одним финальным лицом, принимающим решение. Каждый голос именован, каждый аргумент виден в журнале, каждый вето риск-менеджера объяснён конкретными числами.
Но за этим стоит более глубокий смысл. Архитектура совета пятнадцати — это эмпирический тест превосходства экономической системы разделения труда над работой вразнобой. Вместо одного универсального «работника» или толпы одиночных трейдеров-агентов, мы создаём фабрику с узкими специалистами, каждый из которых отвечает за свой участок, а координатор собирает результаты в единое решение. Именно специализация и последующая координация позволяют системе видеть рынок целиком, а не сквозь одну линзу. То, что выглядит как техническая надстройка над языковыми моделями, на самом деле является прямым применением классического принципа Адама Смита к алгоритмическому трейдингу. И результаты бэктеста подтверждают: скоординированные усилия пятнадцати «работников» приносят результат, недостижимый для одиночки.
Предупреждение: все права на данные материалы принадлежат MetaQuotes Ltd. Полная или частичная перепечатка запрещена.
Данная статья написана пользователем сайта и отражает его личную точку зрения. Компания MetaQuotes Ltd не несет ответственности за достоверность представленной информации, а также за возможные последствия использования описанных решений, стратегий или рекомендаций.
Особенности написания Пользовательских Индикаторов
Торговые инструменты MQL5 (Часть 12): Улучшение интерактивности панели корреляционной матрицы
Архитектура системы машинного обучения в MetaTrader 5 (Часть 3): Метод разметки сканированием тренда
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования