Runaway Guard
- Utilità
- Versione: 1.0
- Attivazioni: 10
Runaway Guard sorveglia il conto in MetaTrader 5. Misura la velocità con cui le operazioni arrivano sul conto e le conta per ogni programma che le ha emesse; il risultato in denaro non entra nella valutazione. Al superamento di una soglia scrive un file CSV con i numeri di ticket veri, da confrontare uno per uno con lo storico. Parte con i valori predefiniti.
Che cosa viene misurato
I quattro limiti si misurano su finestre mobili, cioè su un tratto di tempo che si sposta con l'ora attuale; mettendo 0 su un limite quel limite si disattiva.
- Ritmo: le operazioni della finestra breve. Predefinito: 20 in 5 minuti.
- Chiusure rapide: posizioni chiuse sotto il minuto. Predefinito: 10 nella finestra lunga di 15 minuti.
- Riaperture: stesso strumento e stessa direzione entro 30 secondi da una chiusura. Predefinito: 5 nella finestra lunga.
- Costo accumulato: commissioni, swap e risultato realizzato della finestra lunga, sommati con il segno e considerati solo quando il totale va a sfavore del saldo. Predefinito: 0,5% del saldo.
Il conteggio va per sorgente
Ogni operazione riporta il numero magico del programma che l'ha emessa. Le operazioni manuali hanno una riga propria, Manual / no magic. Sulla riga dell'intero conto, All sources, viene misurato soltanto il ritmo. Una sorgente esclusa esce anche da quel totale, ma la sua riga resta.
Le azioni, una per sorgente
- Alert: avvisa e basta. È il predefinito.
- Cancel pendings: annulla gli ordini pendenti di quella sorgente, senza toccare le posizioni.
- Stop the chart: chiude il grafico su cui gira quella sorgente, dopo averne salvato il modello.
- Close the terminal: chiude davvero MetaTrader 5. All'inizio è disattivata: serve il secondo interruttore, InpAllowTerminalClose.
Lo stato è WATCHING mentre si conta, TRIGGERED sopra un limite e DISABLED quando l'azione scelta non è eseguibile, con il motivo a schermo.
La schermata
Runaway Guard Watch Sources
Window 5 min / 15 min State: TRIGGERED
Source Deals RT Reentry Cost Action
All sources 48 -- -- -- Alert
Manual / no magic 4 2 1 -4.00 Alert
Magic 33020001 0 10 9 -250.00 Alert
Magic 40010001 36 18 17 -36.00 Cancel
Magic 70010001 8 4 3 -8.00 Alert
Magic 70010002 12 6 5 -12.00 Excluded
Last incident: 07:47:26 Magic 70010002 reentry
5 in 15 min (limit 2)
-> incident_2026-08-14_074726_magic70010002_2.csv
Close the terminal needs InpAllowTerminalClose = true
La schermata Watch tiene una riga per sorgente e, in fondo, l'ultimo evento. RT indica tutte le chiusure della finestra lunga, mentre il limite conta solo quelle sotto il minuto. Nella colonna Deals le sorgenti danno 4 + 0 + 36 + 8 + 12 = 60, e togliendo i 12 della riga contrassegnata come Excluded restano i 48 di All sources; su quella riga tre colonne restano a --, perché lì si misura solo il ritmo. Deals si riferisce alla finestra breve e le altre colonne a quella lunga, quindi una sorgente ferma da minuti ha la finestra breve vuota e quella lunga ancora piena. La riga Excluded compare comunque in Last incident: l'esclusione fa tacere, non cancella. Le soglie dell'immagine sono più basse dei predefiniti: altrimenti i quattro limiti non si sarebbero superati insieme.
Il file di ogni evento
Ogni superamento produce un file dentro MQL5/Files/RunawayGuard/ con questa intestazione.
time_broker,time_utc,time_local,trigger,measured,threshold,magic,symbol,deals,round_trips,commission,swap,realized,action,deal_tickets
Gli orologi sono tre: quello del broker, l'UTC e quello del terminale; con lo storico si confronta soltanto l'ora del broker. Seguono il limite superato con il valore e la soglia, la sorgente, lo strumento, i conteggi, l'azione e i ticket veri. Non c'è nessuna colonna di valutazione o di ipotesi: un numero magico non è un colpevole. Niente viene sovrascritto o cancellato in automatico.
Meno falsi allarmi
Nel primo minuto dall'avvio nessuna azione viene eseguita; nei primi due minuti dopo l'apertura i limiti sono raddoppiati. Qualsiasi numero magico si può escludere; dopo un evento la stessa sorgente sullo stesso limite tace per 10 minuti, pur restando contata.
Che cosa non fa
- Nel codice non c'è nessuna azione di trading per aprire, chiudere o modificare posizioni.
- Non disattiva un altro EA: può solo chiudere il grafico su cui gira.
- Non ferma gli ordini partiti da un altro terminale, ma li rileva nello storico.
- Non annulla le operazioni già eseguite.
- Non manda niente all'esterno: nessuna connessione, nessun server, nessuna DLL.
Demo, ambiente e parametri
Nel Tester di strategia viene immesso un campione sintetico di operazioni, dallo stesso punto delle reali.
TESTER DEMO - synthetic sample, no orders are placed
Serve MetaTrader 5; il broker e lo strumento del grafico non contano, perché quello che legge è il conto. È stato sviluppato e verificato su un conto di tipo hedging; il tipo netting è implementato ma non verificato. Verifiche automatiche hanno controllato che nel codice non ci siano azioni di trading, DLL o chiamate esterne.
I parametri sono diciannove. Gli otto dei limiti sono InpWindowFastMin, InpMaxDealsPerWindow, InpWindowSlowMin, InpShortHoldSec, InpMaxChurnPerWindow, InpReentrySec, InpMaxReentryPerWindow e InpMaxCostPercent; gli altri riguardano azione ed esclusioni, avvio, schermo e demo. Ciò che si cambia a schermo viene salvato separatamente per ogni conto; i parametri non vengono mai sovrascritti, così una soglia modificata ha davvero effetto.
Runaway Guard conta le operazioni arrivate sul conto, esegue l'azione scelta e ne lascia il file; su quello che succederà dopo non dice niente.
