Come vengono calcolati gli Expert Advisor su MT5: formula, input e requisiti di dati

Limitazioni degli input per il calcolo della formula degli Expert Advisor su MT5.

Come vengono calcolati gli Expert Advisor su MT5: formula, input e requisiti di dati

Risposta diretta: cosa significa “calcolato” per uno Expert Advisor su MT5

Uno Expert Advisor (EA) su MT5 non viene calcolato attraverso una singola formula matematica fissa e valida per tutta la piattaforma. Invece, il comportamento dell’EA è prodotto dall’esecuzione del suo programma (la tua logica strategica) passo dopo passo. Ogni passo calcola nuove decisioni (ad esempio, quando piazzare ordini) a partire da:

  • Dati di mercato disponibili all’EA in quel momento (barre storiche e/o tick in arrivo)
  • Parametri in input dell’EA (numeri che configuri tu)
  • Stato interno dell’EA (variabili che ricorda tra un’esecuzione e l’altra)
  • Regole da te codificate per indicatori, logica di rischio e gestione degli ordini

Quindi, la domanda “Come vengono calcolati gli Expert Advisor su MT5?” si risponde meglio così: l’EA viene calcolato eseguendo il suo codice sui dati ricevuti, utilizzando i suoi parametri e lo stato interno per generare segnali e richieste di ordine.

Meccanica: la pipeline di calcolo all’interno di un EA

Pensa a un EA come a un ciclo ripetuto. Il ciclo esatto dipende da come è programmato, ma un modello tipico a scopo didattico è questo:

  1. Acquisizione dei dati
  • Barre storiche: dati in stile OHLCV utilizzati per calcolare valori nel tempo.
  • Tick: aggiornamenti di prezzo in streaming utilizzati per logica basata sugli eventi.
  • L’EA può elaborare uno o entrambi, a seconda che sia scritto per reagire a nuovi tick, nuove barre o entrambi.
  1. Calcoli di tipo indicatore (se utilizzati) Se l’EA utilizza indicatori, calcola funzioni come medie mobili, oscillatori simili all’RSI o trasformazioni personalizzate. Si tratta di operazioni matematiche sulla serie in input (ad esempio, i prezzi di chiusura negli ultimi N barre).

Una forma generale è:

  • Lascia che l’EA crei una serie temporale x(t) dai dati di mercato (ad esempio, x(t)=prezzo di chiusura al tempo t della barra).
  • Poi calcola un valore indicatore I(t) utilizzando una certa regola (ad esempio, una media mobile o una ricorrenza).
  1. Logica decisionale L’EA combina i valori calcolati e i parametri in condizioni. Un esempio generico di schema è:
  • Se la condizione C(parameters, I(t), EA_state) è vera → prepara un’azione.
  • Altrimenti → non fare nulla o aggiorna lo stato.

Qui, EA_state indica i valori memorizzati in precedenza dall’EA (ad esempio, se ha già una posizione aperta o un contatore che traccia eventi consecutivi).

  1. Calcolo della dimensione dell’ordine e costruzione della richiesta Se l’EA invia ordini, “calcola” cosa richiedere utilizzando input e vincoli legati al trading. Questo include comunemente:
  • Lato dell’ordine (acquisto/vendita)
  • Volume (dimensione del lotto), spesso derivato da parametri e/o da una regola di dimensionamento del rischio
  • Livelli di stop-loss / take-profit (se il tuo codice li imposta)
  • Slippage consentito o riferimenti di prezzo (come mappi il “prezzo desiderato” all’esecuzione effettiva)

È importante distinguere:

  • I calcoli interni dell’EA (matematica pura basata su parametri e dati)
  • L’esito del broker/esecuzione (come gli ordini vengono eseguiti nelle reali condizioni di mercato)
  1. Aggiornamento dello stato dopo l’esecuzione Dopo che un ordine è stato accettato o eseguito (o rifiutato/eseguito parzialmente), l’EA aggiorna le variabili interne. Questo stato influenzerà i calcoli successivi.

Una semplice “formula” universale (concettuale, non specifica di un prodotto)

Poiché gli EA differiscono, non esiste una singola equazione numerica che si applichi sempre. Ma puoi usare una formula concettuale che si adatti a qualsiasi progettazione di EA:

EA_output(t) = Logic(parameters, Market_data(t), EA_state(t))

