Guarda come scaricare robot di trading gratuitamente
Ci trovi su Facebook!
Unisciti alla nostra fan page
Script interessante?
Pubblica il link!
lasciare che altri lo valutino
Ti è piaciuto lo script? Provalo nel Terminale MetaTrader 5
Indicatori

Swing Detector by Pullback (Smart Money Concepts) - indicatore per MetaTrader 5

Sandro Begashvili
Sandro Begashvili
Sandro Begashvili - sviluppatore MQL5, MQL4, Python e Pine Script
Sviluppo programmi di trading per MetaTrader 4 e MetaTrader 5: expert advisor, indicatori personalizzati e pannelli grafici di trading. Descrivetemi la vostra idea e la trasformo in codice funzionante e documentato.
COSA SVILUPPO
| Italian English Русский 中文 Español Deutsch 日本語 Português 한국어 Français Türkçe
Visualizzazioni:
36
Valutazioni:
(2)
Pubblicato:
Freelance MQL5 Hai bisogno di un robot o indicatore basato su questo codice? Ordinalo su Freelance Vai a Freelance

Quasi tutti i metodi basati sulla struttura partono dalla stessa domanda: quali massimi e minimi contano davvero? Tutto ciò che viene dopo — struttura di mercato, BOS e CHoCH, blocchi di ordini, livelli di liquidità — si fonda su quell’unica risposta, quindi la definizione che scegli determina ciò che il resto della tua analisi rileva.


Esistono diversi modi comuni per rispondere a questa domanda. Il più noto è il modello a 3 candele (il frattale): una candela il cui massimo è superiore a entrambi i vicini è un massimo di oscillazione. È simmetrico, banale da calcolare ed è ciò che utilizzano la maggior parte degli indicatori di oscillazione. Altri ampliano la finestra a 5 o 7 candele, oppure filtrano i candidati in base a un movimento minimo in punti o all’ATR.

Questo indicatore utilizza una definizione diversa: la definizione di pullback utilizzata in Trading Hub 3.0. Anziché chiedersi se una candela sia più alta di quelle adiacenti, si verifica se il prezzo sia tornato indietro e abbia respinto quella candela. Un massimo diventa uno swing solo quando il mercato torna a scambiare al di sotto del minimo della candela che lo ha generato. Nulla è determinato dalla forma; tutto è determinato da ciò che il prezzo fa in seguito.


La differenza pratica: un frattale descrive la geometria, mentre un pullback descrive un evento. Poiché un pullback è un evento, indica anche quando lo swing è diventato valido — ed è proprio quel timestamp a rendere possibile un’implementazione senza repainting.

Come funziona la regola

Il rilevatore non cerca mai entrambi i lati contemporaneamente. Cerca un lato alla volta e conserva esattamente tre informazioni:

Stato Significato
Direzione quale lato viene attualmente cercato — alto o basso
Valore estremo rilevato il massimo più alto (o il minimo più basso) registrato finora nella fase corrente
Livello di riferimento il bordo opposto della candela che ha generato quel massimo o minimo

Il riferimento è la parte importante. Quando una candela stabilisce un nuovo massimo, quella stessa candela fornisce anche il livello che in seguito lo confermerà: il proprio minimo. Il prezzo deve tornare a passare attraverso quel minimo affinché il massimo sia valido.


Lettura della figura:

  • A — si apre una fase. Il massimo tracciato e il minimo di riferimento provengono entrambi da una singola candela.
  • B — ogni massimo successivo sostituisce entrambi i valori. Il massimo è ancora provvisorio; non viene tracciato nulla.
  • C — una candela viene infine scambiata al di sotto del minimo di riferimento. Questo è il pullback, e conferma il massimo tracciato come massimo di oscillazione.
  • D — la candela di conferma avvia immediatamente la ricerca di un minimo, in modo speculare: si tiene traccia del minimo più basso, il riferimento è il suo massimo, una rottura al rialzo lo conferma.

Poiché la conferma di un lato fa sempre capovolgere la ricerca verso l’altro, i massimi e i minimi di oscillazione si alternano automaticamente. Non esiste una regola separata che lo imponga né un confronto con le oscillazioni precedenti.

Le regole, candela per candela

Su ogni candela chiusa il rilevatore pone due domande indipendenti: questa candela ha raggiunto un nuovo estremo? E ha superato il riferimento? Sono possibili quattro combinazioni per ciascuna direzione.


