Disponibile su MQL5 Market: Supply Demand RSJ PRO
Avviso sui rischi. Il trading comporta il rischio di perdite. Questo indicatore segna zone di prezzo sul grafico; non prevede il mercato, non piazza operazioni e non garantisce alcun risultato. Usalo insieme alla tua analisi e alla tua gestione del rischio, ed esegui prima i test su un conto demo.

Supply Demand RSJ PRO disegna zone di offerta e domanda (supply / demand) costruite a partire da massimi e minimi di swing, classifica ogni zona in cinque gradi (weak, strong, verified, proven, turncoat), conta quante volte il prezzo l'ha ritestata, inverte le zone rotte una volta e rimuove quelle rotte due volte. Le zone sovrapposte possono essere unite, ogni zona può avere un'etichetta di testo e un avviso può scattare quando il prezzo entra in una zona. Funziona su qualsiasi simbolo, qualsiasi broker e qualsiasi timeframe. Non apre operazioni.
1. Installazione e avvio rapido
- Acquista o noleggia l'indicatore sul MQL5 Market e installalo dalla scheda Market del terminale (Toolbox → Market → Purchased → Install).
- Apri un grafico e trascinaci sopra Supply Demand RSJ PRO dal Navigatore (Indicators → Market).
- Mantieni i parametri predefiniti o modificali (sezione 11) e premi OK.
L'indicatore analizza le ultime 3000 barre (parametro NUM CANDLES FOR ANALYSIS) e ricostruisce tutte le zone al primo tick di ogni nuova barra; se lo storico non è ancora pronto, riprova ai tick successivi. Con Show Labels? attivo (predefinito), viene attivato lo spostamento del grafico (chart shift) in modo che le etichette abbiano spazio a destra dell'ultima barra; se prima era disattivato, viene disattivato di nuovo quando l'indicatore viene rimosso (a meno che un'altra copia sia ancora sul grafico).
Avvio rapido
- Leggi il grado sull'etichetta: le zone Proven e Verified hanno già retto dei retest, le zone Strong provengono da uno swing principale mai ritestato, le zone Weak da uno swing minore, le zone Turncoat sono state rotte una volta e hanno cambiato lato.
- Il colore predefinito delle etichette è il nero. Su un grafico scuro, modifica Labels Font Color (ad esempio in bianco o argento).
- Per un grafico più pulito, disattiva prima Show Weak Zones?.
- Per essere avvisato quando il prezzo entra in una zona, imposta Trigger Alert When Enter Zone? (sezione 10).

2. Legenda del grafico
| Sul grafico | Significato |
|---|---|
| Rettangolo pieno sopra il prezzo (cremisi / marrone / orchidea / blu-violetto) | Zona di offerta (supply). Colore per grado: Verified cremisi, Proven marrone, Strong orchidea, Weak blu-violetto. |
| Rettangolo pieno sotto il prezzo (verde / blu reale / verde oliva / blu fiordaliso) | Zona di domanda (demand). Colore per grado: Verified verde, Proven blu reale, Strong verde oliva, Weak blu fiordaliso. |
| Rettangolo pieno arancione scuro | Zona turncoat ("broken"): rotta una volta, ora agisce sul lato opposto (ex offerta come domanda, o viceversa). |
| Testo come Verified Demand Zone, Retests = 2 | Etichetta della zona (opzionale), disegnata a destra dell'ultima barra, nel terzo superiore della zona. |
Ogni rettangolo inizia alla barra dello swing che lo ha creato e termina alla barra corrente. Passa il mouse su un rettangolo per leggerne il tooltip, ad esempio SDRSJ#123456#S4 Type = Verified, Test Count = 2 (S = domanda, R = offerta). Tutti gli oggetti dell'indicatore iniziano con SDRSJ# seguito da un numero diverso per ogni copia dell'indicatore, e sono disegnati sullo sfondo, dietro le candele.
3. Come compaiono le zone

- Le zone vengono disegnate attorno ai punti di svolta del mercato (massimi e minimi di swing) trovati nelle ultime NUM CANDLES FOR ANALYSIS barre.
- Un punto di svolta viene confermato solo dopo che alcune barre si sono chiuse alla sua destra, quindi una nuova zona compare qualche barra dopo la svolta, mai sulla barra in formazione.
- Con Extend Zones? attivo, la zona copre un po' più dello stoppino della barra di svolta.
- ATR Factor rende le zone più ampie o più strette; i fattori frattali stabiliscono quanto deve essere ampia una svolta per creare una zona (sezione 11).
4. Gradi delle zone

