Nel netting due robot e ordini manuali possono modificare un'unica posizione. Il risultato comune non identifica automaticamente quello di ciascun programma. Ricostruisci eseguiti e collegamenti, poi dichiara una convenzione di attribuzione analitica. La nostra convenzione non sostituisce cronologia del broker e non stabilisce contabilità fiscale italiana o di altri paesi.

Il magic number non divide la posizione comune

MT5 netting mantiene una posizione per simbolo, modificata dagli eseguiti successivi. Un ordine può produrre più eseguiti; nomi diversi dei programmi non creano portafogli separati. DEAL_MAGIC identifica il magic dell'eseguito, DEAL_REASON la fonte o causa: sono proprietà diverse. Zero da solo non prova decisione manuale.

Conserva ordine, identificativo posizione, timestamp e mappatura concordata fra programmi ed etichette. Un'uscita manuale può ridurre quantità costruita da A e B: l'etichetta della chiusura non decide quale entrata attribuire come chiusa. Fonte dell'istruzione e proprietario analitico sono colonne diverse.

Collega i record prima di interpretarli

Tratta numeri di ordine ed eseguito come identificativi, non quantità. DEAL_ORDER collega l'ordine, DEAL_POSITION_ID il ciclo. POSITION_IDENTIFIER permette di cercare storia; POSITION_TICKET corrente può cambiare per operazioni di servizio del server. Registra simbolo, direzione, quantità effettiva, prezzo e istante di ciascun eseguito.

HistorySelectByPosition richiede identificativo e successo della lettura. Verifica copertura dell'export: la lista visibile in una finestra può non contenere tutto. Preserva originale prima di aggiungere interpretazioni. Commissioni, fee, finanziamento e profitto nella valuta del conto sono componenti distinte; operazioni di saldo non sono buy/sell. Nei parziali la richiesta iniziale non sostituisce quantità eseguita.

Un conto, due attribuzioni diverse

Due acquisti e due uscite manuali

Modello originale EUR/USD lineare 100.000 EUR per lotto, conto USD inizialmente senza posizione. Ogni riga è un eseguito completo: buy all'Ask assunto, sell al Bid. Quattro commissioni da 1 USD, fee e swap zero. Non sottrarre un secondo spread dai prezzi già eseguiti. Il ciclo ha POSITION_IDENTIFIER 5001, numeri inventati.

Su uno schermo piccolo scorri la tabella per leggere tutte le colonne.

Eseguito/ordineFonteOperazionePosizione dopo
7001/5001EA ABuy 0,10 a 1,1000Long 0,10
7002/5002EA BBuy 0,10 a 1,1020Long 0,20
7003/5003ManualeSell 0,10 a 1,1010Long 0,10
7004/5004ManualeSell 0,10 a 1,1030Nessuna

La media comune dopo acquisti è 1,1010. Prima riduzione realizza zero di prezzo, seconda 20 USD; quattro commissioni lasciano 16. È aritmetica degli input, non storia live osservata.

FIFO analitico attribuisce 7003 ad A:10.000 ×(1,1010−1,1000)=10 USD;7004 a B:10.000 ×(1,1030−1,1020)=10. Con commissione d'entrata e uscita per ogni quantità: A 8 e B 8. LIFO analitico assegna 7003 a B:−10 prezzo;7004 ad A:+30. Dopo oneri B−12, A 28; somma ancora 16. Non sono due metodi alternativi di contabilità server: sono nostre convenzioni da mantenere coerenti.

Stesso totale, risultati dei robot differenti

Stesso conto, attribuzioni diverseCiclo originale chiuso inventato USD, quattro eseguiti, prezzo 20 meno commissioni 4. Convenzioni analitiche, non metodi server.ESEMPIO DI CALCOLOTotale conto16 USDFIFO analiticoA+8 /B+8LIFO analiticoA+28 /B−12ConfrontoTotale invariato
Stesso conto, attribuzioni diverse. Ciclo originale chiuso inventato USD, quattro eseguiti, prezzo 20 meno commissioni 4. Convenzioni analitiche, non metodi server.

Entrambe riconciliano 16 USD ma non lo stesso risultato per A e B.

Totale conto
16 USD – 20 prezzo−4 commissioni
FIFO analitico
A+8 /B+8 – Quantità più vecchia prima
LIFO analitico
A+28 /B−12 – Quantità più recente prima
Confronto
Totale invariato – Metodo da dichiarare prima degli esiti

Nuovo EUR separato: due unità lineari comprate da A a 100 e B a 104, una ciascuno; uscite manuali a 102 e 106. Risultato prezzo 4 EUR, quattro commissioni ipotetiche da 0,50 lasciano 2. FIFO assegna 1 ad A e 1 a B; LIFO assegna 5 ad A e−3 a B. Totale invariato 2, classifica diversa. Non scegliere convenzione dopo aver visto quale robot appare migliore.

Il realizzato isolato può non coincidere

Dopo 7003 assumiamo Bid 1,1010. La posizione comune mostra zero realizzato e zero flottante di prezzo. FIFO attribuisce+10 realizzato ad A ma lascia−10 flottante sulla quantità di B. La somma resta zero; tre commissioni danno−3 in entrambe le rappresentazioni. Confrontare soltanto la parte chiusa col campo del server mentre il ciclo è aperto è scorretto.

Dopo 7004 non c'è più valorizzazione aperta e somma finale 16. L'accordo dei totali non seleziona la convenzione adatta a ogni scopo. Nella storia reale parziali, inversioni, correzioni e addebiti separati richiedono controlli specifici. Se manca un record, lascia l'attribuzione irrisolta: non inventare prezzo o origine per forzare riconciliazione.

Un cambiamento della convenzione va marcato come cambiamento del metodo, non risultato della strategia. Limiti del conto e di ogni robot devono comunque controllare l'esposizione effettiva comune, non soltanto portafogli virtuali indipendenti.

Prima di valutare i robot

  1. Seleziona un ciclo chiuso, conserva export originale e collega eseguiti, ordini e identificativo.
  2. Riconcilia quantità effettive e tutti gli oneri, senza aprire un'operazione live per produrre dati di prova.
  3. Dichiara convenzione di quantità e costi prima dei risultati, distinguendo fonte e attribuzione.
  4. Per cicli aperti confronta realizzato più flottante allo stesso prezzo e conserva entrambe le viste.

La guida a realizzato e flottante permette di praticare questa distinzione. L'attribuzione analizza comportamento: non dimostra redditività futura e non modifica il registro originale del conto.