ForexBestRobots.comConfronta EA →

STABILITÀ VPS E MT4 · GUIDA 4

Monitorare un EA Forex in MT4: quotazioni, heartbeat e avvisi

Monitora un EA Forex MT4 con dati per simbolo, heartbeat significativi, ordini attuali e avvisi collaudati. Distingui inattività normale e guasto operativo.

16 min di letturaRevisione editoriale a cura della redazione ForexBestRobots
Quattro controlli distinti: VPS e sistema, MT4 e dati richiesti, heartbeat documentato dell'EA e ordini attuali del broker. Valuta le osservazioni prima di agire.Monitoraggio EA MT4Quattro controlli prima di intervenire

Evidenze operative; nessuna garanzia di disponibilità o trading.

Un VPS in verde e una lista di operazioni senza novità rispondono a domande diverse. Per supervisionare un EA servono evidenze recenti su terminale, dati richiesti, programma e ordini del broker, oltre a un canale di avviso che funzioni ancora quando il terminale mittente si arresta.

Questa è la Guida 4 della serie Stabilità VPS e MT4. Parti da hosting e continuità, usa la Guida 2 per configurare e la Guida 3 per il ripristino. Qui impari a osservare il funzionamento normale e rilevare l'incertezza prima che un incidente peggiori.

Definire il funzionamento normale prima di cercare un guasto

Un EA può funzionare correttamente senza aprire operazioni. Il filtro orario, il limite di spread, un paniere esistente, una regola di rischio o l'assenza di un segnale valido possono spiegare l'inattività. Il monitoraggio deve verificare se l'ambiente previsto può svolgere il compito documentato, compresa la gestione degli ordini esistenti, senza imporre un numero minimo di trade.

Annota identità del terminale, conto e server previsti, simboli e timeframe esatti, versione dell'EA, parametri approvati, regole di responsabilità degli ordini e sessioni attese. Includi gli altri simboli necessari. Chiedi allo sviluppatore quali stati, registri e comportamenti dopo un riavvio il programma espone davvero. Un file EX4 non fornisce automaticamente un segnale periodico di attività né una spiegazione completa di ogni decisione.

Distingui tre stati: normale, problema confermato e sconosciuto. Se un pannello smette di aggiornarsi, mostra l'ora dell'ultima osservazione e indica lo stato attuale come sconosciuto. Un vecchio indicatore verde non è una prova attuale.

Controllare quattro livelli di evidenza

LivelloOsservazione utileCosa non dimostra da sola
VPS e sistema operativoDisponibilità, riavvii, pressione sulle risorse, spazio disponibile e processo MT4 previsto.Una macchina raggiungibile o un processo attivo non dimostrano che la logica dell'EA risponda.
MT4 e dati di mercatoConto e server corretti, connessione e dati recenti per ogni simbolo necessario.Un grafico che si aggiorna non dimostra che un altro simbolo necessario riceva dati.
Funzionamento dell'EAInizializzazione riuscita, stato documentato, permessi e heartbeat significativo, se previsto.Un messaggio del timer non dimostra che il calcolo dei segnali o la gestione delle posizioni siano terminati.
Ordini presso il broker e gestioneOrdini aperti e pendenti attuali, protezioni accettate, esiti delle richieste e istanza responsabile.Saldo, vecchio rapporto o ultimo trade riuscito non confermano la protezione attuale.

Sono controlli distinti. Puoi eseguirli manualmente oppure raccoglierli con un sistema configurato appositamente; MT4 non li unisce automaticamente nel pannello descritto qui.

Quattro controlli distinti: VPS e sistema, MT4 e dati richiesti, heartbeat documentato dell'EA e ordini attuali del broker. Valuta le osservazioni prima di agire.
Come leggere lo schema: i riquadri 1–4 sono fonti distinte, non quattro indicatori verdi garantiti. Stabilisci quali osservazioni sono aggiornate e quali sconosciute. La fascia inferiore richiede verifica prima dell'intervento; non autorizza un EA di backup automatico.

