Détection du Schéma de Spike Haussier
Schéma en 3 bougies :
1ère bougie : Verte avec un grand corps (spike haussier).
2ème bougie : Rouge (retrace).
3ème bougie : Verte avec un grand corps (spike haussier).
Lorsque ce schéma apparaît, une zone est créée.
Création de la Zone
Un rectangle bleu est dessiné à partir de l'intervalle haut/bas des 3 bougies.
Une ligne d'entrée horizontale verte lime est tracée au prix d'ouverture de la bougie du milieu (2ème bougie).
La ligne s'étend loin dans le futur jusqu'à ce que le prix revienne.

EXPLICATION DES ENTRÉES
mq5 input color BoxColor = clrBlue; // Couleur du rectangle du schéma de 3 bougies input color EntryLineColor = clrLime; // Couleur de la ligne d'entrée input ENUM_LINE_STYLE EntryLineStyle = STYLE_SOLID; // Style de la ligne d'entrée input int BoxWidth = 2; // Largeur de la bordure du rectangle input int EntryLineWidth = 2; // Largeur de la ligne d'entrée input int EntryLineLength = 200; // Combien de temps la ligne d'atténuation s'étend
Ces entrées vous permettent de contrôler entièrement le style du rectangle et de la ligne d'entrée.
IDÉE PRINCIPALE
Nous recherchons un schéma haussier en 3 bougies :
1. Première bougie – forte hausse (spike)
2. Deuxième bougie – retracement baissier
3. Troisième bougie – forte hausse à nouveau
Lorsque cela apparaît, nous traçons :
- Un rectangle autour du schéma
- Une ligne horizontale à l'ouverture de la 2ème bougie (point d'entrée)
Dès que le prix revient à cette ligne ("atténuation"), nous raccourcissons la ligne et évitons de la redessiner.
DÉTECTION DE SCHÉMA (À CHAQUE TICK)
for (int i = limit - 3; i >= 0; i--) {
if (isBullish(i + 2) && isBearish(i + 1) && isBullish(i)) {
double high = MathMax(MathMax(High[i], High[i + 1]), High[i + 2]);
double low = MathMin(MathMin(Low[i], Low[i + 1]), Low[i + 2]);
double entry = Open[i + 1];
PatternInfo *pattern = new PatternInfo;
pattern.time = Time[i];
pattern.entry = entry;
pattern.high = high;
pattern.low = low;
pattern.mitigated = false;
}
}string boxName = "Box_" + IntegerToString(Time[i]); ObjectCreate(0, boxName, OBJ_RECTANGLE, 0, Time[i + 2], high, Time[i], low); string lineName = "EntryLine_" + IntegerToString(Time[i]); ObjectCreate(0, lineName, OBJ_TREND, 0, Time[i], entry, Time[i] + PeriodSeconds() * EntryLineLength, entry);
VÉRIFICATION D'ATTÉNUATION (À CHAQUE TICK)
for (int p = 0; p < activePatterns.Total(); p++) {
PatternInfo *pt = (PatternInfo*)activePatterns.At(p);
if (!pt.mitigated && Low[0] <= pt.entry) {
pt.mitigated = true;
ObjectDelete("EntryLine_" + IntegerToString(pt.time));
ObjectCreate(0, "MitigatedLine_" + IntegerToString(pt.time), OBJ_TREND, 0, pt.time, pt.entry, Time[0], pt.entry);
}
}FONCTIONS AIDE
bool isBullish(int i) {
return Close[i] > Open[i];
}
bool isBearish(int i) {
return Close[i] < Open[i];
}Cet indicateur est simple mais puissant :
- Détecte le comportement réel des spikes sur Boom
- Visualise les entrées des investisseurs avisés
- Détecte automatiquement l'atténuation
Vous pouvez désormais le tester en direct sur Boom 500 ou Boom 1000.
Merci de laisser un commentaire si vous souhaitez poser des questions ou partager vos expériences.
Articles connexes
- iMAX3 : Détecteur de Tendances Rapides pour Traders
- Découvrez l'indicateur Tymen STARC Bands MTF pour MetaTrader 5
- Affichez la tendance actuelle sur tous les délais avec un indicateur pour MetaTrader 4
- Découvrez l'indicateur 3 en 1 Stochastic pour MetaTrader 5
- Améliorez vos graphiques avec ClearView : Indicateurs et modèles pour MetaTrader 5