TriZone Semafor
- Indicateurs
-
Ahmed Hamed Hamed Eadwan
FRENCH TRANSLATION — FRANÇAIS
===============================
TITLE:
Développeur MQL5 & Trader | Fondateur de R protocols
ABOUT:
Bonjour, je suis Ahmed — un trader et développeur MQL5 basé aux
Émirats Arabes Unis, et fondateur de R protocols. - Version: 1.0
Si vous avez deja fixe un graphique couvert de fleches ZigZag en vous demandant lesquelles comptent vraiment — cet indicateur a ete concu pour cette frustration.
TriZone Semafor execute trois algorithmes ZigZag independants simultanement : Rapide (Period 5), Moyen (Period 13) et Lent (Period 34). Lorsqu'ils detectent des pivots sur la meme bougie, seul le signal le plus significatif survit. Le niveau 3 ecrase toujours le niveau 2. Le niveau 2 ecrase toujours le niveau 1. Une fleche propre par bougie et par direction — pas de superposition, pas de double comptage.
Pourquoi trois niveaux au lieu d'un
Un ZigZag simple traite toutes les oscillations de maniere egale. Le meme indicateur marque un retracement de deux bougies et un grand retournement de tendance avec des fleches identiques. TriZone classifie chaque pivot par importance pour que vous lisiez la hierarchie du graphique en un coup d'oeil.
- Niveau 1 — Rapide : Petits retracements et pivots mineurs. La structure dans la structure.
- Niveau 2 — Moyen : Oscillations intraday et reactions significatives. Les pivots que vous consignez dans votre journal de trading.
- Niveau 3 — Lent : Grands virages structurels. Les points ou la poursuite de la tendance est reellement en question.
Chaque niveau a sa propre forme et couleur de fleche pour que vous voyiez la hierarchie instantanement, sans consulter une legende.
Systeme de signaux exclusifs
Chaque bougie passe par une regle : si un niveau superieur revendique un pivot sur cette bougie, toutes les revendications des niveaux inferieurs sont supprimees — pas cachees, supprimees. Cela se passe dans le tampon de l'indicateur avant que quoi que ce soit n'atteigne le graphique. Le graphique reflete l'etat reel, pas une superposition de couches.
Mode anti-repaint
Avec AntiRepaint = ON, un signal n'est dessine qu'apres le nombre configure de bougies de confirmation. La fleche que vous voyez a deja passe sa fenetre de stabilite et ne bougera pas. L'indicateur affiche le mode actuel et la profondeur de confirmation dans la barre de titre du graphique — transparence totale sur ce que vous lisez.
Avec AntiRepaint = OFF, les signaux apparaissent immediatement sur la bougie en formation. Utile pour la reference visuelle. Non recommande pour la logique automatisee.
Systeme d'alertes
Les alertes sont mises en file d'attente pendant le calcul et delivrees uniquement apres que le filtre d'exclusivite confirme que le signal a survecu. Vous ne recevrez jamais un popup pour un signal de niveau 1 ecrase par le niveau 3 un instant plus tard. Un pivot confirme — une alerte. Configurable par niveau independamment.
Ce qui est inclus
- Trois niveaux de detection ZigZag avec parametres entierement independants
- Priorite exclusive des signaux au niveau du tampon — le niveau le plus haut gagne par bougie
- Alertes popup uniquement sur les pivots confirmes — pas d'alertes fantomes
- Mode anti-repaint avec bougies de confirmation configurables par niveau
- N'importe quel symbole, n'importe quel unite de temps — MetaTrader 5
- Fichier unique — zero dependances externes, pas de DLL, pas d'includes personnalises
Point de depart recommande
Ouvrez H1 ou H4 avec les parametres par defaut. Les profondeurs par defaut 5 / 13 / 34 suivent la suite standard de Fibonacci — un choix naturel pour la plupart des instruments et des unites de temps.
Les pivots du niveau 3 sont votre reference structurelle. Le niveau 2 sont vos points de reference intraday. Le niveau 1 montre la structure mineure entre eux. Ajustez la profondeur (Period) et les bougies de confirmation (ConfirmBars) a votre style.
Compatibilite
MetaTrader 5 — n'importe quel courtier, n'importe quel symbole, n'importe quel unite de temps. Pas de bibliotheques externes. Pas d'importation DLL. Fichier .ex5 unique, completement autonome.
Reference iCustom — TriZone_Semafor
Tampons de sortie
Seul le niveau actif le plus haut est non vide par bougie.
EMPTY_VALUE = pas de pivot sur cette barre/niveau.
Avec AntiRepaint ON, lisez a shift >= max(ConfirmBars1, ConfirmBars2, ConfirmBars3) — defaut : shift >= 4.
| Tampon | Index | Signal | Contenu |
|---|---|---|---|
| BufLow1 | 0 | BUY | Prix du pivot bas niveau 1 — ZigZag rapide |
| BufHigh1 | 1 | SELL | Prix du pivot haut niveau 1 — ZigZag rapide |
| BufLow2 | 2 | BUY | Prix du pivot bas niveau 2 — ZigZag moyen |
| BufHigh2 | 3 | SELL | Prix du pivot haut niveau 2 — ZigZag moyen |
| BufLow3 | 4 | BUY | Prix du pivot bas niveau 3 — ZigZag lent |
| BufHigh3 | 5 | SELL | Prix du pivot haut niveau 3 — ZigZag lent |
Parametres d'entree
# = position dans l'appel iCustom() (a partir de 0, apres Symbol / Period / FileName)
| # | Nom | Type | Defaut | Plage | Description |
|---|---|---|---|---|---|
| NIVEAU 1 — ZigZag Rapide | |||||
| 0 | Period1 | int | 5 | 2-500 | Profondeur de recherche de pivots (bougies) |
| 1 | Deviation1 | int | 1 | 1-100 | Deviation minimale en points |
| 2 | Backstep1 | int | 3 | 1-(P-1) | Bougies min. entre pivots consecutifs |
| 3 | HighSymbol1 | int | 159 | Wingdings | Fleche pour les hauts (159=point, 108=cercle, 116=diamant) |
| 4 | LowSymbol1 | int | 159 | Wingdings | Fleche pour les bas |
| 5 | ConfirmBars1 | int | 2 | 1-50 | Bougies de confirmation avant fixation du signal |
| NIVEAU 2 — ZigZag Moyen | |||||
| 6 | Period2 | int | 13 | 2-500 | Profondeur de recherche de pivots |
| 7 | Deviation2 | int | 8 | 1-100 | Deviation minimale en points |
| 8 | Backstep2 | int | 5 | 1-(P-1) | Bougies min. entre pivots consecutifs |
| 9 | HighSymbol2 | int | 108 | Wingdings | Fleche pour les hauts |
| 10 | LowSymbol2 | int | 108 | Wingdings | Fleche pour les bas |
| 11 | ConfirmBars2 | int | 3 | 1-50 | Bougies de confirmation |
| NIVEAU 3 — ZigZag Lent | |||||
| 12 | Period3 | int | 34 | 2-500 | Profondeur de recherche de pivots |
| 13 | Deviation3 | int | 21 | 1-100 | Deviation minimale en points |
| 14 | Backstep3 | int | 12 | 1-(P-1) | Bougies min. entre pivots consecutifs |
| 15 | HighSymbol3 | int | 108 | Wingdings | Fleche pour les hauts |
| 16 | LowSymbol3 | int | 108 | Wingdings | Fleche pour les bas |
| 17 | ConfirmBars3 | int | 4 | 1-50 | Bougies de confirmation |
| GESTION DE L'INSTANCE | |||||
| 18 | InstanceID | string | "A" | n'importe | Tag unique — doit differer de toute copie sur le graphique |
| 19 | DebugMode | ENUM_ONOFF | OFF (0) | 0 / 1 | Imprimer le diagnostic dans le Journal |
| 20 | HeadlessMode | ENUM_ONOFF | OFF (0) | 0 / 1 | Mettre a 1 (ON) lors de l'utilisation via iCustom — supprime toute interface et alertes |
| ANTI-REPAINT | |||||
| 21 | AntiRepaint | ENUM_ONOFF | ON (1) | 0 / 1 | ON = uniquement signaux confirmes — requis pour une logique EA stable |
| 22 | SafeArrows | ENUM_ONOFF | OFF (0) | 0 / 1 | ON = fleches utilisent le decalage retroactif complet (plus strict) |
| SYSTEME D'ALERTES | |||||
| 23 | AlertMode | ENUM_ALERT_MODE | 1 (Popup) | 0-3 | 0=Aucun 1=Popup 2=Push 3=Tous — mettre 0 dans l'EA |
| 24 | AlertLevel1 | ENUM_ONOFF | OFF (0) | 0 / 1 | Alerte sur pivots niveau 1 |
| 25 | AlertLevel2 | ENUM_ONOFF | ON (1) | 0 / 1 | Alerte sur pivots niveau 2 |
| 26 | AlertLevel3 | ENUM_ONOFF | ON (1) | 0 / 1 | Alerte sur pivots niveau 3 |
Total : 27 parametres (indices 0-26)
Exemple de code iCustom
int g_tzsHandle = INVALID_HANDLE; int OnInit() { g_tzsHandle = iCustom( _Symbol, PERIOD_CURRENT, "TriZone_Semafor", 5, 1, 3, 159, 159, 2, // Niveau 1 13, 8, 5, 108, 108, 3, // Niveau 2 34, 21, 12, 108, 108, 4, // Niveau 3 "EA1", false, true, // Instance + Headless true, false, // AntiRepaint + SafeArrows 0, false, false, false // Alertes OFF ); if(g_tzsHandle == INVALID_HANDLE) { PrintFormat("[EA] handle failed: err=%d", GetLastError()); return INIT_FAILED; } return INIT_SUCCEEDED; }
Erreurs courantes
| Erreur | Symptome | Correction |
|---|---|---|
| Meme InstanceID que la copie sur le graphique | INIT_PARAMETERS_INCORRECT | ID unique : "EA1" , "EA2" … |
| HeadlessMode = false dans l'EA | L'indicateur dessine des objets + alertes par instance EA | Mettre le parametre #20 a true |
| Lire shift = 0 avec AntiRepaint ON | EMPTY_VALUE toujours — bougie pas encore confirmee | Lire a shift >= 4 |
| AlertMode != 0 dans l'EA | Les popups Alert() bloquent l'execution du Testeur | Mettre le parametre #23 a 0 |
| Nom de fichier incorrect dans iCustom | INVALID_HANDLE | Utiliser le nom exact : "TriZone_Semafor" |
| Pas de IndicatorRelease dans OnDeinit | Fuite de memoire au rechargement de l'EA | Appeler IndicatorRelease(g_tzsHandle) |
