Home > Blog > Chiusura parziale e trailing: punti fragili e controlli

MQL5Sviluppo EA

Chiusura parziale e trailing: punti fragili e controlli

Pubblicato: 2026-11-11Lettura: circa 3 min
⏱ Questo articolo riflette le informazioni alla data di pubblicazione. Le prestazioni degli EA (PF, DD, rendimento annuo) cambiano con il trading live e le rivalidazioni — consulta gli ultimi dati nelle pagine degli EA. Vedi gli ultimi risultati degli EA →
Contenuti (5)
  1. Conclusione: a rompersi non è la logica, ma il "passaggio di stato"
  2. Perché la combinazione si rompe
  3. Il volume residuo non può dipendere dalla "memoria" dell'EA
  4. Il lotto va "troncato", non "arrotondato"
  5. Scrivere lo SL in un unico punto, alla fine
  6. Checklist di implementazione e verifica
  7. Limiti e avvertenze
  8. Riepilogo

Conclusione: a rompersi non è la logica, ma il "passaggio di stato"

Chiusura parziale e trailing stop, presi singolarmente, non sono operazioni difficili. I problemi nascono quando vengono applicati alla stessa posizione. Anche nella nostra esperienza di sviluppo, i guasti si sono concentrati quasi sempre in questi 3 punti:

  1. Gestione del volume residuo: l'EA non riesce a "ricordare" se ha già eseguito la chiusura parziale
  2. Step di lotto: il volume da chiudere non è compatibile con il lotto minimo o con lo step del broker
  3. Ordine di reimpostazione dello SL: chiusura parziale, spostamento a pareggio e trailing si sovrascrivono a vicenda

Sono tutti difetti che emergono raramente nel backtest e che di solito si scoprono solo in operatività reale.

Confronto broker consigliati →

🎁 Scarica EA gratis

📧 Corso email gratuito (8 email) + pacchetto di 13 indicatori MT5 riservato agli iscritti

* Privacy rigorosamente protetta. Potete cancellarvi in qualsiasi momento.

Perché la combinazione si rompe

Il volume residuo non può dipendere dalla "memoria" dell'EA

In MT5, dopo una chiusura parziale il ticket della posizione resta lo stesso e cambia solo POSITION_VOLUME. Se tieni traccia dell'avvenuta chiusura parziale con una semplice variabile bool, il valore va perso al riavvio dell'EA, alla riconnessione della VPS o al cambio di timeframe. Il caso tipico: al primo tick successivo l'EA chiude di nuovo a metà la posizione rimasta.

Come contromisura, noi ripercorriamo lo storico delle esecuzioni della posizione con HistorySelectByPosition() e confrontiamo il volume iniziale con quello residuo per stabilire a che stadio della chiusura parziale ci troviamo. Il flag in memoria resta solo un supporto.

Il lotto va "troncato", non "arrotondato"

Dimezzando 0.03 lotti si ottiene 0.015. Su un conto con step di 0.01, l'arrotondamento porterebbe a chiudere 0.02, cioè più del previsto. Il volume da chiudere va troncato secondo SYMBOL_VOLUME_STEP e bisogna inoltre verificare che il volume residuo dopo la chiusura sia almeno pari a SYMBOL_VOLUME_MIN. Una posizione da 0.01 lotti, poi, non si può dividere: se non stabilisci in anticipo come specifica se "non fare la chiusura parziale" oppure "chiudere tutto", l'EA continuerà a restituire errori.

Scrivere lo SL in un unico punto, alla fine

PositionModify() è una funzione che specifica SL e TP insieme. Se la logica del trailing passa 0 come TP, il TP sparisce. Inoltre, se dopo la chiusura parziale lo spostamento dello SL a pareggio e l'avanzamento dello SL del trailing girano separatamente nello stesso tick, vince chi scrive per ultimo. Il risultato è che uno SL già portato a pareggio può tornare indietro.

