SMC Ultimate
- Indikatoren
-
Ahmed Hamed Hamed Eadwan
GERMAN TRANSLATION — DEUTSCH
==============================
TITLE:
MQL5 Entwickler & Trader | Gründer von R protocols
ABOUT:
Hallo, ich bin Ahmed — ein Trader und MQL5-Entwickler aus
den Vereinigten Arabischen Emiraten und Gründer von R protocols. - Version: 1.0
- Aktivierungen: 5
SMC Ultimate
Institutionelle Smart-Money-Concepts-(SMC)/ICT-Entscheidungs-Engine für MetaTrader 5. Analysiert Marktstruktur, Liquidität, Order Blocks und Fair Value Gaps und wandelt sie in Score, kodierten Zustand und bestätigte Buy/Sell-Signale um.
Arbeitet vollständig eigenständig (Dashboard, Zeichnungen, Alerts) und ist EA-fähig über einen stabilen 4-Buffer-Vertrag sowie 88 feste Eingaben für zuverlässiges iCustom.
Launch-Preis der ersten öffentlichen Version (Version 1.0). Der Preis kann nach frühen Updates und Bewertungen steigen.
Hauptfunktionen
- HTF- und LTF-Marktstruktur: Swings, BOS und CHoCH
- Liquiditätskarte: Equal Highs/Lows und Sweep-Erkennung
- Order Blocks und Fair Value Gaps mit Touch-/Mitigation-Status
- Premium-/Discount-Kontextbewertung
- Gewichteter Multifaktor-Score mit Hysterese-Sperre
- Anti-Repaint: bestätigte Signale auf der geschlossenen Kerze (Shift 1)
- Chart-Dashboard: Trend, Zone, Score, Signal und Buffer
- Alerts: Popup, Sound und Push, mit Cooldown und once-per-bar
- EA-Modus: Zeichnungen aus, Daten für kompatible EAs
- Sicheres Objektpräfix via ChartID (Multi-Instanz)
- Optionale ATR-adaptive Toleranzen für EQH/EQL und FVG
- Spread-Filter, Session-/Wochentagsfilter, Cent-Kontomodus
So funktionieren Signale
Struktur- und Liquiditäts-Engines aktualisieren auf Closed-Bar-Logik. Der Kontext ordnet den Preis Premium, Discount oder Neutral zu. Die Decision-Engine bildet einen begrenzten Score aus konfigurierbaren Gewichten. Optionale Strict-SMC-Sweep-Regeln filtern schwache Entries. Mit Anti-Repaint (Standard) werden bestätigte Buy/Sell auf Shift 1 fixiert und nach Kerzenschluss nicht überschrieben. Pfeile nur auf bestätigten Closed Bars, nicht auf der laufenden Kerze.
Anti-Repaint und Two-Pass
Anti-Repaint ist eine Kern-Integritätsfunktion und standardmäßig aktiv. Bestätigte historische Signale bleiben nach dem Schluss fix.
Two-Pass Mitigation ist experimentell und standardmäßig aus. Kann die historische OB/FVG-Mitigation verfeinern.
Wenn beide aktiv sind, hat Anti-Repaint automatische Priorität:
- Two-Pass wird für die aktuelle Session deaktiviert
- Der Input-Wert wird nie geändert (88-Slot-EA-Vertrag bleibt intakt)
- Warnung im Experts-Log
- Chart-Alert, wenn GUI erlaubt ist
- Dashboard zeigt: 2-Pass:OFF(AR-Override)
Für bewusstes Two-Pass Anti-Repaint = false setzen. Volle Dual-Mode-Fusion ist für ein späteres Update geplant.
Dashboard
- LTF- und HTF-Trend
- Premium-Discount-Zone mit Extreme-Tag
- Zähler für Swing, BOS, CHoCH und Sweep
- Aktive OB- und FVG-Anzahl
- Score und Signal: BUY, SELL oder No Signal
- Hysterese-Sperrstatus
- Anti-Repaint und effektiver Two-Pass-Status
- Spread-Monitor, Objektanzahl, HTF-Feed-Gesundheit
- Buffer-Auslesen: Score, Signal, State
EA-Buffer
Vier Indikatorbuffer für Expert Advisors und Custom-Tools:
- Buffer 0 - SMC_BUY: 1.0 bei bestätigtem BUY nur auf Shift 1
- Buffer 1 - SMC_SELL: 1.0 bei bestätigtem SELL nur auf Shift 1
- Buffer 2 - SMC_SCORE: Entscheidungsstärke, Soft-Cap ca. +/-200
- Buffer 3 - SMC_STATE: kodierter HTF/LTF-Trend und Sweep; +100000 bei Spread-Block
Bestätigte Buy/Sell nur auf Shift 1. Score/State auf Shift 0 sind Live-Preview des Bar-1-Kontexts. Zeitfilter unterdrückt Buy/Sell, erhält aber State. 88 Inputs sind fix für stabile positionale iCustom-Reads.
iCustom-Integration (EA-Code-Stil)
Verwenden Sie den exakten Indikatornamen im Navigator nach Market-Installation. Beispiele mit Market\SMC Ultimate. Bestätigte Entries nur auf Shift 1. Buffer-Layout fixiert:
- 0 = SMC_BUY
- 1 = SMC_SELL
- 2 = SMC_SCORE
- 3 = SMC_STATE
Bestätigung immer auf Shift 1 lesen.
Inputs: 88 positionale Slots. Nicht umsortieren. Slots 41-46 reserviert. Weggelassene trailing Inputs behalten Defaults.
MQL5-Code (EA-Skelett)
#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;
}
}
Integrationsregeln
- Nur Buy/Sell auf Shift 1 handeln, nie Shift 0
- Score/State auf Shift 0 sind Monitor-Preview, kein finaler Entry
- EMPTY_VALUE / ungültige Zahlen = kein bestätigtes Signal
- Wenn State >= 100000: 100000 abziehen und keine neuen Entries (Spread-Block)
- State-Kodierung: (htf+1)*100 + (ltf+1)*10 + sweepEnc
- EA Mode aktivieren, wenn der EA ohne Panel/Objekte laufen soll
- CopyBuffer-Rückgabe immer prüfen
- Losgröße, SL/TP und Money-Management nur im EA
SMC Ultimate liefert Decision-Buffer. Ausführung und Risiko liegen bei Ihrem EA.
Empfohlener Start
- Auf Arbeits-Timeframe legen (häufig M15-H1; jedes TF unterstützt)
- Anti-Repaint = true belassen
- Two-Pass = false, außer bewusst benötigt
- MaxSpread an das Symbol anpassen
- MinDecisionScore und Gewichte erst nach Live-Beobachtung feinjustieren
- Für EA: EA Mode aktivieren und 4 Buffer via iCustom lesen
Best Practices
- Als Decision-Engine behandeln, nicht als Garantie-Signaldrucker
- Höhere Überzeugung: HTF-Alignment + stützender Sweep + nicht-extreme Zone
- Broker-Spread und eigene Risikolimits beachten
- Im Strategy Tester Visual-Modus für Objekte/Alerts nutzen
- Eine Instanz pro Chart ideal; mehrere per ChartID isoliert
Input-Gruppen (88 gesamt, Reihenfolge fix)
- Sicherheit: Spread, Strict SMC, Anti-Repaint, EA Mode
- Handelszeit- und Wochentagsfilter
- ATR-adaptive Toleranzen
- Decision-Score-Gewichte
- Kernstruktur: HTF, Swing Strength, Lookback
- Entscheidungsschwelle und Zonen-Mitigation inkl. experimentellem Two-Pass
- Fixed-Mode-Konstanten
- Reservierte EA-Kompatibilitäts-Slots
- Chart-Objektlimit
- Visuals, Alerts, Dashboard-Layout
- Farben und Logging
Reservierte Slots bei positionaler Integration nicht umordnen, entfernen oder umwidmen.
Version 1.0
Erste öffentliche MQL5-Market-Veröffentlichung. Voller SMC/ICT-Stack, Anti-Repaint-Snapshot-Engine, experimentelles Two-Pass mit aktiver AR-Konfliktlösung, 4-Buffer-EA-Vertrag, 88 fixe Inputs, ChartID-Multi-Instanz-Präfix, ATR-Adaptive, institutionelles Dashboard sowie Spread-/Session-/Hysterese-Kontrollen.
Support
Support über das MQL5.org-Nachrichtensystem auf der Autorenseite. Bitte Symbol, Timeframe, Input-Screenshot und Experts-Meldungen angeben und angemessene Antwortzeit einplanen.
Haftungsausschluss
Handel birgt Verlustrisiko. Historische Strukturmuster garantieren keine künftigen Ergebnisse. SMC Ultimate ist ein analytischer Entscheidungsunterstützungs-Indikator, keine Finanzberatung. Risikomanagement und Trade-Ausführung liegen allein bei Ihnen.
