SMC Ultimate
- Индикаторы
-
Ahmed Hamed Hamed Eadwan
RUSSIAN TRANSLATION — РУССКИЙ
================================
TITLE:
MQL5 Разработчик и Трейдер | Основатель R protocols
ABOUT:
Здравствуйте, я Ахмед — трейдер и разработчик MQL5 из
Объединенных Арабских Эмиратов, основатель R protocols. - Версия: 1.0
- Активации: 5
SMC Ultimate
Институциональный движок принятия решений Smart Money Concepts (SMC) / ICT для MetaTrader 5. Анализирует структуру рынка, ликвидность, Order Blocks и Fair Value Gaps и преобразует их в оценку, кодированное состояние и подтверждённые сигналы Buy/Sell.
Работает полностью автономно: панель, объекты на графике и оповещения. Также готов к EA через стабильный контракт из 4 буферов и фиксированные 88 входных параметров для надёжной интеграции iCustom.
Стартовая цена первого публичного релиза (версия 1.0). Цена может вырасти после ранних обновлений и отзывов.
Ключевые возможности
- Структура HTF и LTF: свингы, BOS и CHoCH
- Карта ликвидности: equal high/low и детект свипов
- Order Blocks и Fair Value Gaps со состояниями касания и митигации
- Оценка контекста Premium / Discount
- Взвешенный мультифакторный score с гистерезисом
- Anti-Repaint: подтверждённые сигналы на закрытом баре (shift 1)
- Панель на графике: тренд, зона, score, сигнал и буферы
- Алерты: popup, звук и push, с cooldown и once-per-bar
- EA Mode: отключение отрисовки и питание совместимых советников
- Безопасный префикс объектов через ChartID (мульти-инстанс)
- Опциональные ATR-адаптивные допуски для EQH/EQL и FVG
- Фильтр спреда, сессии и дней недели, режим cent-счёта
Как работают сигналы
Движки структуры и ликвидности обновляются на логике закрытого бара. Контекст относит цену к Premium, Discount или Neutral. Движок решения строит ограниченный score по настраиваемым весам. Опциональные правила Strict-SMC фильтруют слабые входы. При включённом Anti-Repaint (по умолчанию) подтверждённые Buy/Sell фиксируются на shift 1 и не переписываются после закрытия бара. Стрелки входа только на подтверждённых закрытых барах, не на формирующейся свече.
Anti-Repaint и Two-Pass
Anti-Repaint — ключевая функция целостности, включена по умолчанию. Подтверждённые исторические сигналы остаются фиксированными после закрытия бара.
Two-Pass Mitigation — экспериментальная функция, по умолчанию выключена. Может уточнять историческую митигацию OB/FVG.
Если включены оба режима, Anti-Repaint имеет автоматический приоритет:
- Two-Pass отключается на текущую сессию
- Значение input не изменяется (контракт 88 слотов EA сохраняется)
- Предупреждение пишется в журнал Experts
- При доступном GUI показывается Alert
- На панели: 2-Pass:OFF(AR-Override)
Чтобы намеренно использовать Two-Pass, установите Anti-Repaint = false. Полное совмещение режимов планируется в будущем обновлении.
Панель (Dashboard)
- Тренд LTF и HTF
- Зона Premium-Discount с меткой extreme
- Счётчики Swing, BOS, CHoCH и Sweep
- Число активных OB и FVG
- Score и сигнал: BUY, SELL или No Signal
- Состояние гистерезиса
- Anti-Repaint и фактический статус Two-Pass
- Спред, число объектов, состояние HTF-потока
- Чтение буферов: Score, Signal, State
Буферы EA
Четыре индикаторных буфера для советников и пользовательских инструментов:
- Buffer 0 - SMC_BUY: 1.0 при подтверждённом BUY только на shift 1
- Buffer 1 - SMC_SELL: 1.0 при подтверждённом SELL только на shift 1
- Buffer 2 - SMC_SCORE: сила решения, мягкий предел около +/-200
- Buffer 3 - SMC_STATE: кодированный тренд HTF/LTF и sweep; +100000 при блокировке спреда
Подтверждённые Buy/Sell пишутся только на shift 1. Score и State на shift 0 — живой preview контекста bar-1 для UI/EA. Фильтр времени подавляет Buy/Sell, но сохраняет State. Раскладка из 88 input фиксирована, чтобы позиционный iCustom оставался стабильным.
Интеграция iCustom (стиль кода EA)
Используйте имя индикатора точно как в Navigator после установки из Market. В примерах: Market\SMC Ultimate. Подтверждённые входы только на shift 1. Раскладка буферов зафиксирована:
- 0 = SMC_BUY
- 1 = SMC_SELL
- 2 = SMC_SCORE
- 3 = SMC_STATE
Подтверждение всегда читайте на shift 1.
Входы: 88 позиционных слотов. Не меняйте порядок. Слоты 41-46 зарезервированы. Непереданные хвостовые входы сохраняют defaults.
Код MQL5 (каркас EA)
#define SMC_BUF_BUY 0
#define SMC_BUF_SELL 1
#define SMC_BUF_SCORE 2
#define SMC_BUF_STATE 3
#define SMC_SHIFT_CONFIRMED 1
#define SMC_SPREAD_BLOCK_MARK 100000.0
int g_smc_handle = INVALID_HANDLE;
datetime g_smc_last_bar = 0;
int OnInit()
{
g_smc_handle = iCustom(_Symbol, PERIOD_CURRENT, "Market\\SMC Ultimate");
if(g_smc_handle == INVALID_HANDLE)
{
Print("SMC Ultimate: iCustom failed, error=", GetLastError());
return INIT_FAILED;
}
return INIT_SUCCEEDED;
}
// Optional: pass inputs by frozen 88-slot order only if needed
// g_smc_handle = iCustom(_Symbol, PERIOD_CURRENT, "Market\\SMC Ultimate", ...);
// Enable EA Mode in indicator inputs for chart-less EA use.
bool SMC_Read(const int buffer_index, const int shift, double &out_value)
{
out_value = EMPTY_VALUE;
if(g_smc_handle == INVALID_HANDLE) return false;
double tmp[];
ArraySetAsSeries(tmp, true);
if(CopyBuffer(g_smc_handle, buffer_index, shift, 1, tmp) != 1)
return false;
out_value = tmp[0];
return true;
}
bool SMC_IsValidNum(const double v)
{
return (v != EMPTY_VALUE && MathIsValidNumber(v));
}
bool SMC_DecodeState(double state_raw,
bool &spread_blocked,
int &htf_trend,
int <f_trend,
int &sweep_enc)
{
spread_blocked = false;
htf_trend = 0; ltf_trend = 0; sweep_enc = 0;
if(!SMC_IsValidNum(state_raw)) return false;
double s = state_raw;
if(s >= SMC_SPREAD_BLOCK_MARK)
{
spread_blocked = true;
s -= SMC_SPREAD_BLOCK_MARK;
}
int sv = (int)MathRound(s);
htf_trend = sv / 100 - 1; // -1 bear, 0 flat, +1 bull
ltf_trend = (sv % 100) / 10 - 1; // -1 bear, 0 flat, +1 bull
sweep_enc = sv % 10; // 0 none, 1 buy-side, 2 sell-side
return true;
}
void OnTick()
{
datetime t[];
ArraySetAsSeries(t, true);
if(CopyTime(_Symbol, PERIOD_CURRENT, 0, 2, t) != 2) return;
if(t[0] == g_smc_last_bar) return;
g_smc_last_bar = t[0];
double buy=0, sell=0, score=0, state=0;
if(!SMC_Read(SMC_BUF_BUY, SMC_SHIFT_CONFIRMED, buy)) return;
if(!SMC_Read(SMC_BUF_SELL, SMC_SHIFT_CONFIRMED, sell)) return;
if(!SMC_Read(SMC_BUF_SCORE,SMC_SHIFT_CONFIRMED, score)) return;
if(!SMC_Read(SMC_BUF_STATE,SMC_SHIFT_CONFIRMED, state)) return;
bool spread_blocked; int htf, ltf, sweep;
if(!SMC_DecodeState(state, spread_blocked, htf, ltf, sweep)) return;
if(spread_blocked) return;
const bool is_buy =
SMC_IsValidNum(buy) && buy > 0.5 && buy < 1.0e10;
const bool is_sell =
SMC_IsValidNum(sell) && sell > 0.5 && sell < 1.0e10;
if(is_buy)
{
PrintFormat("SMC BUY confirmed | score=%.0f htf=%d ltf=%d sweep=%d",
score, htf, ltf, sweep);
// --- risk + OrderSend / trade.Buy() ---
}
else if(is_sell)
{
PrintFormat("SMC SELL confirmed | score=%.0f htf=%d ltf=%d sweep=%d",
score, htf, ltf, sweep);
// --- risk + OrderSend / trade.Sell() ---
}
}
void OnDeinit(const int reason)
{
if(g_smc_handle != INVALID_HANDLE)
{
IndicatorRelease(g_smc_handle);
g_smc_handle = INVALID_HANDLE;
}
}
Правила интеграции
- Торгуйте только Buy/Sell с shift 1, никогда с shift 0
- Score/State на shift 0 — preview для мониторинга, не финальный вход
- EMPTY_VALUE / невалидные числа = нет подтверждённого сигнала
- Если State >= 100000, вычтите 100000 и не открывайте новые входы (спред)
- Код State: (htf+1)*100 + (ltf+1)*10 + sweepEnc
- Включите EA Mode, если советник работает без объектов/панели
- Всегда проверяйте возврат CopyBuffer
- Лот, SL/TP и money management — только внутри EA
SMC Ultimate отдаёт decision-буферы. Исполнение и риск — на стороне вашего EA.
Рекомендуемый старт
- Прикрепите к рабочему ТФ (часто M15-H1; любой ТФ поддерживается)
- Anti-Repaint = true
- Two-Pass = false, если он не нужен осознанно
- Настройте MaxSpread под символ
- Подстраивайте MinDecisionScore и веса после наблюдения в live
- Для EA: включите EA Mode и читайте 4 буфера через iCustom
Лучшие практики
- Это decision engine, а не гарантия прибыли
- Выше убедительность: HTF-выравнивание + sweep + не extreme-зона
- Учитывайте спред брокера и свои лимиты риска
- В тестере используйте Visual mode для объектов и алертов
- Один экземпляр на график предпочтителен; несколько изолируются ChartID
Группы входов (88, порядок зафиксирован)
- Безопасность: спред, Strict SMC, Anti-Repaint, EA Mode
- Фильтры времени и дней недели
- ATR-адаптивные допуски
- Веса decision score
- Структура: HTF, swing strength, lookback
- Порог решения и митигация зон, включая experimental Two-Pass
- Фиксированные константы (fixed mode)
- Зарезервированные слоты совместимости EA
- Лимит объектов графика
- Визуал, алерты, layout панели
- Цвета и логирование
Не переставляйте, не удаляйте и не переназначайте reserved-слоты при позиционной интеграции.
Версия 1.0
Первый публичный релиз MQL5 Market. Полный стек SMC/ICT, Anti-Repaint snapshot engine, experimental Two-Pass с активным разрешением конфликта AR, контракт 4 буферов, 88 фиксированных input, префикс ChartID, ATR-адаптация, институциональная панель и фильтры спреда/сессии/гистерезиса.
Поддержка
Поддержка через систему сообщений MQL5.org на странице автора. Укажите символ, таймфрейм, скриншот входов и сообщения вкладки Experts. Пожалуйста, дайте разумное время на ответ.
Отказ от ответственности
Торговля связана с риском убытков. Исторические паттерны структуры не гарантируют будущий результат. SMC Ultimate — аналитический индикатор поддержки решений, а не финансовая рекомендация. Управление риском и исполнение сделок — исключительно ваша ответственность.