L'ordine che adottiamo è il seguente:

  • Inviare la chiusura parziale → riselezionare la posizione e verificare il volume residuo
  • Calcolare entrambi i candidati: SL a pareggio e SL del trailing
  • Spostare lo SL solo verso il lato "più favorevole rispetto allo SL attuale" (il più alto per un acquisto, il più basso per una vendita)
  • Controllare stop level e freeze level, quindi modificare una sola volta, ripassando il valore attuale del TP

Checklist di implementazione e verifica

Voce da controllareSintomo se si rompeCome verificare
Lo stadio della chiusura parziale è ricavato dallo storico delle esecuzioni?Doppia chiusura parziale dopo il riavvioRicollega l'EA mentre è in funzione e osserva come cambia il volume residuo
Il volume da chiudere è troncato secondo lo step?Si chiude più del previsto oppure compaiono erroriApri con il lotto minimo e leggi il log
È stabilito come gestire la divisione al lotto minimo?La chiusura fallisce a ogni tickProva con 0.01 lotti
Lo SL può tornare in una direzione sfavorevole?Chiusura in perdita dopo lo SL a pareggioSegui nel log l'andamento dello SL in ordine cronologico
La modifica dello SL cancella il TP?Il take profit non scattaControlla il campo TP della posizione dopo la modifica
Lo SL non viene spostato se la chiusura parziale fallisce?Volume residuo e premesse dello SL non coincidonoInvia l'ordine poco prima della chiusura del mercato per provocare l'errore
L'EA gira su un conto netting?Le posizioni si sommano a quelle di altri EAVerifica il tipo di conto

Se sei dalla parte di chi usa l'EA, il controllo più rapido è farlo girare su un conto demo con il lotto minimo e ricollegarlo a metà operazione per vedere se il comportamento cambia. Le impostazioni di base sono spiegate in Come configurare un EA.

Limiti e avvertenze

Lo Strategy Tester esegue gli ordini istantaneamente ed è davvero raro che un ordine venga eseguito solo in parte. Per questo i difetti legati alla chiusura parziale sono quasi invisibili nei numeri del backtest. Le differenze nella modalità di esecuzione (filling mode) su un conto reale e il comportamento in caso di requote vanno verificati broker per broker: è la verità, non c'è alternativa.

Inoltre, inserire una chiusura parziale non significa migliorare i risultati. Nelle strategie trend following con win rate basso, dove pochi grandi profitti sostengono il risultato complessivo (per esempio DONCHIAN ENGINE, con un win rate del 34.5% nel backtest), si riduce il volume proprio quando il profitto sta crescendo, e l'aspettativa può diminuire. Le oscillazioni dei profitti e delle perdite si attenuano, ma cosa si perde in cambio lo si capisce solo verificando EA per EA. Nemmeno noi siamo riusciti a testare tutte le combinazioni.

Se aggiungi tu stesso una chiusura parziale a una strategia come DONCHIAN ENGINE, tieni presente che i risultati della verifica originale non valgono più così come sono.

  • Nella combinazione chiusura parziale + trailing, a rompersi è più il "passaggio di stato" che la logica
  • Lo stadio della chiusura parziale va ricavato da storico delle esecuzioni e volume residuo, non da un flag in memoria
  • Il lotto va troncato secondo lo step, verificando che il residuo non scenda sotto il lotto minimo
  • Le modifiche dello SL vanno concentrate in un solo punto, mosse solo in direzione favorevole, senza cancellare il TP
  • Poiché nel backtest si vede poco, fai un test di ricollegamento su un conto demo
  • La chiusura parziale attenua le oscillazioni di profitti e perdite, ma può anche ridurre l'aspettativa

Altri accorgimenti di implementazione sono raccolti anche in Know-how su EA e MT5.

📧 Corso email gratuito (8 email) + pacchetto di 13 indicatori MT5 riservato agli iscritti

* Privacy rigorosamente protetta. Potete cancellarvi in qualsiasi momento.

Hai domande su EA o Forex?

Puoi pubblicarle sul forum di trading di Nattzy (registrazione gratuita). Sono benvenute anche domande che vanno oltre questo articolo: impostazioni degli EA, scelta del broker e altro.

Chiedi su Nattzy ↗

Commenti e domande