TriZone Semafor
- Indicatori
-
Ahmed Hamed Hamed Eadwan
ITALIAN TRANSLATION — ITALIANO
================================
TITLE:
Sviluppatore MQL5 e Trader | Fondatore di R protocols
ABOUT:
Ciao, sono Ahmed — un trader e sviluppatore MQL5 basato negli
Emirati Arabi Uniti, e fondatore di R protocols. - Versione: 1.0
Se avete mai fissato un grafico ricoperto di frecce ZigZag chiedendovene quali contassero davvero — questo indicatore e stato costruito proprio per quella frustrazione.
TriZone Semafor esegue tre algoritmi ZigZag indipendenti simultaneamente: Veloce (Period 5), Medio (Period 13) e Lento (Period 34). Quando rilevano pivot sulla stessa candela, sopravvive solo il segnale piu significativo. Il livello 3 sovrascrive sempre il livello 2. Il livello 2 sovrascrive sempre il livello 1. Una freccia pulita per candela per direzione — nessuna sovrapposizione, nessun doppio conteggio.
Perche tre livelli invece di uno
Uno ZigZag semplice tratta tutte le oscillazioni allo stesso modo. Lo stesso indicatore segna un ritracciamento di due candele e un grande inversione di tendenza con frecce identiche. TriZone classifica ogni pivot per significativita, cosi da leggere la gerarchia del grafico a colpo d'occhio.
- Livello 1 — Veloce: Piccoli ritracciamenti e pivot minori. La struttura dentro la struttura.
- Livello 2 — Medio: Oscillazioni intraday e reazioni significative. I pivot che annotate nel vostro diario di trading.
- Livello 3 — Lento: Grandi svolte strutturali. I punti in cui il proseguimento del trend e genuinamente in discussione.
Ogni livello ha la propria forma e colore di freccia, cosi da vedere la gerarchia istantaneamente, senza consultare una legenda.
Sistema di segnali esclusivi
Ogni candela passa attraverso una regola: se un livello superiore rivendica un pivot su quella candela, tutte le rivendicazioni dei livelli inferiori vengono rimosse — non nascoste, rimosse. Questo avviene nel buffer dell'indicatore prima che qualsiasi cosa raggiunga il grafico. Il grafico riflette lo stato reale, non una sovrapposizione a strati.
Modalita anti-repaint
Con AntiRepaint = ON, un segnale viene disegnato solo dopo che il numero configurato di candele di conferma e trascorso. La freccia che vedete ha gia superato la sua finestra di stabilita e non si spostera. L'indicatore mostra la modalita attuale e la profondita di conferma nella barra del titolo del grafico — piena trasparenza su state leggendo.
Con AntiRepaint = OFF, i segnali appaiono immediatamente sulla candela in formazione. Utile come riferimento visivo. Non raccomandato per la logica automatizzata.
Sistema di avvisi
Gli avvisi vengono messi in coda durante il calcolo e consegnati solo dopo che il filtro di esclusivita conferma che il segnale e sopravvissuto. Non riceverete mai un popup per un segnale di livello 1 sovrascritto dal livello 3 un istante dopo. Un pivot confermato — un avviso. Configurabile per livello indipendentemente.
Cosa e incluso
- Tre livelli di rilevamento ZigZag con parametri completamente indipendenti
- Priorita esclusiva dei segnali a livello di buffer — il livello piu alto vince per candela
- Avvisi popup solo su pivot confermati — nessun segnale fantasma
- Modalita anti-repaint con candele di conferma configurabili per livello
- Qualsiasi simbolo, qualsiasi timeframe — MetaTrader 5
- File singolo — zero dipendenze esterne, nessuna DLL, nessun include personalizzato
Punto di partenza consigliato
Aprite H1 o H4 con i parametri predefiniti. Le profondita predefinite 5 / 13 / 34 seguono la sequenza standard di Fibonacci — una scelta naturale per la maggior parte degli strumenti e dei timeframe.
I pivot del livello 3 sono il vostro riferimento strutturale. Il livello 2 sono i vostri punti di riferimento intraday. Il livello 1 mostra la struttura minore tra di essi. Regolate la profondita (Period) e le candele di conferma (ConfirmBars) sul vostro stile.
Compatibilita
MetaTrader 5 — qualsiasi broker, qualsiasi simbolo, qualsiasi timeframe. Nessuna libreria esterna. Nessuna importazione DLL. File .ex5 singolo, completamente autonomo.
Referenza iCustom — TriZone_Semafor
Buffer di uscita
Solo il livello attivo piu alto e non vuoto per candela.
EMPTY_VALUE = nessun pivot su quella barra/livello.
Con AntiRepaint ON, leggete a shift >= max(ConfirmBars1, ConfirmBars2, ConfirmBars3) — predefinito: shift >= 4.
| Buffer | Indice | Segnale | Contenuto |
|---|---|---|---|
| BufLow1 | 0 | BUY | Prezzo pivot basso livello 1 — ZigZag veloce |
| BufHigh1 | 1 | SELL | Prezzo pivot alto livello 1 — ZigZag veloce |
| BufLow2 | 2 | BUY | Prezzo pivot basso livello 2 — ZigZag medio |
| BufHigh2 | 3 | SELL | Prezzo pivot alto livello 2 — ZigZag medio |
| BufLow3 | 4 | BUY | Prezzo pivot basso livello 3 — ZigZag lento |
| BufHigh3 | 5 | SELL | Prezzo pivot alto livello 3 — ZigZag lento |
Parametri di input
# = posizione nella chiamata iCustom() (da 0, dopo Symbol / Period / FileName)
| # | Nome | Tipo | Predefinito | Intervallo | Descrizione |
|---|---|---|---|---|---|
| LIVELLO 1 — ZigZag Veloce | |||||
| 0 | Period1 | int | 5 | 2-500 | Profondita di ricerca pivot (barre) |
| 1 | Deviation1 | int | 1 | 1-100 | Deviazione minima in punti |
| 2 | Backstep1 | int | 3 | 1-(P-1) | Barre min. tra pivot consecutivi |
| 3 | HighSymbol1 | int | 159 | Wingdings | Freccia per massimi (159=punto, 108=cerchio, 116=diamante) |
| 4 | LowSymbol1 | int | 159 | Wingdings | Freccia per minimi |
| 5 | ConfirmBars1 | int | 2 | 1-50 | Barre di conferma prima di fissare il segnale |
| LIVELLO 2 — ZigZag Medio | |||||
| 6 | Period2 | int | 13 | 2-500 | Profondita di ricerca pivot |
| 7 | Deviation2 | int | 8 | 1-100 | Deviazione minima in punti |
| 8 | Backstep2 | int | 5 | 1-(P-1) | Barre min. tra pivot consecutivi |
| 9 | HighSymbol2 | int | 108 | Wingdings | Freccia per massimi |
| 10 | LowSymbol2 | int | 108 | Wingdings | Freccia per minimi |
| 11 | ConfirmBars2 | int | 3 | 1-50 | Barre di conferma |
| LIVELLO 3 — ZigZag Lento | |||||
| 12 | Period3 | int | 34 | 2-500 | Profondita di ricerca pivot |
| 13 | Deviation3 | int | 21 | 1-100 | Deviazione minima in punti |
| 14 | Backstep3 | int | 12 | 1-(P-1) | Barre min. tra pivot consecutivi |
| 15 | HighSymbol3 | int | 108 | Wingdings | Freccia per massimi |
| 16 | LowSymbol3 | int | 108 | Wingdings | Freccia per minimi |
| 17 | ConfirmBars3 | int | 4 | 1-50 | Barre di conferma |
| GESTIONE ISTANZA | |||||
| 18 | InstanceID | string | "A" | qualsiasi | Tag unico — deve differire da qualsiasi copia sul grafico |
| 19 | DebugMode | ENUM_ONOFF | OFF (0) | 0 / 1 | Stampa diagnostica nel Journal |
| 20 | HeadlessMode | ENUM_ONOFF | OFF (0) | 0 / 1 | Impostare 1 (ON) quando si usa tramite iCustom — sopprime tutta l'interfaccia e gli avvisi |
| ANTI-REPAINT | |||||
| 21 | AntiRepaint | ENUM_ONOFF | ON (1) | 0 / 1 | ON = solo segnali confermati — necessario per logica EA stabile |
| 22 | SafeArrows | ENUM_ONOFF | OFF (0) | 0 / 1 | ON = le frecce usano lo spostamento retroattivo completo (piu rigido) |
| SISTEMA DI AVVISI | |||||
| 23 | AlertMode | ENUM_ALERT_MODE | 1 (Popup) | 0-3 | 0=Nessuno 1=Popup 2=Push 3=Tutti — impostare 0 dentro l'EA |
| 24 | AlertLevel1 | ENUM_ONOFF | OFF (0) | 0 / 1 | Avviso su pivot livello 1 |
| 25 | AlertLevel2 | ENUM_ONOFF | ON (1) | 0 / 1 | Avviso su pivot livello 2 |
| 26 | AlertLevel3 | ENUM_ONOFF | ON (1) | 0 / 1 | Avviso su pivot livello 3 |
Totale: 27 parametri (indici 0-26)
Esempio codice iCustom
int g_tzsHandle = INVALID_HANDLE; int OnInit() { g_tzsHandle = iCustom( _Symbol, PERIOD_CURRENT, "TriZone_Semafor", 5, 1, 3, 159, 159, 2, // Livello 1 13, 8, 5, 108, 108, 3, // Livello 2 34, 21, 12, 108, 108, 4, // Livello 3 "EA1", false, true, // Istanza + Headless true, false, // AntiRepaint + SafeArrows 0, false, false, false // Avvisi OFF ); if(g_tzsHandle == INVALID_HANDLE) { PrintFormat("[EA] handle failed: err=%d", GetLastError()); return INIT_FAILED; } return INIT_SUCCEEDED; }
Errori comuni
| Errore | Sintomo | Correzione |
|---|---|---|
| Stessa InstanceID della copia sul grafico | INIT_PARAMETERS_INCORRECT | ID unico: "EA1" , "EA2" … |
| HeadlessMode = false nell'EA | L'indicatore disegna oggetti + avvisi per ogni istanza EA | Impostare parametro #20 su true |
| Leggere shift = 0 con AntiRepaint ON | EMPTY_VALUE sempre — candela non ancora confermata | Leggere a shift >= 4 |
| AlertMode != 0 dentro l'EA | I popup Alert() bloccano l'esecuzione del Tester | Impostare parametro #23 su 0 |
| Nome file errato in iCustom | INVALID_HANDLE | Usare nome esatto: "TriZone_Semafor" |
| Nessun IndicatorRelease in OnDeinit | Perdita di memoria al ricaricamento EA | Chiamare IndicatorRelease(g_tzsHandle) |