Una verifica di cinque minuti senza cambiare la strategia

  1. Conferma dove opera l'EA. Controlla terminale e conto previsti, non un grafico locale rimasto aperto dopo la migrazione.
  2. Controlla sessione e quotazioni necessarie. Stabilisci se ora sono attesi aggiornamenti e se i simboli esatti del broker hanno dati utilizzabili.
  3. Verifica inizializzazione e permessi. Leggi i messaggi recenti di Experts e Journal e lo stato documentato dell'EA.
  4. Esamina gli ordini attuali. Conferma chi li gestisce e quali protezioni esistono davvero presso il broker.
  5. Controlla il percorso di monitoraggio. Verifica l'ora dell'ultimo rapporto e che un avviso di prova arrivi al dispositivo previsto.

Cinque minuti descrivono un formato di verifica, non una diagnosi garantita né un tempo di risposta adatto a ogni EA. In caso di dubbi, conserva le evidenze e consulta la guida agli errori degli EA. Non allentare limiti di spread o rischio, cambiare Magic Numbers o forzare un ingresso per rendere verde un indicatore.

Essere connessi non significa ricevere quotazioni recenti

IsConnected() indica la connessione del terminale al server. Non certifica dati recenti per ogni simbolo, accesso al trading o corretto funzionamento della strategia. Verifica i nomi esatti, compresi i suffissi del broker, e i dati che l'EA richiede oltre al proprio grafico.

MarketInfo(symbol, MODE_TIME) restituisce l'ora dell'ultimo tick ricevuto per quel simbolo secondo il riferimento temporale del server del broker. L'ultima quotazione è una prova storica, non un orologio che avanza senza nuovi tick. Nei fine settimana, nelle pause di sessione e nei periodi tranquilli una quotazione vecchia può essere normale. Controlla gli orari effettivi del broker prima di diagnosticare un guasto al flusso dati.

Definisci i controlli sull'età delle quotazioni per simbolo e sessione dopo aver osservato il funzionamento normale. Non esiste una soglia universalmente sicura per tutte le coppie Forex o tutti gli EA. Anche un Bid invariato non basta: tick successivi possono avere lo stesso prezzo. Quando possibile, registra la ricezione degli eventi dati e non solo i cambiamenti di prezzo.

Usare il riferimento temporale adatto a ogni domanda

Orologio o timestampSignificatoLimite del monitoraggio
TimeCurrent()Ultima ora del server nota. In OnTick() si riferisce al tick elaborato; negli altri gestori all'ultima quotazione di un simbolo selezionato in Market Watch.Può smettere di avanzare senza quotazioni e non prova l'attualità del simbolo specifico dell'EA.
MODE_TIMEOra dell'ultimo tick ricevuto per il simbolo specificato.Rispetta il riferimento temporale del server e il contesto della sessione.
TimeLocal()Orologio locale del computer.Fuso, ora legale o correzioni dell'orologio possono modificare i confronti.
Ora di ricezione del collettore indipendenteMomento in cui un servizio di monitoraggio riceve davvero un rapporto identificato.Dipende dal collettore e dal trasporto; non prova il completamento del processo di trading.

Non sottrarre direttamente l'ora della quotazione dall'orologio Windows per ricavarne l'età senza stabilire una base temporale comune. Uno sviluppatore può misurare intervalli con un contatore adatto, ma deve gestire azzeramenti e overflow. Un collettore esterno deve individuare i rapporti assenti con una propria logica di tempo trascorso collaudata, separata dai timestamp di mercato.

Identifica fonte, data e fuso orario nei registri. Normalizza le fonti prima di ricostruire un incidente; due orari simili sullo schermo non dimostrano l'ordine degli eventi. Consulta la guida a Experts e Journal.

Stabilire cosa dimostra realmente un heartbeat

Un heartbeat è un rapporto periodico inviato da un componente identificato. Quello del VPS riguarda la macchina; quello di un EA di monitoraggio riguarda i suoi eventi. Nessuno dei due dimostra automaticamente che un altro EA abbia valutato un segnale o gestito un paniere.

OnTick() viene eseguito con i nuovi tick del simbolo del grafico a cui è collegato l'EA. Un heartbeat inviato soltanto da quel gestore può mancare quando non ci sono tick. Se lo sviluppatore lo ha implementato, il programma può usare EventSetTimer() con OnTimer() per richiedere eventi periodici. Questi eventi sono accodati; se un evento Timer è già in coda o in elaborazione, non ne viene aggiunto un altro. Non è un orologio esterno preciso né una garanzia che un programma bloccato continui a inviare rapporti.