| Grado (etichetta) | Significato | Colore predefinito (offerta / domanda) | Parametro di filtro |
|---|---|---|---|
| Weak (debole) | Zona di una svolta minore, mai ritestata. | Blu-violetto / Blu fiordaliso | Show Weak Zones? |
| Strong (forte) | Zona di una svolta principale, mai ritestata e mai rotta — una zona untested (non testata). | Orchidea / Verde oliva | Show Untested Zones? |
| Verified (verificata) | Da 1 a 3 retest. | Cremisi / Verde | sempre visibile |
| Proven (comprovata) | 4 o più retest. | Marrone / Blu reale | sempre visibile |
| Turncoat (voltagabbana) | Rotta una volta e passata al lato opposto, nessun retest dopo la rottura. | Arancione scuro / Arancione scuro | Show Broken Zones? |
Una zona che si è invertita e poi è stata ritestata torna a essere Verified o Proven. Una zona recente può apparire prima come Weak e diventare Strong in seguito, quando la sua svolta viene confermata come principale. I gradi vengono aggiornati a ogni nuova barra.
5. Retest, rotture e zone turncoat

Retest. Un retest viene contato quando il prezzo, in seguito, svolta di nuovo all'interno della zona, sul lato su cui la zona agisce.
Rottura. Una zona di offerta è rotta quando una barra successiva scambia sopra il suo top (massimo sopra il top); una zona di domanda quando una barra scambia sotto il suo bottom. Gli stoppini contano.
- Una zona weak viene rimossa alla prima rottura.
- Una zona strong, verified o proven rotta una volta si inverte: diventa una zona turncoat sul lato opposto (una zona di offerta rotta ora viene letta come domanda, e viceversa) e il suo conteggio dei retest riparte da 0.
- Una seconda rottura senza un retest nel mezzo rimuove la zona. Un retest dopo l'inversione azzera questa condizione, quindi un livello ben rispettato può invertirsi più di una volta.
Le zone turncoat sono disegnate in arancione scuro (etichetta Turncoat) finché non vengono ritestate sul loro nuovo lato.
6. Offerta o domanda?
Il fatto che una zona venga disegnata come offerta o come domanda dipende da dove si trova ora il prezzo rispetto alla zona, non dalla svolta che l'ha creata: una zona sotto il prezzo viene letta come domanda, una zona sopra il prezzo come offerta. Quando il prezzo attraversa una zona, il suo lato può quindi cambiare alcune barre dopo.
7. Unione delle zone sovrapposte

Con Merge Zones? attivo (predefinito), le zone che si sovrappongono vengono unite in un'unica zona più ampia; i conteggi dei retest vengono combinati e l'etichetta mostra il grado risultante.
Disattiva l'opzione per vedere ogni zona di swing separatamente.
8. Etichette
Con Show Labels? attivo, ogni zona visibile riceve un'etichetta di testo: grado + lato, più il conteggio dei retest per le zone verified e proven, ad esempio:
- Weak Supply Zone
- Strong Demand Zone
- Verified Supply Zone, Retests = 2
- Proven Demand Zone, Retests = 5
- Turncoat Demand Zone
Le etichette usano il font Courier New, Labels Font Size (predefinito 9) e Labels Font Color (predefinito nero). Vengono posizionate circa due barre a destra della barra corrente; per questo l'indicatore attiva lo spostamento del grafico.
9. Colori

I colori delle zone si impostano nella scheda Colors delle proprietà dell'indicatore (non nella scheda Inputs). Ogni voce corrisponde a un grado e a un lato:
| Voce della scheda Colors | Usata per | Predefinito |
|---|---|---|
| Broken Supply Zone | Zona turncoat mostrata come offerta | Arancione scuro |
| Proven Supply Zone | Offerta proven | Marrone |
| Verified Supply Zone | Offerta verified | Cremisi |
| Strong Supply Zone | Offerta strong (non testata) | Orchidea |
| Weak Supply Zone | Offerta weak | Blu-violetto |
| Weak Demand Zone | Domanda weak | Blu fiordaliso |
| Strong Demand Zone | Domanda strong (non testata) | Verde oliva |
| Verified Demand Zone | Domanda verified | Verde |
| Proven Demand Zone | Domanda proven | Blu reale |
| Broken Demand Zone | Zona turncoat mostrata come domanda | Arancione scuro |
Viene usato solo il colore; stile e spessore non hanno effetto. I rettangoli sono pieni e disegnati sullo sfondo.
10. Avvisi

