In questo articolo
Dopo questo articolo saprai…
- Definire un compito automatizzato con comportamento verificabile.
- Riconoscere storico incompleto e quotazioni di istanti diversi.
- Riconciliare lo stato prima di ripetere una richiesta ambigua.
I concetti senza lasciare l’articolo
Media mobile semplice, SMA Piano di trading Backtesting Valore nozionale della posizione Conto demo Valore atteso (expectancy)Il primo progetto algoritmico può registrare segnali, dimensionare una posizione o controllare l’esposizione senza inviare ordini. Scegli un’operazione di cui sai spiegare e verificare il risultato. Dati, regola e comportamento del programma vengono prima dei permessi operativi: automatizzare non dimostra redditività.
Che cosa automatizzi davvero?
Separa scelta del segnale, esecuzione di una decisione già presa, gestione della posizione e report. Dividere un ordine esistente non equivale a scegliere gli ingressi. Il rapporto BIS del 2020 sugli algoritmi di esecuzione FX tratta struttura del mercato, esecuzione e rischi; non certifica il rendimento di un robot retail. In quel documento EA significa execution algorithm, mentre in MetaTrader indica Expert Advisor: la stessa sigla non identifica lo stesso compito.
La specifica deve indicare strumento, fonte dati, orari, timestamp della decisione, ingresso, uscita, volume, limite di esposizione e comportamento se esiste già una posizione. Restano scelte umane e responsabilità di supervisione. Il software può eliminare un errore manuale e introdurne un altro, per esempio una richiesta duplicata dopo il riavvio. Correttezza del programma e risultato economico della regola richiedono verifiche separate.
Scegliere lo strumento per il compito
Per un promemoria può bastare un avviso. Il dialogo standard MT5 confronta prezzi, volume dell’ultima esecuzione o ora; non è un editor arbitrario di medie mobili e ATR. Una logica personalizzata può richiedere indicatore o EA. MQL5 opera nel terminale MT5; Python può analizzare dati o utilizzare un collegamento documentato pertinente. Non esiste una scala obbligatoria avvisi → MQL5 → Python → FIX.
Conta la compatibilità con conto, prodotto, dati e operazione. Non presumere numero standard di righe di codice, tempo di sviluppo, latenza o API disponibili presso ogni broker. Expert Advisor: regole, prove e posizioni del robot spiega il comportamento degli EA; Backtest Python: dati, tempi ed eseguiti riconciliati tratta un ambiente di ricerca distinto. Implementare la stessa idea in entrambi è una scelta, non un prerequisito.
Il terzo dato della media non si può indovinare
Regola didattica: ultima chiusura completata maggiore della media di esattamente tre chiusure completate, con pesi uguali e senza arrotondare prima del confronto. Servono x, 100 e 102, dal dato più vecchio al più recente. x è un valore storico mancante, non un prezzo futuro. Conosciamo soltanto 100 e 102.
Un dato mancante cambia la decisione
Scorri orizzontalmente o ingrandisci il diagramma per leggere i dettagli.
Con x = 98 la media è 100 e 102 > 100. Con x = 106 la media è 308/3, circa 102,667: 102 non la supera. Fare la media dei soli due dati dà 101 ma cambia la regola; usare zero inventa una chiusura. Registra dati incompleti e sospendi la valutazione. Se il recupero riesce dopo, controlla che riguardi proprio le barre previste. Il numero restituito da CopyRates è parte della verifica: successo parziale non equivale a tre record validi. Questo esempio riguarda completezza, non convenzione degli indici o ordine fisico dell’array.
Competenze e scelta del linguaggio
Servono programmazione e trattamento dei dati adeguati al progetto, dimensionamento del rischio e ragionamento statistico. Una breve curva di equity descrive quel campione, non il profitto futuro. Pianifica dati rappresentativi, valutazione separata fuori campione e controlli di esecuzione demo. MQL5 comunica attraverso MT5; Python può usare il terminale o altre interfacce documentate. Latenza completa dipende da codice, hosting, rete e broker: nessuna promessa generale di pochi millisecondi.
Da un’idea a una prova riproducibile
Per un crossover EUR/USD H1 ipotetico definisci EMA, Media mobile semplice, SMA, ATR, momento del segnale, stop e obiettivo. Una specifica offline può usare EMA 21, SMA 55 e una distanza basata su ATR scelta per l’esercizio, dichiarando barre completate e momento della valutazione. Inizia registrando segnali. Prova un segnale, assenza di segnale, cambio di barra, storico mancante e posizione già aperta. Input mancante non significa risultato valido «nessun ingresso».
Confronta decisioni manuali e automatiche sugli stessi dati e date. Cinque anni di backtest automatico non devono coincidere con sei mesi manuali: campioni, regimi e feed sono diversi. Riconcilia prima le discrepanze sullo stesso periodo, modella costi, poi valuta regole congelate su dati separati. Se cambi la regola dopo aver visto il risultato fuori campione, quel periodo entra nello sviluppo: non rimane una verifica intatta.
Modello USD originario separato: equity 10.000 USD, budget iniziale scelto 0,5 % per la perdita di prezzo, stop a 25 pip, pip EUR/USD 0,0001 e lotto standard da 100.000 EUR. Valore del pip 10 USD per lotto; budget 50 USD. Prima dei costi, 50/(25 × 10) = 0,20 lotti, cioè Valore nozionale della posizione di 20.000 EUR. Le impostazioni non sono raccomandazioni universali: nominale, margine e perdita pianificata sono grandezze diverse. Commissioni e ipotesi di esecuzione vengono considerate prima di adattare volume e passo contrattuale. Uno stop ordinario può eseguire oltre il livello durante un gap: 50 USD non è un massimo incondizionato.
Controlla anche la coerenza della quotazione. A t 1 Bid/Ask 1,1000/1,1002 e a t 2 1,1010/1,1012 danno entrambi spread di 2 pip. Mescolare Ask di t 1 e Bid di t 2 produce invece (1,1002−1,1010)/0,0001 = −8 pip. Un filtro spread < 2,5 accetterebbe quel dato costruito: non è uno spread negativo osservato nel mercato. SymbolInfoTick restituisce prezzi e ora dell’aggiornamento in una struttura MqlTick; verifica il successo e usa i campi della medesima struttura conservata. Aggiungi un caso che mescoli intenzionalmente due letture per scoprire l’errore. Coerenza dei dati non garantisce liquidità o prossimo fill.
Controesempio EUR distinto: riavvio e richiesta ambigua. Contratto inventato da 1 EUR per punto e unità, cinque unità, distanza di perdita assegnata 4 punti, senza costi: esposizione alla perdita modellata 20 EUR, che esaurisce il budget scelto 20. La prima richiesta è stata eseguita ma la risposta locale manca. Il riavvio invia altre cinque unità senza riconciliare: totale dieci e perdita modellata 40 EUR. «Non ho ricevuto conferma» non dimostra «non esiste la posizione». La procedura sospende nuovi invii e interroga ordini, deal e posizione; non chiude o inverte automaticamente sulla base dell’assenza di risposta. Costi, gap e slippage restano fuori da questo conto didattico.
Prima riconciliare, poi decidere se inviare.
- Prima richiesta
- 5 unità / 20 EUR – Budget assegnato 20 esaurito.
- Ritentativo cieco
- Altre 5 unità – Totale 10: perdita modellata 40 EUR.
- Stato ambiguo
- Sospendere nuovi invii – Controllare ordini, deal e posizione; nessuna inversione automatica.
Tre verifiche: codice, dati e risultato economico
Regola sbagliata, codice errato, dati incompleti, differenze esecutive e problemi operativi sono cause distinte, senza una classifica universale in due sole categorie. OrderSend che restituisce true non dimostra da solo un fill completo: esamina codici di risultato ed effettive transazioni. Prima di ritentare dopo risposta ambigua controlla lo stato reale. Registra versione della regola, timestamp informativo e motivo dell’azione o dell’astensione.
Un Backtesting richiede dati pertinenti al prodotto, costi e cronologia corretti. Conserva tutte le varianti, anche quelle fallite; confronta singole decisioni e non solo profitti finali simili ottenuti con operazioni diverse. Verificare un vantaggio: campioni, costi e pesi sviluppa la valutazione di un vantaggio senza garantire aumento delle probabilità di successo.
Win rate, Valore atteso (expectancy) e profit factor rispondono a domande diverse. Campione fittizio a R fisso: cento operazioni, quaranta da +2 R e sessanta da −1 R. Vincite complessive 80 R, perdite 60 R, media +0,2 R prima dei costi; profit factor 80/60, circa 1,33. Non è una strategia testata, né una previsione del prossimo campione.
Annota costi di dati, hosting, licenze e tempo anche se il linguaggio non richiede una licenza a pagamento. Prezzi, diritti d’accesso e recupero dai guasti dipendono dalla configurazione. Verifica riavvii e interruzioni: un VPS non elimina supervisione e rischi. Per orari di esercizio italiani usa Europe/Rome sulla data effettiva, mantenendo separati timestamp UTC e ora del broker; lingua del programma non determina sede del servizio o normativa del conto.
Il primo progetto può fermarsi a un registro affidabile
- Scrivi dati, timestamp, regola, risultato e casi di sospensione per una sola operazione. Un registro verificabile può essere un progetto completo senza ordini.
- Controlla completezza e coerenza su esempi piccoli, distinguendo barra corrente e completata. Conserva il timestamp degli input di ogni decisione.
- Se occorrono ordini, usa un ambiente chiaramente demo. Prova conferma, rifiuto, riavvio e risposta ambigua, controllando lo stato prima del nuovo invio. Una scadenza di calendario non obbliga a passare al denaro reale.
- Congela la regola per dati separati, con costi del prodotto e stesse date nel confronto. Indaga differenze rilevanti senza inventare una tolleranza percentuale universale.
- Definisci pausa, aggiornamento e ripartenza. Disattivare AutoTrading locale non chiude posizioni; distingui protezioni accettate dal server e regole gestite dal programma, controllando ogni istanza remota. Demo non garantisce esecuzione live identica.
Verifica ciò che hai imparato
Circa 2 minuti di esercizio.
Mostra risposta e spiegazione
98 e 106 sono completamenti inventati che danno risposte opposte. Non scegliere un dato assente.
Altre domande
Che cosa significa iniziare con il trading algoritmico?
Specificare un’operazione per software: segnali, esecuzione, gestione o report. Non devono essere tutte presenti e il primo progetto può non inviare ordini. Dati, tempi, input mancanti, esposizione e stato effettivo vanno definiti; automazione non prova vantaggio economico.
Come scelgo tra avvisi, EA e Python?
In base al compito, senza sequenza obbligatoria. Gli avvisi nativi MT5 gestiscono confronti semplici; logiche arbitrarie possono richiedere indicatore o EA. MQL5 opera nel terminale, Python può svolgere ricerca e collegarsi tramite interfacce documentate. Non esiste una durata universale di apprendimento o diritto automatico alle API del broker.
Quali competenze verifico prima?
Programmazione e dati sufficienti ai comportamenti utilizzati, più rischio e statistica per i risultati. Cambiare un parametro senza errore di sintassi non verifica stato, esecuzione o modello economico. Nessun numero universale di trade o giorni demo dimostra un vantaggio.
Quali guasti devo provare prima di ampliare il progetto?
Input incompleti, quotazioni di istanti diversi, rifiuto, riavvio e risposta ambigua, oltre alla regola economica. Conserva varianti fallite e procedura di sospensione. Un risultato storico positivo non dimostra da solo sicurezza o correttezza del software.
Due chiusure bastano per la media a tre?
No. Con 100 e 102 noti, il precedente 98 dà media 100, il 106 dà circa 102,667. Le decisioni sono opposte. La media 101 dei soli due prezzi cambia regola; zero o 106 non possono essere inventati come dato recuperato.
Fonti e verifica
- BIS Markets Committee — FX execution algorithms, 2020
Executive summary pagina 6 e sezioni pertinenti su slicing/controlli lette. Execution algorithm non è prova di redditività di un Expert Advisor retail; nessuna statistica storica presentata come attuale.
- MQL5 — CopyRates
Sezioni 77–156 lette: conteggio restituito, errore, storico parzialmente pronto e barra corrente. Esempio della media costruito, non mercato reale.
- MQL5 — SymbolInfoTick
Definizione 59–80 letta: prezzi e timestamp nella struttura MqlTick, ritorno booleano. Il caso −8 pip mescola deliberatamente letture diverse.
- MQL5 — OrderSend
Definizione e note 76–121 lette: true non equivale a esecuzione completata, controlli dei codici e transazioni multiple. Nessun esperimento nativo o garanzia di fill dichiarati.
I calcoli usano ipotesi esplicite. Non sostituiscono i dati attuali di mercato o le condizioni dell’intermediario.