# Tendenza attuale Candela attuale Azione 1 Azione 2
1 Alla ricerca di un MASSIMO Barra interna — nessun nuovo massimo, minimo di riferimento intatto nulla niente
2 Alla ricerca di un massimo Nuovo massimo, minimo di riferimento intatto massimo tracciato = massimo di questa candela minimo di riferimento = il minimo di questa candela
3 Alla ricerca di un MASSIMO — nessun nuovo massimo, ma le negoziazioni avvengono al di sotto del minimo di riferimento confermare il massimo tracciato come massimo di oscillazione passaggio al MINIMO: minimo tracciato = minimo di questa candela, massimo di riferimento = massimo di questa candela
4 Alla ricerca di un MASSIMO Barra esterna — nuovo massimo e superamento del minimo di riferimento confermare il massimo della candela stessa come massimo di oscillazione passa a MINIMO: minimo tracciato = minimo di questa candela, massimo di riferimento = massimo di questa candela
5 Alla ricerca di un MINIMO Barra interna — nessun nuovo minimo, massimo di riferimento intatto nulla nulla
6 Alla ricerca di un MINIMO Nuovo minimo, massimo di riferimento intatto minimo registrato = minimo di questa candela massimo di riferimento = il massimo di questa candela
7 Alla ricerca di un MINIMO Break — nessun nuovo minimo, ma le negoziazioni avvengono al di sopra del massimo di riferimento confermare il minimo tracciato come minimo di oscillazione passare al MASSIMO: massimo tracciato = massimo di questa candela, minimo di riferimento = minimo di questa candela
8 Alla ricerca di un MINIMO Barra esterna — nuovo minimo e superamento del massimo di riferimento confermare il minimo di questa candela come minimo di oscillazione passa a MASSIMO: massimo tracciato = massimo di questa candela, minimo di riferimento = minimo di questa candela

Le righe 1–4 e 5–8 sono speculari, motivo per cui l’intero motore è composto solo da poche decine di righe.

Il caso raro: una candela che rompe in entrambe le direzioni

Le righe 4 e 8 meritano una spiegazione a parte. Di solito una candela o estende il movimento o rompe il livello di riferimento. Una candela "outside bar" può fare entrambe le cose contemporaneamente: raggiunge un nuovo massimo e viene scambiata al di sotto del minimo di riferimento nella stessa candela.

Entrambe le regole la rivendicano, contraddicendosi a vicenda. Considerarla un’estensione significa ignorare una vera rottura; considerarla una rottura confermerebbe un massimo che proprio questa candela ha già superato.


La soluzione è considerare la candela come lo swing stesso:

  1. il suo massimo viene confermato come massimo dell’oscillazione — non il massimo precedente monitorato, che ha appena superato.
  2. La stessa candela avvia quindi la fase opposta: il minimo tracciato diventa il suo minimo e il riferimento diventa il suo massimo.

Quindi una singola candela porta con sé sia un massimo dello swing sia l’inizio del movimento al ribasso. Sul grafico questo appare come un indicatore sopra e sotto la stessa barra, con un movimento verticale tra di essi — che è esattamente ciò che è accaduto all’interno di quella candela.

This is also why the legs are drawn as trend-line objects rather than a DRAW_SECTION buffer. A section plot stores one value per bar and could not hold two points on the same candle.

Non viene ridisegnato

L’estremo tracciato è provvisorio e non viene mai disegnato. Uno swing viene riportato sul grafico solo sulla candela che lo conferma e, una volta riportato, non viene mai spostato, ricolorato o rimosso. Vengono valutate solo le candele chiuse; la candela in formazione viene ignorata completamente.

Il compromesso è onesto e vale la pena sottolinearlo: il ritardo di conferma. Lo swing più recente appare solo dopo la rottura che lo convalida. Se si desidera un indicatore nell’istante stesso in cui viene registrato un nuovo massimo, questo non è lo strumento giusto — quell’indicatore dovrebbe spostarsi in seguito, il che equivale a un ridisegno.

Dati di input

Rilevamento

Dati di input Predefinito Cosa fa
Inizia cercando Cerca un massimo di oscillazione Da quale lato cerca la primissima fase. Influisce solo sulle barre più vecchie del grafico; dopo la prima conferma, la direzione è determinata interamente dalle rotture. Non modificarlo a meno che il primo swing nella tua cronologia non sembri errato.
Rottura confermata da Wick Wick utilizza il massimo/minimo della candela — la regola letterale di Trading Hub, nonché l’impostazione più sensibile. Close richiede che la candela chiuda oltre il livello di riferimento, il che ignora le singole oscillazioni delle ombre e produce swing notevolmente meno frequenti ma più ampi.

