Trading Window and Spread Guard MT4
- Utilità
-
Kazuma Uezono
MQL5 / MQL4 / Pine Script v6 developer and active trader.
Seller on the MQL5 Market (indicators for MT4/MT5).
Services:
- TradingView Pine Script to MT5/MT4 conversion (bar-by-bar matching, with tester report)
- MT4 to MT5 migration - Versione: 1.1
- Attivazioni: 5
Trading Window and Spread Guard è un'utility per MetaTrader 4 che indica ai vostri Expert Advisor quando non aprire nuove operazioni. Impostate fino a cinque finestre di stop (giorno della settimana e orario; per esempio il rollover giornaliero, le ore notturne poco liquide o le ore in cui gli spread del vostro broker sono ampi) e un limite di spread. Finché una finestra è attiva, o finché lo spread di un simbolo supera il limite, il guard alza un flag che i vostri EA possono leggere. In opzione può anche chiudere le posizioni aperte mentre le nuove operazioni erano bloccate.
È uno strumento per mettere in pausa il trading, non una strategia di trading. Non cerca momenti buoni per operare, non dà segnali di acquisto o vendita e non apre mai una posizione né piazza un ordine su un conto reale o demo. Non evita le perdite: può solo far saltare ai vostri EA le nuove entrate, oppure chiudere una nuova posizione dopo che è stata aperta. Quali ore evitare, e se e come fare trading, resta una vostra decisione.
Con le impostazioni predefinite non è attivo nulla: nessuna finestra, limite di spread OFF, chiusura OFF. Finché non compilate i parametri, il guard mostra solo il suo pannello.
Importante: i vostri EA devono leggere il flag. Un EA che non controlla il flag continua a operare come prima. Il controllo è di poche righe di codice (sotto). Per un EA che non potete modificare funziona solo l'opzione "Chiudi le posizioni aperte durante il blocco", che chiude la posizione dopo l'apertura, con costi di spread e commissione.
Funzionalità
- Fino a 5 finestre di stop. Formati: 12:00-12:30 (ogni giorno), Mon-Fri 23:50-01:15 (inizia in ogni giorno indicato e può superare la mezzanotte), Mon,Wed,Fri 08:00-08:30, Fri 21:00-Mon 01:00 (un unico intervallo su più giorni). Giorni in inglese (Mon o Monday, maiuscole o minuscole) o in giapponese; All = ogni giorno. La fine può essere 24:00. Le finestre che si toccano o si sovrappongono vengono unite.
- Orari delle finestre nell'ora del server (predefinito) o nell'ora di questo computer.
- Limite di spread in punti: un valore per tutti i simboli, più valori facoltativi per simbolo (per esempio GOLD=50,US30=300).
- Simboli: il simbolo del grafico (predefinito), un elenco, oppure * = tutti i simboli in Market Watch (fino a 100).
- Flag per i vostri EA come variabili globali del terminale, con funzioni di lettura pronte (TWG_Reader.mqh).
- Opzionale: chiusura delle posizioni aperte durante il blocco, solo per i simboli e i magic number che scegliete. Le posizioni già esistenti all'avvio del guard non vengono mai toccate.
- Pannello: stato (OK o BLOCKED e il motivo), prossima finestra con conto alla rovescia, le vostre finestre, spread e limite, impostazioni di chiusura, nomi dei flag e ultimo messaggio. Inglese o giapponese (automatico secondo la lingua del terminale). Pulsante per comprimere.
- Avvisi popup e notifiche push facoltativi quando uno stop inizia o finisce, uno spread diventa troppo ampio o una posizione viene chiusa.
Parametri principali
- Stop windows: base oraria delle finestre (ora del server / ora del computer), Window 1 - Window 5 (vuoto = OFF).
- Spread limit: ON/OFF (predefinito OFF), spread massimo in punti (predefinito 30), massimo per simbolo.
- Symbols and positions: simboli (vuoto = questo grafico, * = tutti in Market Watch, o un elenco), chiudi le posizioni aperte durante il blocco (predefinito OFF), chiudi solo questi magic number (vuoto = tutti, 0 = operazioni manuali).
- Flags: prefisso del nome delle variabili globali (predefinito "TWG").
- Alerts (popup, push), Panel (mostra, lingua, angolo, scostamenti, dimensione carattere), slippage massimo in chiusura, demo nello Strategy Tester.
- 23 parametri. MetaTrader 4 li mostra come un unico elenco senza titoli di gruppo, nell'ordine sopra.
Come funziona
- Il guard controlla ogni 250 ms e scrive i flag circa una volta al secondo, quindi il vostro EA vede un cambiamento circa 1-2 secondi dopo.
- Flag (variabili globali del terminale; i valori sono orari UTC in secondi; "TWG" è il prefisso predefinito):
- TWG.TIME: fine della finestra di stop in corso, 0 fuori dalle finestre.
- TWG.SPR.<simbolo> (per esempio TWG.SPR.EURUSD): maggiore dell'ora attuale finché lo spread di quel simbolo supera il limite. Un flag per ogni simbolo osservato.
- TWG.NEXT: inizio della prossima finestra di stop. TWG.HB: ultimo aggiornamento (indica che il guard è in funzione).
- Un flag è ON finché il suo valore è maggiore di TimeGMT().
- Controllo di base per il vostro EA (stessa logica di TWG_Reader.mqh con il prefisso predefinito):
bool GuardBlocks(const string sym)
{
if(MQLInfoInteger(MQL_TESTER)) return false;
double now = (double)TimeGMT();
if(GlobalVariableGet("TWG.HB") < now - 30) return false; // guard not running
return GlobalVariableGet("TWG.TIME") > now || GlobalVariableGet("TWG.SPR." + sym) > now;
}
Prima di ogni nuova entrata: if(GuardBlocks(_Symbol)) return;
- TWG_Reader.mqh aggiunge TWG_IsBlocked, TWG_TimeBlocked, TWG_SpreadBlocked, TWG_SecondsLeft e TWG_GuardRunning. Il download dal Market contiene solo l'EA; il testo completo di questo file è pubblicato nei commenti di questo prodotto. Nello Strategy Tester queste funzioni rispondono sempre "non bloccato", quindi i vostri backtest non cambiano.
- Il giorno della settimana è il giorno in cui la finestra inizia. "Mon-Fri 23:50-01:15" crea cinque finestre che iniziano lunedì 23:50 … venerdì 23:50 e finiscono alle 01:15 del giorno dopo. Non copre lunedì 00:00–01:15, perché quella parte inizierebbe di domenica. Per coprire il fine settimana e il lunedì mattina, aggiungete una seconda finestra come Fri 21:00-Mon 01:15. (Con Fri 21:00-Mon 01:00, lunedì 01:00–01:15 resta aperto.)
- "Aperta durante il blocco" significa: l'orario di apertura della posizione cade in una finestra di stop, oppure lo spread del suo simbolo superava il limite in quel momento (verificato per posizioni fino a 10 minuti).
- La chiusura viene inviata al controllo successivo (ogni 250 ms o al tick successivo).
- Potete eseguire il guard su più grafici con lo stesso prefisso (per esempio per osservare simboli diversi). I flag mantengono allora il valore più lungo. Usate prefissi diversi se gruppi di EA hanno bisogno di regole diverse.
Note e limiti
- Non è una garanzia. Il guard non blocca gli ordini da solo. Solo gli EA che controllano il flag saltano le nuove entrate.
- Rimuovere l'ultimo guard toglie lo stop. Quando lo rimuovete o chiudete il suo grafico, cancella subito i suoi flag. Se il terminale si ferma in modo imprevisto, le funzioni di lettura considerano il guard fermo dopo 30 secondi. Per impostazione predefinita allora permettono il trading. Se il vostro EA deve attendere quando il guard non è in funzione, chiamate TWG_IsBlocked(_Symbol, "TWG", true) (blockIfGuardStopped = true).
- I flag hanno un ritardo di circa 1-2 secondi. Un ordine inviato nel primo secondo di una finestra o di un picco di spread può ancora passare. I picchi di spread più brevi di un controllo possono sfuggire.
- Gli ordini pendenti non vengono cancellati né modificati. Un ordine pendente eseguito durante uno stop apre una nuova posizione, che viene chiusa solo se l'opzione di chiusura è ON e la posizione rientra nell'ambito.
- Con il filtro dei magic number vuoto, l'opzione di chiusura chiude anche le operazioni che aprite a mano nell'ambito (magic 0 = operazioni manuali). Ogni chiusura costa spread e commissione e può finire in perdita. Il guard non può impedire a un altro EA di inviare ordini; se un EA continua ad aprire operazioni durante uno stop, ognuna viene chiusa.
- I flag di spread esistono solo per i simboli osservati. Se il vostro EA opera su altri simboli, aggiungeteli all'elenco o usate *.
- Gli orari delle finestre seguono l'orologio scelto. L'ora del server cambia con l'ora legale del vostro broker; l'ora del computer segue questo PC.
- Le variabili globali appartengono a un solo terminale. Eseguite il guard nello stesso terminale MetaTrader 4 dei vostri EA.
- Il guard funziona solo mentre MetaTrader 4 è aperto e connesso. Per chiudere servono anche AutoTrading ON (pulsante della barra degli strumenti) e il trading reale consentito nelle impostazioni dell'EA.
- Subito dopo il riavvio del terminale, MetaTrader 4 a volte non riesce a creare il timer per alcuni secondi. Il guard riprova ogni 3 secondi al tick successivo o a un evento del grafico e, fino ad allora, il pannello mostra una riga rossa "Timer not created - updates on ticks only (retrying)".
- MetaTrader 4 non ha una funzione per l'orologio del server. Il guard stima l'ora del server dai tick in arrivo; subito dopo l'avvio, finché non arriva un nuovo tick, usa l'ora dell'ultima quotazione. Scegliete l'ora del computer se preferite l'orologio del PC.
- Il pannello viene ridisegnato con i tick in arrivo. Quando non arrivano tick (per esempio nel fine settimana) può sembrare più vecchio di quanto sia; i flag continuano a essere aggiornati dal timer. Le righe del pannello vengono troncate a circa 63 byte (il testo giapponese prima).
- Strategy Tester: i flag restano solo in memoria. Con il parametro "Tester only: demo window and small demo positions" ON (predefinito), il guard apre piccole posizioni dimostrative (lotto minimo, magic 73190): una prima di una finestra, che il guard lascia aperta, e una al suo interno, che il guard chiude subito (la demo ripulisce le sue posizioni alcuni minuti dopo). Se non è impostata alcuna finestra, usa una finestra dimostrativa (30 minuti o 2 barre, al massimo una volta al giorno). Il report del tester mostra solo questa dimostrazione e non è un risultato di trading; può mostrare una piccola perdita. Con depositi molto piccoli (per esempio 10 USD) potrebbero non esserci operazioni dimostrative. La dimostrazione non viene mai eseguita su un conto reale o demo.
Compatibilità e supporto
- Solo MetaTrader 4. La versione per MetaTrader 5 è venduta separatamente. Collegatelo a un grafico; aggiungete altri grafici solo se servono.
- Niente DLL, niente internet, nessun server esterno.
- Provate prima tutte le impostazioni su un conto demo.
- Supporto tramite messaggi MQL5, risposta entro 3 giorni lavorativi: installazione, impostazioni, segnalazioni di bug e come chiamare le funzioni di lettura. Non possiamo consigliare quali ore o spread evitare, dare opinioni sul mercato o decisioni di trading, né modificare il vostro EA al posto vostro.
- Nessun risultato del vostro trading è promesso o sottinteso.