Chiedi quale punto di controllo genera il rapporto: ingresso nel gestore, verifica dei dati completata, ciclo di gestione concluso o trasmissione riuscita. Sono utili identità dell'istanza, versione, numero di sequenza, modalità operativa, stato dei dati e orari di generazione/ricezione. Una sequenza crescente distingue rapporti nuovi da ripetizioni, ma non dimostra un'esecuzione.

Con un EA a codice chiuso, usa gli stati supportati dal fornitore e osservazioni esterne. Un osservatore aggiunto non accede per questo alla salute interna della strategia. Un EA di monitoraggio separato richiede il proprio grafico; collegarlo a quello della strategia sostituisce l'EA esistente. Deve osservare senza inviare trade né gestire gli ordini della strategia.

Rilevare i rapporti assenti dall'esterno del terminale

Un terminale arrestato non può inviare in modo affidabile il proprio ultimo avviso di guasto. Un osservatore indipendente può rilevare che i rapporti attesi non arrivano più, purché continuino a funzionare lui stesso, la connessione e il canale di avviso. Tenere l'unico supervisore sul medesimo VPS lo espone al medesimo guasto della macchina.

Separa raccolta e intervento. Un allarme per rapporto assente significa che qualcosa è fallito tra mittente, rete, collettore e canale di avviso. Non dimostra che l'EA principale abbia smesso di operare e non deve attivare automaticamente un'altra copia. Verifica macchina e ordini attuali prima del passaggio descritto nella Guida 3.

Assegna a ogni istanza prevista un'identità di monitoraggio distinta e rileva mittenti sconosciuti o duplicati. Monitora anche il collettore e prova un contatto alternativo. Trasmetti soltanto lo stato necessario: password, segreti di attivazione e accesso illimitato al conto non sono campi di un heartbeat.

Controllare i permessi senza attivarli alla cieca

In MT4 desktop, controlla AutoTrading, il permesso del singolo EA, l'accesso operativo del conto previsto e la licenza del fornitore. Un accesso in sola lettura può mostrare informazioni impedendo il trading. Un cambio di permessi può lasciare l'EA in calcolo ma impedirgli di modificare gli ordini come previsto.

IsTradeAllowed() senza argomenti verifica il permesso dell'EA chiamante e che il contesto di trading non sia occupato. false non è una diagnosi completa; true non garantisce che il broker accetti la richiesta successiva. Il risultato di un osservatore separato non certifica i permessi individuali di un altro EA.

Avvisa dei cambiamenti inattesi rispetto alla modalità approvata. Un terminale sospeso intenzionalmente va registrato come sospeso, senza «ripararlo» tramite un supervisore. Disattivare l'automazione non chiude posizioni e può interrompere le uscite gestite localmente. Ogni pausa richiede un piano esplicito di gestione.

Monitorare richieste fallite e posizioni esistenti

Segui la sequenza di una richiesta documentata: azione prevista, tentativo, risultato e riconciliazione con i dati del broker. Rifiuti e modifiche fallite contano anche senza una nuova posizione. Se il fornitore non registra tentativi o ragioni dei segnali saltati, non puoi ricostruirli in modo affidabile dalla sola lista delle operazioni.

L'errore 128 indica un timeout di trading. Dopo una risposta persa o incerta, controlla ordini aperti, pendenti e storico pertinente prima di decidere se ripetere la richiesta. L'assenza di conferma locale non prova un rifiuto. Includi simbolo esatto, direzione, volume, ticket se noto e ora del tentativo; non indovinare quale ordine vi corrisponda.

Esamina esposizione, P/L flottante, equity e Stop Loss/Take Profit accettati insieme alle regole documentate di responsabilità dell'EA. La protezione presso il broker differisce da uno stop virtuale previsto o da un futuro aggiornamento trailing. Un EA arrestato può lasciare posizioni aperte e un ordine pendente può attivarsi senza monitoraggio locale. Questa guida non definisce una nuova soglia di drawdown né una liquidazione automatica.