Come scegliere: inizia con "Wick". Se stai lavorando su M1–M15, o su un simbolo con wick lunghi e rumorosi come l’oro o un CFD su indici, passa a "Close": elimina la maggior parte degli swing causati da un singolo picco senza modificare la logica in nessun altro punto. Un timeframe più ampio è l’altro modo per ottenere una struttura più ampia; la regola stessa non ha impostazioni di sensibilità o periodo da regolare.

Visualizzazione

Input Predefinito Cosa fa
Disegna gli indicatori di swing true Attiva o disattiva le frecce. In entrambi i casi i buffer rimangono pieni, quindi iCustom continua a restituire ogni oscillazione.
Codice freccia — oscillazione alta / bassa 217 / 218 Codici Wingdings. Alternative comuni:234/233,241/242, 159 per i punti.
Distanza delle frecce dalla barra 10 Spazio in pixel tra la candela e la relativa freccia. Aumentarlo su grafici molto densi.
Disegna i tratti tra gli swing true La linea a zig-zag tratteggiata che collega gli swing consecutivi. Disattivala se hai già attivato una linea a zig-zag.
Colore / stile / larghezza dei tratti argento, tratteggiato, 1 Aspetto dei tratti di collegamento.

Disattivando sia gli indicatori che le linee si ottiene un'istanza puramente computazionale — utile quando un EA legge i buffer e non si desidera visualizzare nulla sul grafico.

Avvisi

Input Predefinito Cosa fa
Avviso a comparsa su uno swing confermato false Finestra popup nel terminale quando viene confermato uno swing.
Notifica push in caso di swing confermato false Notifica push all'ID MetaQuotes impostato in Strumenti → Opzioni → Notifiche.

Gli avvisi si attivano solo con gli aggiornamenti in tempo reale, mai mentre l'indicatore carica la cronologia, e solo una volta per ogni swing.

Utilizzo da un EA

Due buffer, entrambi non vuoti solo in presenza di swing confermati (il valore vuoto è 0,0):

Buffer Contenuto
0 prezzo di un massimo di oscillazione confermato
1 prezzo di un minimo oscillatorio confermato
int h = iCustom(_Symbol, _Period, "SMC_Pullback");
double buf[];
CopyBuffer(h, 0, 0, 100, buf);   // massimi di oscillazione

Il motore di rilevamento risiede in un'unica classe autonoma, CPullbackDetector, senza dipendenze da grafici o buffer: accetta gli array dei prezzi e segnala gli swing confermati, quindi può essere copiato direttamente in un EA se si preferisce non passare attraverso iCustom.

Cosa non fa deliberatamente

Questo indicatore si limita a individuare i punti di swing. Non etichetta HH/HL/LH/LL e non ricava BOS, CHoCH, IDM, blocchi di ordini o livelli di liquidità. Si tratta di passaggi separati che richiedono innanzitutto una serie affidabile di swing — ed è esattamente ciò che questo indicatore fornisce.


Il progetto è supportato su MQL5 Algo Forge. È possibile trovare il codice e i prossimi aggiornamenti al link sottostante.

Il repository è disponibile qui: https://forge.mql5.io/SandroBegashvil/SMC-Pullback-CodeBase

Tradotto dall’inglese da MetaQuotes Ltd.
Codice originale https://www.mql5.com/en/code/76451

One-Click Trade Manager — risk-based lot size with entry, stop and target in one click One-Click Trade Manager — risk-based lot size with entry, stop and target in one click

Works out the lot from your risk percent and the stop distance, then opens the trade with the stop loss and take profit already attached. Never trades by itself.

RegimeRouter — trend/range classifier with a per-regime win rate ledger RegimeRouter — trend/range classifier with a per-regime win rate ledger

Classifies the market with ADX, the Hurst exponent and lag-1 autocorrelation, routes each bar to a breakout module or a mean-reversion module, and keeps a separate win rate ledger for each regime with a Wilson 95% lower bound, so you can see which half of it is actually working.

PropFirm Equity Protector - Institutional Risk Manager (Open Source) PropFirm Equity Protector - Institutional Risk Manager (Open Source)

EA professionale per la gestione del rischio delle società di trading. Offre il monitoraggio giornaliero del capitale, misure graduali di mitigazione delle posizioni in perdita e stop assoluti e rigidi tramite un dashboard grafico con funzionalità di autoriparazione.

Session Candle Counter: candles numbered from the cash open, DST aware Session Candle Counter: candles numbered from the cash open, DST aware

Numbers every candle of the current trading day starting at the cash open of Frankfurt, London, New York or Tokyo. The anchor is converted from exchange local time to broker server time with automatic daylight saving, so the first candle after the open is always number one, in summer and in winter.