Prism Candle Forge
- Bibliotheken
-
Syarief Azman Bin Rosli
Hallo und herzlich willkommen auf meinem offiziellen MQL5-Profil!
Ich bin Syarief Azman Bin Rosli, Entwickler algorithmischer Handelssysteme und Software-Ingenieur mit über zehn Jahren Erfahrung in der Entwicklung robuster automatisierter Handelslösungen für MetaTrader 5 und MetaTrader 4. - Version: 1.0
- Aktivierungen: 5
Prism Candle Forge — Candlestick-Mustererkennungs-Engine für MT4
Prism Candle Forge ist eine native MQL4-Bibliothek zur Erkennung und Validierung von über 20 Candlestick-Mustern mittels ATR-gewichteter geometrischer Analyse. Sie bietet Musteridentifikation, Richtungs-Konfidenzwerte, Kerzenmorphologie-Klassifizierung und Trendvalidierung über 8 exportierte Funktionen für EAs, Indikatoren und Skripte. Keine DLLs, keine Abhängigkeiten, reine MQL4-Berechnung.
Wird als kompilierte Binärdatei (Prism_Candle_Forge.ex4) bereitgestellt. Diese Beschreibung ist Ihre vollständige API-Referenz.
Installation
- Laden Sie Prism_Candle_Forge.ex4 aus dem MQL5 Market herunter.
- Kopieren Sie die Datei nach: MQL4/Libraries/
- Fügen Sie den untenstehenden #import-Block in Ihre .mq4-Datei ein.
- Kompilieren Sie Ihren EA oder Indikator. Alle 8 Funktionen stehen bereit.
Import-Deklaration (Kopierfertig)
#import "Prism_Candle_Forge.ex4" int PCF_DetectPattern(const double &open[], const double &high[], const double &low[], const double &close[], int bar_index, double atr_value, string &pattern_name, double &confidence, int &direction); int PCF_ScanMultiPattern(const double &open[], const double &high[], const double &low[], const double &close[], int bar_index, double atr_value, string &pattern_names[], double &confidences[], int &directions[], int max_patterns); double PCF_PatternStrength(const double &open[], const double &high[], const double &low[], const double &close[], int bar_index, double atr_value); int PCF_CandleType(double open_price, double high_price, double low_price, double close_price, double atr_value); double PCF_BodyRatio(double open_price, double high_price, double low_price, double close_price); double PCF_WickBalance(double open_price, double high_price, double low_price, double close_price); int PCF_IsTrendConfirmed(const double &close[], int bar_index, int lookback_period, double min_slope_pips); int PCF_GetVersion(); #import
API-Referenz
PCF_DetectPattern
Erkennt das stärkste Candlestick-Muster an einem Bar. Erkennt 20+ Muster: Hammer, Engulfing, Morning/Evening Star, Doji-Varianten, Piercing Line, Dark Cloud Cover, Three White Soldiers, Three Black Crows, Harami, Tweezer, Marubozu, Hanging Man, Shooting Star.
Parameter:
- open[], high[], low[], close[]: OHLC-Preis-Arrays aus dem Chart.
- bar_index: Index des zu analysierenden Bars innerhalb der Array-Grenzen.
- atr_value: Aktueller ATR-Wert für adaptive Schwellenwert-Skalierung (> 0).
- pattern_name (by ref): Name des stärksten erkannten Musters (z. B. "Bullish Engulfing").
- confidence (by ref): Konfidenzwert von 0.0 (schwach) bis 1.0 (perfekt).
- direction (by ref): +1 für bullisches Signal, -1 für bärisches Signal.
Rückgabewert: Anzahl erkannter Muster (0 wenn keines). Belegt Ausgabeparameter mit bestem Muster.
PCF_ScanMultiPattern
Scannt nach ALLEN Mustern an einem Bar und liefert Ergebnisse absteigend nach Konfidenz sortiert.
Parameter:
- open[], high[], low[], close[]: OHLC-Preis-Arrays.
- bar_index: Zu analysierender Bar.
- atr_value: ATR für adaptive Schwellenwerte.
- pattern_names[] (by ref): Array für Musternamen (bis max_patterns dimensioniert).
- confidences[] (by ref): Array für Konfidenzwerte.
- directions[] (by ref): Array für Richtungen (+1/-1).
- max_patterns: Maximale Anzahl zurückzugebender Ergebnisse (z. B. 5).
Rückgabewert: Tatsächliche Anzahl gefundener Muster (0 bis max_patterns).
PCF_PatternStrength
Liefert einen aggregierten Richtungsdruckwert aus allen Mustern eines Bars.
Parameter:
- open[], high[], low[], close[]: OHLC-Arrays.
- bar_index: Ziel-Bar-Index.
- atr_value: ATR zur Skalierung.
Rückgabewert: Wert von -100.0 (extrem bärisch) bis +100.0 (extrem bullisch). Null bedeutet neutral.
PCF_CandleType
Klassifiziert eine Kerze in einen von 8 morphologischen Typen anhand ATR-relativer Proportionen.
Parameter:
- open_price, high_price, low_price, close_price: OHLC-Werte einer einzelnen Kerze.
- atr_value: ATR für relative Größen (bei <= 0 gelten absolute Schwellenwerte).
Rückgabewert: 1=Bull Marubozu, 2=Bear Marubozu, 3=Hammer, 4=Inverted Hammer, 5=Doji, 6=Spinning Top, 7=Standard Bull, 8=Standard Bear.
PCF_BodyRatio
Berechnet Verhältnis von Körper zu Gesamtspanne der Kerze zur Signifikanzprüfung.
Parameter:
- open_price, high_price, low_price, close_price: OHLC einer einzelnen Kerze.
Rückgabewert: Verhältnis von 0.0 (kein Körper / Doji) bis 1.0 (Marubozu). 0.0 bei Nullspanne.
PCF_WickBalance
Misst die Richtungsasymmetrie der Dochte einer Kerze.
Parameter:
- open_price, high_price, low_price, close_price: OHLC einer einzelnen Kerze.
Rückgabewert: -1.0 (nur unterer Docht, bullisch) bis +1.0 (nur oberer Docht, bärisch). 0.0 bei Symmetrie.
PCF_IsTrendConfirmed
Validiert Trendkontext über Steigung linearer Regression im Rückblickfenster.
Parameter:
- close[]: Schlusskurs-Array close[].
- bar_index: Start-Bar für das Auswertungsfenster.
- lookback_period: Anzahl der auszuwertenden Bars (mindestens 5).
- min_slope_pips: Minimale absolute Steigung (in Pips) zur Trendbestätigung.
Rückgabewert: +1 (Aufwärtstrend), -1 (Abwärtstrend), 0 (Seitwärtsmarkt oder unzureichende Daten).
PCF_GetVersion
Gibt die Bibliotheksversion als Ganzzahl für Kompatibilitätsprüfungen zurück.
Rückgabewert: 100 (entspricht Version 1.00).
Praxisnahes Integrationsbeispiel
#property strict #import "Prism_Candle_Forge.ex4" int PCF_DetectPattern(const double &open[], const double &high[], const double &low[], const double &close[], int bar_index, double atr_value, string &pattern_name, double &confidence, int &direction); double PCF_PatternStrength(const double &open[], const double &high[], const double &low[], const double &close[], int bar_index, double atr_value); int PCF_CandleType(double open_price, double high_price, double low_price, double close_price, double atr_value); int PCF_GetVersion(); #import void OnTick() { double o[], h[], l[], c[]; ArrayCopyRates(o, Symbol(), 0); int copied = CopyOpen(Symbol(), 0, 0, 100, o); CopyHigh(Symbol(), 0, 0, 100, h); CopyLow(Symbol(), 0, 0, 100, l); CopyClose(Symbol(), 0, 0, 100, c); double atr = iATR(Symbol(), 0, 14, 1); string pat_name; double conf; int dir; int count = PCF_DetectPattern(o, h, l, c, 1, atr, pat_name, conf, dir); if(count > 0) Print("Pattern: ", pat_name, " Confidence: ", conf, " Direction: ", dir); double strength = PCF_PatternStrength(o, h, l, c, 1, atr); Print("Aggregate Strength: ", strength); int candle = PCF_CandleType(o[1], h[1], l[1], c[1], atr); Print("Candle Type: ", candle); }
Architektur
Alle 8 Funktionen sind stateless und unabhängig. Jeder Aufruf führt rein geometrische und statistische Berechnungen auf OHLC-Arrays aus — ohne Zustand, Chartobjekte, Timer oder Netzwerkanfragen. ATR-relative Schwellenwerte gewährleisten präzise Erkennung über alle Instrumente und Zeiteinheiten ohne Parameteranpassung.
Kompatibilität
- Plattform: Ausschließlich MetaTrader 4
- Strategietester: Vollständig kompatibel (Backtesting und Optimierung)
- Abhängigkeiten: Keine (keine DLLs)
- Keine Chartobjekte, keine Timer, keine UI-Belastung — reine Berechnungs-Engine
- Thread-Sicherheit: Zustandslos; vollkommen sicher für den Einsatz auf mehreren Charts