Provare gli avvisi fino al destinatario

  1. Nel terminale previsto, apri Tools → Options → Notifications, abilita le notifiche push e inserisci il MetaQuotes ID del terminale mobile desiderato.
  2. Usa Test, controlla il risultato nel terminale e verifica la ricezione sul dispositivo reale. Esamina i permessi di notifica del dispositivo e il percorso pratico di risposta.
  3. Prova separatamente la condizione reale dell'EA o dell'osservatore. Il test delle impostazioni non dimostra che esista una regola per heartbeat assente o richiesta rifiutata.
  4. Annota ora, mittente, destinazione ed esito; ripeti dopo migrazione VPS, cambio di dispositivo o modifica delle notifiche.

Notify of trade operations copre operazioni riuscite ed eventi di conto documentati; non avvisa delle operazioni fallite. Non è quindi un monitor completo di rifiuti, dati obsoleti o arresti del terminale.

Per SendNotification(), MetaQuotes documenta un limite di 255 caratteri, al massimo 2 chiamate al secondo e 10 al minuto. Superare i limiti di frequenza può disabilitare la funzione. Non funziona nello Strategy Tester: verifica la consegna in un ambiente demo in esecuzione adatto. Un invio riuscito non prova che qualcuno abbia letto o confermato il messaggio. Raggruppa i guasti ripetuti e invia cambiamenti di stato utili, invece di avvisi a ogni tick.

Scrivere ogni regola con contesto e azione successiva

CondizioneContesto necessarioAzione successiva utile
Nessun rapporto recenteMittente e intervallo attesi, stato del collettore e manutenzione programmata.Verifica percorso di osservazione e istanza principale; non attivare automaticamente il backup.
Quotazione vecchia per un simbolo necessarioSimbolo esatto, sessione, frequenza normale e riferimento temporale.Controlla altri simboli necessari, connessione e servizio del broker.
Restrizione inattesa o richiesta fallitaModalità approvata, EA chiamante/conto, messaggio preciso e ordini attuali.Indaga permessi o rifiuto; riconcilia esecuzioni incerte prima di ripetere.
Gestione sconosciuta con ordini apertiEsposizione attuale, protezione accettata dal broker e istanza responsabile.Segui il piano di incidente e stabilisci la responsabilità di gestione.

Definisci persistenza, distanza tra ripetizioni, conferma e condizione di ripristino. Un messaggio di ripristino deve indicare quali osservazioni sono riprese: un solo heartbeat non prova il recupero di ogni livello. Usa una finestra di manutenzione con responsabile e ora di fine, senza silenziare definitivamente un allarme frequente.

Scegli la gravità in base alla situazione effettiva del conto. Lo stesso problema dati può avere conseguenze diverse senza esposizione o con posizioni che dipendono dalle uscite locali. Il monitoraggio identifica il contesto, ma non offre un periodo di attesa sicuro universale.

Un esempio di heartbeat assente con un solo orologio

Esempio ipotetico: un collettore attende un rapporto identificato ogni 60 secondi e avvisa dopo 180 secondi senza un nuovo rapporto. Sono impostazioni didattiche, non soglie universali consigliate. Tutti gli orari sotto sono osservazioni del collettore in UTC; non viene sottratta alcuna ora di quotazione del broker.

Ora del collettore (UTC)OsservazioneConclusione supportata
10:00:00Arriva l'ultimo heartbeat identificato.Un rapporto è arrivato e ha segnalato il punto di controllo definito.
10:01:00Un controllo separato della macchina risponde; non arriva un nuovo heartbeat dell'EA.Funziona il percorso di controllo della macchina; i rapporti dell'EA restano non confermati.
10:03:00Non viene ricevuto un nuovo heartbeat da 180 secondi.La condizione dell'esempio è soddisfatta; il componente guasto è ancora sconosciuto.
10:03:20Una verifica autorizzata vede quotazioni aggiornate e un ordine aperto presso il broker.Dati ed esposizione sono osservati; la gestione dell'EA deve ancora essere verificata.

Sono trascorsi 180 ÷ 60 = 3 intervalli previsti senza nuova ricezione. Non dimostra che il trading si sia fermato alle 10:00:00, che il server abbia rifiutato qualcosa o che l'ordine sia senza gestione. Esamina EA, registri e stato degli ordini prima di intervenire. Se il collettore stesso era indisponibile, non può affermare di aver osservato ininterrottamente tutto l'intervallo.