| Parametro | Scatta quando | Messaggio |
|---|---|---|
| Trigger Alert When Enter Zone? | il Bid corrente entra in una zona visibile (bottom ≤ prezzo < top) | Entered into Demand Zone. oppure Entered into Supply Zone. |
Modalità: NONE (predefinita, nessun avviso), POPUP, SOUND, NOTIFICATION (push sullo smartphone), POPUP_SOUND, NOTIFICATION_SOUND, POPUP_NOTIFICATION, POP_SOUND_NOTIFICATION. Trigger Alert Sound Type seleziona uno dei 13 suoni del terminale (predefinito alert).
Il testo include il prodotto, il simbolo e il timeframe, ad es. RSJ Supply Demand PRO: EURUSD | PERIOD_H1 | Entered into Demand Zone.
Con quale frequenza scatta:
- Il controllo viene eseguito a ogni tick. L'avviso scatta una volta, quando il prezzo entra in una zona; non viene ripetuto finché il prezzo resta all'interno. Dopo che il prezzo è uscito dalla zona, un nuovo ingresso può farlo scattare di nuovo.
- Dopo un avviso, gli ingressi vengono ignorati finché non sono trascorsi, secondo l'orologio, Delay between alerts (seconds) (predefinito 180) da quell'avviso. Un ingresso che avviene durante l'attesa viene saltato, non inviato più tardi.
- Un avviso riguarda una zona (la prima zona trovata in cui il prezzo è appena entrato).
- Vengono controllate solo le zone visibili: i gradi nascosti dai filtri Show ... Zones? non generano avvisi.
- Nessun avviso viene inviato quando l'indicatore viene applicato con il prezzo già dentro una zona, né quando una zona compare attorno al prezzo durante un ricalcolo (ad esempio un nuovo swing o un'unione).
Le notifiche push richiedono il MetaQuotes ID in Tools → Options → Notifications. Le modalità sonore riproducono il suono senza mettere in pausa l'indicatore. Lo Strategy Tester non mostra pop-up, suoni o notifiche.
11. Parametri di input
Le intestazioni seguenti sono le righe di separazione della scheda Inputs (non hanno alcun valore da impostare).
ZONES_VIEW_CONFIG
| Parametro | Predefinito | Descrizione |
|---|---|---|
| Show Weak Zones? | true | Mostra le zone Weak. |
| Show Untested Zones? | true | Mostra le zone Strong (non testate). |
| Show Broken Zones? | true | Mostra le zone Turncoat. |
| Merge Zones? | true | Unisce le zone sovrapposte (sezione 7). |
| Extend Zones? | true | La zona copre un po' più dello stoppino della barra di svolta (sezione 3). |
Le zone Verified e Proven sono sempre visibili.
ZONES_CALC_CONFIG
| Parametro | Predefinito | Descrizione |
|---|---|---|
| NUM CANDLES FOR ANALYSIS | NUM_CANDLES_3000 | Barre in cui si cercano le zone: da NUM_CANDLES_500 a NUM_CANDLES_5000, a passi di 500. |
| ATR Period | 7 | Adatta la dimensione delle zone alla volatilità recente del simbolo. |
| ATR Factor | 0.75 | Valori più alti danno zone più ampie e più unioni. |
| Fast Fractal Factor | 3.0 | Ampiezza delle svolte minori che creano zone: valori più alti mantengono solo le svolte più ampie. |
| Slow Fractal Factor | 8.0 | Ampiezza delle svolte principali (grado Strong): valori più alti mantengono solo le svolte più ampie. |
I fattori frattali vengono usati come numeri interi (3,5 vale come 3; i valori inferiori a 1 valgono come 1).
ZONES_LABEL_CONFIG
| Parametro | Predefinito | Descrizione |
|---|---|---|
| Show Labels? | true | Disegna le etichette di testo e attiva lo spostamento del grafico. |
| Labels Font Color | Black | Colore delle etichette. |
| Labels Font Size | 9 | Dimensione del font delle etichette. |
ALERT_CONFIG
| Parametro | Predefinito | Descrizione |
|---|---|---|
| Trigger Alert When Enter Zone? | NONE | Modalità di avviso (sezione 10). |
| Trigger Alert Sound Type | alert | alert, alert2, connect, disconnect, email, expert, news, ok, request, stops, tick, timeout, wait. |
| Delay between alerts (seconds) | 180 | Intervallo minimo tra due avvisi, in secondi misurati dall'orologio. |
12. Buffer per Expert Advisor / dashboard
L'indicatore espone 8 buffer che possono essere letti con iCustom + CopyBuffer . Sono nascosti nella Finestra dei dati. I buffer 0-3 vengono scritti quando le zone vengono ricostruite a una nuova barra; i buffer 4-7 vengono aggiornati a ogni tick.
| Buffer | Contenuto | Valori | Vuoto |
|---|---|---|---|
| 0 | Minimo di swing lento | prezzo minimo sulla barra di un minimo di swing lento (principale) confermato | 0 |
| 1 | Massimo di swing lento | prezzo massimo sulla barra di un massimo di swing lento confermato | 0 |
| 2 | Minimo di swing veloce | prezzo minimo sulla barra di un minimo di swing veloce (minore) confermato | 0 |
| 3 | Massimo di swing veloce | prezzo massimo sulla barra di un massimo di swing veloce confermato | 0 |
| 4 | Zona più vicina sopra - top | top della zona visibile più vicina interamente sopra il Bid (quella con il bottom più basso) | 0 |
| 5 | Zona più vicina sopra - bottom | bottom della stessa zona del buffer 4 | 0 |
| 6 | Zona più vicina sotto - top | top della zona visibile più vicina interamente sotto il Bid (quella con il top più alto) | 0 |
| 7 | Zona più vicina sotto - bottom | bottom della stessa zona del buffer 6 | 0 |
Note sui buffer 4-7:
- Vengono scritti sulla barra 0 a ogni tick, con il Bid corrente. Lo shift 1 conserva l'ultimo valore della barra precedente; le barre più vecchie valgono 0 .
- "Sopra" e "sotto" si misurano rispetto ai bordi della zona, non al suo lato: la zona sopra il prezzo è di solito di offerta, ma può essere una zona di domanda che il prezzo ha appena lasciato verso il basso (sezione 6). Vengono considerate solo le zone interamente sopra o interamente sotto il prezzo: una zona che contiene il prezzo non viene riportata, e i buffer mostrano la zona successiva oltre di essa.
- Vengono considerate solo le zone visibili (si applicano i filtri Show ... Zones?).
- 0 significa "nessuna zona di questo tipo", in tutti e quattro i buffer.
I buffer di swing 0-3 valgono 0 sulle ultime barre: una svolta è nota solo dopo essere stata confermata.
Caricamento. La versione Market viene installata in MQL5\Indicators\Market\ ; verifica il nome esatto del file nel Navigatore. Senza parametri dopo il nome vengono usati i valori predefiniti. Per modificare i parametri, passali nell'ordine della sezione 11. Anche ogni riga di separazione (ZONES_VIEW_CONFIG, ZONES_CALC_CONFIG, ZONES_LABEL_CONFIG, ALERT_CONFIG) è un parametro: passa una stringa vuota "" al suo posto, altrimenti tutti i valori successivi slittano. NUM CANDLES FOR ANALYSIS si passa come numero: 0 = 500, 1 = 1000 … 5 = 3000 … 9 = 5000. I parametri omessi alla fine mantengono i valori predefiniti.
```mql5 // "" = ZONES_VIEW_CONFIG, then show weak = false int h = iCustom(_Symbol, PERIOD_H1, "Market\Supply Demand RSJ PRO", "", false);
double up_top[1], up_bot[1], dn_top[1], dn_bot[1]; if (BarsCalculated(h) > 0) { if (CopyBuffer(h, 4, 0, 1, up_top) == 1 && CopyBuffer(h, 5, 0, 1, up_bot) == 1 && up_top[0] != 0.0) Print("nearest zone above ", up_bot[0], " - ", up_top[0]); if (CopyBuffer(h, 6, 0, 1, dn_top) == 1 && CopyBuffer(h, 7, 0, 1, dn_bot) == 1 && dn_top[0] != 0.0) Print("nearest zone below ", dn_bot[0], " - ", dn_top[0]); } ```
Note: un indicatore creato con iCustom disegna le sue zone ed etichette sul grafico del programma chiamante, con nomi di oggetto propri, quindi non cancella le zone di una copia applicata manualmente; le zone non possono essere disattivate, solo le etichette (Show Labels? = false). Attendi che BarsCalculated(h) > 0 prima della prima lettura (lo storico potrebbe essere ancora in caricamento). Il grado, il lato e il conteggio dei retest di una zona non sono disponibili nei buffer — solo sul grafico (etichette e tooltip).
13. Gratuito vs PRO
Il gratuito Supply Demand RSJ Zones disegna lo stesso tipo di zone con impostazioni fisse.
| Supply Demand RSJ Zones (gratuito) | Supply Demand RSJ PRO | |
|---|---|---|
| Gradi | 2: strong (colore pieno) e weak (sbiadito) | 5: weak, strong, verified, proven, turncoat |
| Etichette con grado e conteggio dei retest | — | sì |
| Filtro per grado | — | weak / untested / turncoat |
| Opzioni di unione ed estensione | sempre attive | attivabili / disattivabili |
| Barre analizzate | 300-1500 (predefinito 1000) | 500-5000 (predefinito 3000) |
| Impostazioni ATR e frattali | fisse | regolabili |
| Colori | colore di offerta e di domanda, tonalità weak automatica | 10 colori (grado × lato) |
| Avvisi | — | pop-up, suono, push |
| Buffer | 8 (stessa struttura); offerta più vicina sopra / domanda più vicina sotto, 0 se assente | 8; zona più vicina interamente sopra / sotto, 0 se assente (sezione 12) |
14. Consigli
- Meno confusione: disattiva Show Weak Zones?; poi Show Untested Zones? per mantenere solo le zone che hanno già retto un retest (più le turncoat).
- Zone più ampie o più strette: aumenta o diminuisci ATR Factor. Le zone più ampie si uniscono anche più spesso.
- Solo livelli principali: aumenta Fast Fractal Factor in modo che solo gli swing più ampi creino zone.
- Contesto del timeframe superiore: apri l'indicatore su H4 o D1 accanto al tuo grafico operativo; le zone di un timeframe superiore non vengono disegnate su uno inferiore.
- Grafico scuro: imposta Labels Font Color su un colore chiaro.
- Velocità: 5000 barre su molti grafici possono rallentare il terminale a ogni nuova barra; di solito 1000-3000 barre sono sufficienti.
- Più copie su un grafico: ogni copia usa nomi di oggetto propri, quindi due o più copie con impostazioni diverse possono funzionare sullo stesso grafico senza cancellare le zone delle altre. Attiva l'avviso su una sola copia per evitare duplicati.
15. Domande e risoluzione dei problemi
- Ridisegna (repaint)? Gli swing vengono confermati su barre chiuse e non vengono mai spostati. Le zone, invece, vengono ricostruite dallo storico a ogni nuova barra: una zona compare solo quando la sua svolta è confermata, il suo grado può cambiare (Weak → Strong quando lo swing lento viene confermato, altri retest, un'inversione) e viene rimossa quando è rotta due volte. La barra in formazione non viene usata per le zone finché non si apre la barra successiva; l'avviso e i buffer 4-7 seguono il Bid in tempo reale.
- Non vedo le etichette. Controlla Show Labels? e Labels Font Color: le etichette nere sono invisibili su un grafico nero.
- Una zona è passata da offerta a domanda. Il prezzo ha chiuso oltre la zona ed è diventata una zona turncoat, oppure il prezzo si è spostato sull'altro lato della zona (sezione 6).
- Una zona è scomparsa. È stata rotta una seconda volta senza retest, oppure una zona weak è stata rotta una volta, oppure è più vecchia di NUM CANDLES FOR ANALYSIS, oppure il suo grado è filtrato.
- Perché manca una zona strong vicino alle ultime barre? Una svolta principale richiede più barre chiuse per essere confermata; fino ad allora la zona è Weak — nascosta se Show Weak Zones? è disattivato.
- Con quale frequenza arrivano gli avvisi? Una volta per ogni ingresso in una zona, non finché il prezzo resta all'interno, e mai a distanza inferiore a Delay between alerts (seconds) (sezione 10). Aumenta l'attesa per ricevere meno avvisi sui timeframe brevi.
- Il prezzo è dentro una zona ma non c'è stato alcun avviso. Il prezzo era già dentro quando l'indicatore è stato applicato, la zona è comparsa attorno al prezzo durante un ricalcolo, l'ingresso è avvenuto durante l'attesa dopo l'avviso precedente, oppure la zona è nascosta da un filtro Show ... Zones? (le zone nascoste non generano avvisi).
- Strategy Tester. Funziona in modalità visuale e non visuale; pop-up, suoni e notifiche non vengono inviati nel tester.
Supporto: invia un messaggio privato all'autore su MQL5.