Dove:

  • EA_output(t) rappresenta le decisioni e le richieste prodotte dall’EA al tempo t.
  • Market_data(t) è qualsiasi serie di prezzi letta dall’EA al tempo t.
  • EA_state(t) è la memoria corrente dell’EA.

Se vuoi “verificare” come viene calcolato, devi esaminare il codice dell’EA e mappare ogni variabile a uno di questi input.

Esempio o prova: tracciare un percorso di calcolo reale (ipotesi dichiarate)

Di seguito è riportato un esempio didattico che mostra come può essere tracciato il calcolo di un EA. Questo non è un EA specifico; è un modello.

Supponiamo:

  • L’EA si esegue su ogni nuova barra.
  • Calcola una media mobile degli ultimi N prezzi di chiusura.
  • Utilizza una soglia K e memorizza se ha attualmente una posizione aperta.

Esempio di passi concettuali al tempo della barra t:

  1. Costruisci x(t) = prezzo di chiusura di ciascuna delle ultime N barre.
  2. Calcola I(t) = media(x(t−N+1) … x(t)).
  3. Usa i parametri (N, K) e lo stato (hasPosition) per calcolare una condizione:
    • C = (I(t) > K) AND (hasPosition == false)
  4. Se C è vera:
    • Richiedi un ordine di acquisto con volume V derivato dai parametri.
    • Opzionalmente calcola i livelli di stop-loss/take-profit da altre distanze parametriche.
  5. Dopo l’esecuzione dell’ordine, imposta hasPosition = true.

L’idea chiave per la verifica: puoi riprodurre gli stessi numeri intermedi (come la media I(t)) dalla stessa cronologia di barre, quindi verificare se le condizioni del tuo codice produrrebbero le stesse azioni.

Limitazioni e rischi: perché i risultati differiscono dalle aspettative

Anche con calcoli accurati, gli esiti possono differire a causa delle condizioni di mercato e di esecuzione che influenzano ciò che accade effettivamente.

Limitazione materiale 1: “calcolo” vs esecuzione

L’EA può calcolare un’azione prevista, ma il livello del broker/esecuzione determina l’esecuzione effettiva. Questo introduce incertezze come:

  • Differenze di spread tra il momento del calcolo e quello dell’invio
  • Slippage (differenza tra prezzo richiesto e prezzo di esecuzione)
  • Comportamento di esecuzione degli ordini (esecuzione totale o parziale)

Pertanto, “ciò che l’EA ha calcolato” non è sempre “ciò che hai ottenuto”.

Limitazione materiale 2: eventi di dati mancanti o ritardati

Se l’EA si aspetta aggiornamenti basati sui tick ma il flusso di tick è interrotto, potrebbe:

  • Saltare valutazioni
  • Usare prezzi obsoleti
  • Attivare logica con ritardo

Questo è un malfunzionamento causato dalla discrepanza tra le assunzioni del tuo codice e il timing degli eventi nell’ambiente.

Limitazione materiale 3: problemi di parametrizzazione e finestra di dati

Impostazioni errate o incoerenti possono interrompere la catena di calcolo. Esempi includono:

  • Usare un valore N maggiore del numero di barre storiche disponibili (i valori degli indicatori possono essere indefiniti o instabili all’inizio)
  • Mismatch di timeframe (l’EA si aspetta una serie di barre ma ne legge un’altra)
  • Condizioni troppo rigide che raramente si verificano, rendendo l’EA apparentemente “inattivo”

Limitazione materiale 4: bug nella logica interna e nello stato

Poiché gli EA si basano sullo stato interno, errori di programmazione possono causare decisioni errate, come:

  • Stato non reimpostato alla chiusura della posizione
  • Invio doppio di ordini per mancanza di controlli
  • Gestione delle esecuzioni parziali non riflessa negli aggiornamenti di stato

Questi sono problemi a livello di calcolo, non a livello di mercato.

Come verificare autonomamente il calcolo

Per verificare come viene “calcolato” un EA su MT5, puoi usare un metodo ripetibile:

  1. Identifica le fonti di dati in input Verifica se l’EA utilizza tick, nuove barre o entrambi, e quali simboli/intervalli temporali legge.

  2. Elenca i parametri Scrivi ogni parametro in input e dove influenza i calcoli (finestre degli indicatori, soglie, dimensionamento, distanze dello stop).

Il trading su forex e CFD comporta rischi significativi. Le informazioni di FoxiForex sono educative e non costituiscono consulenza finanziaria personale. I contenuti sponsorizzati sono chiaramente indicati.