Tenere un registro operativo essenziale

Annota ultima verifica riuscita, stato dei dati necessari, identità EA/terminale, responsabile degli ordini aperti, messaggi irrisolti, esito della prova di avvisi e cambiamenti previsti. Controlla dopo installazione, riavvio, migrazione, variazioni approvate dei parametri e manutenzione del broker, poi con una frequenza adatta alle reali esigenze di gestione dell'EA.

Il monitoraggio pubblico aiuta a valutare i risultati, ma controlla prima ultimo aggiornamento e ritardo di pubblicazione. Una bella curva del saldo non è una verifica operativa in tempo reale. Un rapporto senza novità o un saldo piatto non distingue attesa di un segnale da arresto del terminale. Tieni separate valutazione delle prestazioni e supervisione operativa immediata.

Osservare l'ambiente che opera davvero

Su un VPS Windows, controlli macchina/processo, osservazioni del terminale e collettore indipendente possono coprire guasti diversi. Verifica risorse e avvio con la Guida 2; un accesso Windows riuscito non conferma il funzionamento dell'EA.

Per l'hosting virtuale integrato MetaTrader, esamina stato remoto, sincronizzazione e registri terminale/Experts richiesti attraverso i relativi controlli. Un grafico o heartbeat locale non mostra l'EA remoto. Ogni heartbeat remoto va distribuito appositamente, deve essere compatibile e provato lì; non puoi trasferire semplicemente servizi Windows o strumenti DLL non supportati.

AutoTrading locale non arresta la copia ospitata. Per intervenire, usa i controlli hosting e verifica il vero stato remoto. Il sistema deve identificare se osserva la macchina principale di trading, un terminale locale di preparazione o un backup.

Provare su demo i punti ciechi del monitoraggio

Usa un ambiente demo autorizzato e i suoi file di stato. Prova chiusura controllata del terminale, interruzione del percorso dei rapporti, pausa di sessione prevista, sospensione volontaria e ritorno alla normalità. Distingui un avviso reale da un test riuscito di consegna. Non creare una posizione live senza gestione per provare un supervisore.

Istanza principale, conto/server e simboli necessari identificati.
Stati normale, sospeso, problema e sconosciuto definiti esplicitamente.
Quotazioni verificate con sessione corretta e base temporale coerente.
Mittente e vero punto di controllo del heartbeat documentati.
Rapporti assenti controllati indipendentemente dal terminale mittente.
Consegna, conferma e contatto alternativo provati.
Piano per richieste rifiutate o incerte e gestione degli ordini aperti.
Un allarme non può attivare silenziosamente una seconda copia operativa.

Registra configurazione provata, osservazioni e punti ciechi residui. Un buon monitoraggio riduce l'incertezza; non garantisce disponibilità, esecuzione né risultati della strategia.

Domande comuni sul monitoraggio degli EA

Nessuna nuova operazione significa che l'EA è guasto?

No. Controlla sessione, regole del segnale, dati, permessi e gestione degli ordini esistenti. Una strategia sana può correttamente restare inattiva.

Un heartbeat dimostra che tutte le funzioni sono sane?

No. Dimostra solo che il rapporto documentato è stato generato o ricevuto. Il suo valore dipende da dove nasce e da quali campi siano aggiornati.

Le notifiche push standard rilevano tutti i guasti?

No. Gli avvisi di operazioni riuscite omettono quelle fallite e un terminale arrestato non può segnalare affidabilmente il proprio guasto completo. Prova separatamente regole personalizzate e rilevazione indipendente dei rapporti assenti.

Un heartbeat assente deve avviare automaticamente un VPS di backup?

No. Stabilisci prima lo stato operativo del principale, gli ordini attuali del broker e la responsabilità di gestione. Un rapporto assente non autorizza automazione duplicata.

Riferimenti ufficiali e ambito pratico

I dettagli di piattaforma sono stati verificati nella documentazione ufficiale MetaQuotes. Formato di verifica, soglie dell'esempio e regole di incidente sono indicazioni operative educative, non un prodotto di monitoraggio fornito né risultati misurati di affidabilità. Le etichette variano per lingua; verifica la tua installazione.