Prism Candle Forge
- Bibliothèque
-
Syarief Azman Bin Rosli
Bonjour et bienvenue sur mon profil officiel MQL5 !
Je suis Syarief Azman Bin Rosli, développeur de systèmes de trading algorithmique et ingénieur quantitatif avec plus de dix ans d'expérience spécialisée dans la création de solutions de trading automatisées pour MetaTrader 5 et MetaTrader 4. - Version: 1.0
- Activations: 5
Prism Candle Forge — Moteur de Reconnaissance de Figures en Chandeliers pour MT4
Prism Candle Forge est une bibliothèque MQL4 native qui détecte et valide plus de 20 figures en chandeliers japonais par analyse géométrique pondérée par l'ATR. Elle fournit l'identification des figures, l'évaluation de confiance directionnelle, la classification morphologique et la validation du contexte de tendance via 8 fonctions exportées pour EA, Indicateurs ou Scripts. Zéro DLL, aucune dépendance externe, calcul MQL4 pur.
Distribué sous forme de binaire compilé (Prism_Candle_Forge.ex4). Cette description est votre référence API complète.
Installation
- Téléchargez Prism_Candle_Forge.ex4 depuis le MQL5 Market.
- Placez le fichier dans : MQL4/Libraries/
- Ajoutez le bloc #import ci-dessous dans votre fichier .mq4.
- Compilez votre EA ou Indicateur. Les 8 fonctions sont prêtes à l'emploi.
Déclaration d'Importation (Prêt à Copier-Coller)
#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
Référence de l'API
PCF_DetectPattern
Détecte la figure la plus forte sur une barre spécifique. Reconnaît 20+ figures : Hammer, Engulfing, Morning/Evening Star, variantes Doji, Piercing Line, Dark Cloud Cover, Three White Soldiers, Three Black Crows, Harami, Tweezer, Marubozu, Hanging Man, Shooting Star.
Paramètres:
- open[], high[], low[], close[]: Tableaux de prix OHLC issus du graphique.
- bar_index: Indice de la barre à analyser dans les limites du tableau.
- atr_value: Valeur ATR actuelle pour l'ajustement adaptatif (> 0).
- pattern_name (by ref): Nom de la figure la plus forte détectée (ex. "Bullish Engulfing").
- confidence (by ref): Score de confiance de 0.0 (faible) à 1.0 (parfait).
- direction (by ref): +1 pour signal haussier, -1 pour signal baissier.
Retourne: Nombre de figures détectées (0 si aucune). Renseigne les paramètres de sortie avec la meilleure figure.
PCF_ScanMultiPattern
Recherche TOUTES les figures sur une barre et renvoie les résultats triés par confiance décroissante.
Paramètres:
- open[], high[], low[], close[]: Tableaux de prix OHLC.
- bar_index: Barre à analyser.
- atr_value: ATR pour seuils adaptatifs.
- pattern_names[] (by ref): Tableau recevant les noms (jusqu'à max_patterns).
- confidences[] (by ref): Tableau recevant les scores de confiance.
- directions[] (by ref): Tableau recevant les directions (+1/-1).
- max_patterns: Nombre maximal de résultats renvoyés (ex. 5).
Retourne: Nombre réel de figures identifiées (0 à max_patterns).
PCF_PatternStrength
Renvoie un score directionnel global combinant toutes les figures de la barre.
Paramètres:
- open[], high[], low[], close[]: Tableaux de prix OHLC.
- bar_index: Indice de la barre cible.
- atr_value: ATR pour la mise à l'échelle.
Retourne: Score de -100.0 (très baissier) à +100.0 (très haussier). Zéro indique la neutralité.
PCF_CandleType
Classifie une bougie parmi 8 types morphologiques selon ses proportions relatives à l'ATR.
Paramètres:
- open_price, high_price, low_price, close_price: Valeurs OHLC de la bougie unique.
- atr_value: ATR pour taille relative (si <= 0, seuils absolus).
Retourne: 1=Bull Marubozu, 2=Bear Marubozu, 3=Hammer, 4=Inverted Hammer, 5=Doji, 6=Spinning Top, 7=Standard Bull, 8=Standard Bear.
PCF_BodyRatio
Calcule le ratio corps/étendue totale d'une bougie pour filtrer sa pertinence.
Paramètres:
- open_price, high_price, low_price, close_price: OHLC de la bougie unique.
Retourne: Ratio de 0.0 (aucun corps / doji) à 1.0 (marubozu). 0.0 si l'étendue est nulle.
PCF_WickBalance
Mesure l'asymétrie directionnelle des mèches de la bougie.
Paramètres:
- open_price, high_price, low_price, close_price: OHLC de la bougie unique.
Retourne: De -1.0 (mèche basse, rejet haussier) à +1.0 (mèche haute, rejet baissier). 0.0 pour mèches symétriques.
PCF_IsTrendConfirmed
Valide la tendance dominante par pente de régression linéaire sur période rétrospective.
Paramètres:
- close[]: Tableau des prix de clôture close[].
- bar_index: Barre initiale de la période d'analyse.
- lookback_period: Nombre de barres à évaluer (minimum 5).
- min_slope_pips: Pente minimale absolue (en pips) requise.
Retourne: +1 (tendance haussière), -1 (tendance baissière), 0 (range ou données insuffisantes).
PCF_GetVersion
Renvoie la version de la bibliothèque sous forme d'entier pour vérification.
Retourne: 100 (représentant la version 1.00).
Exemple d'Intégration Concret
#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); }
Architecture
Les 8 fonctions sont stateless et indépendantes. Chaque appel exécute une analyse géométrique et statistique pure sur les tableaux OHLC, sans état persistant, sans graphiques, sans timers et sans réseau. Les seuils ATR garantissent une détection précise sur tous les actifs et unités de temps sans ajustement.
Compatibilité
- Plateforme : MetaTrader 4 uniquement
- Testeur de stratégie : Entièrement compatible (backtest et optimisation)
- Dépendances : Aucune (zéro DLL)
- Sans objet graphique, timer ni surcharge UI — moteur de calcul pur
- Sécurité multi-thread : Fonctions stateless ; exécution sécurisée sur plusieurs graphiques
