Backtesting e test prospettici: metodi, evidenze e insidie

Testare una strategia significa verificare come si comportano le sue regole sui dati e quanto il risultato dipende dalle ipotesi adottate. Un backtest usa il passato; un test prospettico registra le decisioni man mano che arrivano nuovi dati. Entrambi richiedono una specifica chiara, una contabilizzazione realistica dei costi e una descrizione onesta del campione. Questa lezione propone una scheda di test di dodici campi, esempi di validazione cronologica, strumenti di calcolo eseguibili e una procedura per confrontare le simulazioni storiche con le osservazioni successive. L'obiettivo è distinguere ciò che le evidenze sostengono da ciò che rimane incerto, senza trasformare un grafico favorevole in una promessa di rendimenti futuri.

La demo osserva i segnali in arrivo ma non riproduce ogni condizione di esecuzione reale.

È mantenuta l'illustrazione originale. La demo utilizza esecuzioni simulate; l'esecuzione effettiva sul mercato viene valutata sul conto micro. Il metodo scritto qui sotto spiega le ipotesi e i limiti della progressione illustrata.

Punti chiave in 60 secondi
  • Sia i test storici sia quelli prospettici possono fornire evidenze. Nessuno dei due dimostra automaticamente un vantaggio duraturo, e l'esecuzione in demo non è un'esecuzione reale.
  • Fissa la domanda, la versione, la suddivisione dei dati, il modello di esecuzione e i criteri di valutazione prima di esaminare il risultato della valutazione. Tieni un registro di tutti i tentativi di ricerca.
  • La disponibilità del segnale e il momento dell'esecuzione sono cose diverse. I lati bid/ask, i percorsi intrabarra ambigui, le esecuzioni parziali, i gap e gli addebiti possono cambiare la conclusione.
  • Il solo numero di osservazioni non è un criterio di promozione. Riporta dispersione dei risultati, dipendenza, copertura e incertezza; gli intervalli del tasso di successo non stimano il valore atteso.
  • La simulazione bootstrap crea campioni alternativi sulla base di determinate ipotesi, non nuove osservazioni di mercato. Un percentile di drawdown simulato non garantisce una perdita massima.
  • «Non passare al reale» ed «esito inconcludente» sono risultati legittimi. Una checklist o una durata di calendario non obbligano mai a iniziare a operare sul mercato reale.

Registra ipotesi, regole, campione e risultati nel Toolkit N: il protocollo di test delle strategie. Il modulo integra il metodo di questo capitolo con salvataggio locale, esportazione e stampa.

1. Backtesting e test prospettici: domande diverse, risposte diverse

Un buon backtest non significa che una strategia sia pronta per essere negoziata. Il test storico indaga il passato con un modello specificato. Il test prospettico osserva le decisioni man mano che arrivano nuovi dati. Le due fasi forniscono informazioni diverse: un backtest può offrire un campione più lungo di risultati, mentre l'osservazione prospettica può rivelare problemi di tempistica, implementazione e rispetto delle regole. Solo una fase reale adeguatamente controllata misura le esecuzioni e gli addebiti effettivi; l'esecuzione in demo rimane una simulazione. Sostituire una fase con l'altra elimina le informazioni che la fase mancante avrebbe dovuto fornire.

Backtesting: la domanda sul passato

Un backtest chiede: «Come si sarebbero comportate queste regole, per esempio, nei tre-dieci anni precedenti?». L'utilità della risposta dipende dalla qualità dei dati, del modello di esecuzione e dei costi e dalla validità del disegno di ricerca. L'analisi è retrospettiva:

  • Può essere rapido. Cinque anni di dati possono richiedere pochi minuti in un test semplice, anche se una modellazione dettagliata a tick e ampie ricerche dei parametri possono richiedere molto più tempo.
  • Può produrre centinaia o migliaia di osservazioni, a seconda della frequenza dei segnali e del periodo storico.
  • Consente di confrontare varianti dei parametri. Questa flessibilità è anche una fonte importante di distorsione da selezione e sovraottimizzazione.
  • È sensibile a tick errati, candele mancanti, timestamp sbagliati e costi irrealistici. Un campione grande non corregge un errore sistematico nei dati o nel modello.

Un backtest non dimostra che una strategia funzioni adesso. Un regime rappresentato nel 2018–2022 non deve necessariamente persistere nel 2024–2026. Analogamente, i risultati di una particolare tendenza storica dello yen non possono essere trasferiti semplicemente a un contesto diverso di politica monetaria o di intervento. Questi esempi illustrano un cambiamento delle condizioni, senza affermare che una determinata strategia debba riuscire o fallire in un periodo specifico. Documenta l'esposizione ai regimi invece di considerare l'intervallo di date una prova sufficiente.

Test prospettici: la domanda sul futuro

Un test prospettico chiede: «Come si comportano le regole fissate man mano che arrivano nuove osservazioni, e la loro implementazione corrisponde al processo previsto?». Procede in avanti in tempo reale:

  • Richiede tempo. A cinque operazioni alla settimana, 100 operazioni richiedono circa 20 settimane, all'incirca cinque mesi, senza considerare festività e opportunità saltate.
  • Il campione può rimanere piccolo. Un progetto pilota di 30–80 operazioni è un esempio di evidenza limitata, non una descrizione verificata delle abitudini di ogni trader al dettaglio.
  • Le osservazioni future non sono disponibili al momento di una vera decisione in tempo reale. Ciò elimina una via per l'anticipazione, ma successive rietichettature, revisioni dei dati o modifiche retrospettive possono comunque contaminare la valutazione registrata.
  • Può mettere in luce variazioni dello spread, latenza, richieste respinte e slippage. Le evidenze dipendono dalla modalità: le registrazioni reali misurano l'esecuzione reale, mentre le modalità demo e simulate non la riproducono completamente.
  • Rivela errori umani nell'implementazione: quantità sbagliate, decisioni tardive, segnali mancati e interventi discrezionali su una posizione aperta.

Un test prospettico breve non risolve l'affermazione di un vantaggio di lungo periodo. È particolarmente utile per identificare uno scarto fra le ipotesi storiche e l'implementazione attuale. L'inferenza sul lungo periodo continua a dipendere da dimensione del campione, dipendenza, copertura dei regimi e incertezza, non dall'etichetta «prospettico».

Tre modalità di test: analisi manuale, replay e automazione

«Backtesting» può indicare tre attività differenti. Distingui le modalità prima di confrontare le rispettive evidenze:

  • Analisi manuale dei grafici. Scorri lo storico e registri le decisioni. Aiuta a individuare regole poco chiare e casi limite. Una normale analisi con le candele successive visibili è vulnerabile al senno di poi, a un ritmo selettivo e al ricordo dell'esito; non va presentata come un campione imparziale della performance. Un protocollo manuale in cieco progettato con cura è un esercizio diverso e più impegnativo.
  • Replay barra per barra. Uno strumento rivela lo storico in sequenza nascondendo le osservazioni successive. Ne sono esempi il replay dei grafici, le modalità visuali dei tester e le applicazioni dedicate al replay, nei limiti dell'effettivo comportamento dei dati e della loro temporizzazione. Il replay può verificare la coerenza della classificazione discrezionale e i tempi di risposta se il ritmo è controllato. Non stabilisce comunque i costi reali di esecuzione. Riavvolgere dopo aver visto l'esito e sostituire la decisione originaria contamina quella prova; registra separatamente un replay esplorativo.
  • Test storico automatizzato. Il codice applica regole a un insieme di dati. È una via efficiente verso campioni ampi e riproducibili, ma introduce tutti i pericoli della sezione 2: fuga di informazioni, ipotesi sull'esecuzione, costi e selezione ripetuta. L'automazione riproduce con grande coerenza anche una regola sbagliata.

La sequenza conta. Il replay prima della programmazione può rivelare istruzioni che due persone interpretano diversamente. Un tester non può fornire la definizione mancante; implementa soltanto l'interpretazione scelta dal programmatore. Fissa la specifica e la versione della strategia prima di valutarla, come descritto nell'articolo 15.3, e non dopo aver esaminato il risultato.

Che cosa ogni fase può e non può rivelare

QuestioneTest storicoTest prospettico
Anticipazione: informazioni future usate in una decisioneUn rapporto sui profitti non diagnostica da solo le proprie fughe di informazioni. La revisione del codice, i controlli dei timestamp e il replay controllato possono rivelarle.I registri in tempo reale possono evidenziare divergenze rispetto a una ricostruzione storica successiva. Conserva i valori e le decisioni originali.
Adattamento dei parametri alla curvaUna valutazione mai esaminata, la ricerca walk-forward e un registro completo dei tentativi possono indagarlo; nessuno è una soluzione automatica.Può rivelare un deterioramento dopo sufficienti osservazioni o un cambio di regime. Un progetto pilota breve e favorevole può comunque essere fortuna.
Costi di esecuzione modellati in modo insufficienteSolo nella misura in cui i dati di input e il modello di esecuzione li rappresentano.I costi reali possono essere misurati direttamente. I costi della demo e dell'operatività simulata rimangono approssimazioni incomplete.
Un cambio di regime dopo il periodo storicoNon può osservare condizioni future assenti dall'insieme di dati.Osserva l'ambiente attuale, ma rilevarlo non stabilisce automaticamente quanto durerà.
Il trader non riesce a seguire le regoleUn test meccanico presuppone normalmente che le istruzioni programmate vengano seguite; i protocolli manuali possono rivelare alcuni problemi di usabilità.Le decisioni con timestamp rivelano segnali mancati, deviazioni e interventi dell'operatore effettivo.
Precisione della stima del vantaggio operativoUn campione più lungo può ridurre l'incertezza se qualità, dipendenza e selezione vengono gestite correttamente.Una breve prova pilota prospettica è spesso insufficiente: 5 operazioni alla settimana producono circa 130 osservazioni in mezzo anno (26 × 5), con un intervallo ampio a questa dimensione campionaria. La precisione dipende anche dalla distribuzione dei risultati.
Drawdown su orizzonti lunghi (3+ anni, diversi cicli)Diversi anni possono coprire più condizioni storiche, ma 5 anni non garantiscono diversi cicli di mercato indipendenti né il peggior percorso di perdite possibile.Una breve prova pilota prospettica copre di solito soltanto 1 ciclo di mercato o le condizioni effettivamente osservate; un registro prospettico più lungo può infine aggiungere evidenze più ampie.

Il lavoro storico fornisce contesto e profondità campionaria; quello prospettico verifica se il processo regge al contatto con nuovi dati e con l'ambiente operativo previsto. Un backtest rapido e una fase di osservazione di 90 giorni impongono tempi di attesa molto diversi, ma il tempo trascorso non è un motivo per omettere quest'ultima. Né un calcolo di dieci minuti né un progetto pilota di tre mesi garantiscono che siano state raccolte le evidenze necessarie.

Riconciliare i segnali storici e prospettici

Uno strumento diagnostico particolarmente utile è un confronto segnale per segnale sulle stesse date. Esporta entrambe le fonti in uno schema comune, per esempio:

timestamp_utc, broker_server_time, pair, setup_id, direction, entry_rule_hash,
entry_price, sl_price, tp_price, trigger_bar_close, source

Conserva abbastanza campi aggiuntivi da distinguere il momento del segnale, l'effettiva disponibilità delle informazioni, le richieste d'ordine e le esecuzioni. Dopo i primi 30–60 giorni di osservazione, esegui l'implementazione storica fissata sui dati archiviati di quegli stessi giorni. Confronta i due inventari. Una soglia illustrativa di discrepanza del 5–10% può avviare un'indagine, ma anche differenze minori possono essere rilevanti se favoriscono sistematicamente il backtest. Definisci il denominatore e se stai abbinando segnali, richieste o esecuzioni prima di riportare una percentuale.

Le possibili cause includono fuga di informazioni future, repainting, feed differenti, errori di fuso orario, codice incoerente e tentativi falliti di invio degli ordini in tempo reale. Cinquanta segnali storici contro dodici prospettici nelle stesse date sono una discrepanza sostanziale irrisolta; non procedere finché non viene spiegata. Leggere Close[0] durante una barra non è automaticamente un errore: l'errore è trattare il suo successivo valore finale come se fosse noto al momento della decisione precedente.

Normalizza il tempo prima di diagnosticare la strategia. Salva sia timestamp_utc sia broker_server_time insieme alla convenzione di scostamento del server valida per ogni data. Alcuni fornitori MT4/MT5 usano orologi del server UTC+2 o UTC+3 associati alla chiusura di New York, ma non è una regola universale. Confrontare registri non normalizzati può creare un apparente problema di anticipazione quando i due sistemi hanno in realtà usato barre diverse. Converti correttamente i timestamp, poi confronta. Conta anche le barre mancanti e i timestamp duplicati, distinguendo le legittime chiusure del mercato dai vuoti del feed. Timestamp di tick duplicati possono rappresentare aggiornamenti di quotazione distinti: non eliminare quindi ogni tick con lo stesso orario senza verificarne identità e sequenza.
Perché l'osservazione prospettica è una fase separata. Alcuni processi di ricerca istituzionale osservano una strategia nuova sui dati in arrivo prima di assegnarle capitale. Le descrizioni pubbliche sono troppo generiche per fornire un unico «numero standard di mesi» trasferibile. La durata appropriata dipende dalla frequenza dei segnali, dalle risorse e dalla precisione richiesta. La lezione pratica è separare le fasi di evidenza, non richiamarsi a un calendario istituzionale. Saltare l'osservazione demo o in parallelo dopo un buon backtest elimina un'occasione per individuare difetti di tempistica e operativi prima di rischiare fondi; una successiva fase reale limitata rimane necessaria per misurare l'esecuzione reale e richiede un'autorizzazione propria.

La scheda di test: dodici campi prima di interpretare il risultato

Senza una scheda di test, un risultato potrebbe essere impossibile da riprodurre sei mesi dopo. Devi sapere quali dati, implementazione, modello dei costi e cronologia di selezione lo hanno prodotto. Compila i primi nove campi prima di eseguire la valutazione. Il resto dell'articolo spiega perché ogni campo può cambiare la conclusione.

Scheda illustrativa: non rappresenta performance storiche. Ogni valore nella colonna di esempio è sintetico e illustra il formato di rendicontazione. Il fornitore citato è una scelta ipotetica dei dati, non un'affermazione che tale insieme di dati sia stato effettivamente acquisito e il test eseguito.
CampoChe cosa registrareVoce illustrativa: dati sintetici
1. DomandaUna frase che indichi che cosa indaga il test.«Il breakout del range EUR/USD precedente a Londra ha un valore atteso positivo al netto dei costi?»
2. Versione della strategia e del codiceIdentificativo di versione e hash della specifica e dell'implementazione fissate.lonbreak v1.3, prefisso illustrativo dell'hash a91f…, fissati prima della prima esecuzione OOS.
3. Dati e periodoFornitore, strumento, risoluzione, bid/ask/mid, fuso orario, copertura e pulizia.Tick bid/ask EUR/USD di Dukascopy, UTC, 2018-01 → 2024-12; eliminati i record duplicati confermati; mantenuti aggiornamenti distinti con lo stesso timestamp; documentati 4 giorni mancanti e 11 vuoti superiori a 30 minuti.
4. SuddivisioneConfini cronologici di IS, validazione e OOS; specifica se «prospettico» indica un insieme storico tenuto da parte o dati in arrivo.IS 2018-01 → 2021-12; validazione 2022-01 → 2023-06; OOS mai esaminato 2023-07 → 2024-12. L'osservazione prospettica inizia il 2026-05-04.
5. Modello di esecuzioneDisponibilità del segnale, esecuzione, ritardo, esecuzioni parziali, gap e gestione delle barre ambigue.Segnale alla chiusura M15; esecuzione long all'ask dopo un ritardo modellato di 300 ms, short al bid; una barra con ordine irrisolto fra stop e obiettivo è conteggiata come stop prima; un gap usa il successivo prezzo eseguibile disponibile. Questo esempio di scheda di test è distinto dalla strategia candidata dell'articolo precedente.
6. CostiSpread, slippage, commissioni e finanziamento, con una verifica esplicita del doppio conteggio.Spread dai tick bid/ask; slippage sfavorevole illustrativo di 0,1 × M5 ATR(14) all'entrata e all'uscita; commissione equivalente a 0,6 pip per l'operazione completa di andata e ritorno; finanziamento dal prospetto pertinente del fornitore. Lo spread incorporato nelle esecuzioni non viene sottratto di nuovo.
7. Varianti e tentativiTutte le combinazioni di parametri e le versioni delle regole provate, comprese quelle scartate.96 combinazioni di parametri più 4 ulteriori esperimenti autonomi sull'uscita = 100 tentativi. Applicare l'intero prodotto 96 × 4 significherebbe invece 384 tentativi. Registra ogni tentativo in 02_IS/trial_log.csv.
8. MetricheDefinizioni, denominatori e convenzioni di campionamento.Valore atteso in R con R₀ fissato come rischio monetario pianificato prima dell'entrata; profit factor; drawdown dal massimo del capitale raggiunto fino a quel momento; numero di operazioni e stime dell'incertezza.
9. Criteri decisionali prestabilitiEsiti positivi, negativi e inconcludenti, scritti prima del test.Continuare la ricerca se il limite inferiore al 95% del valore atteso OOS è superiore a zero; tornare alla progettazione se il limite superiore è inferiore a zero; altrimenti classificare il risultato come inconcludente. «Continuare» non è un'autorizzazione automatica all'operatività reale.
10. RisultatiStime con intervalli, non soltanto valori puntuali.OOS n = 214, valore atteso +0,12R, intervallo illustrativo al 95% (−0,07R, +0,31R): include lo zero.
11. LimitiChe cosa il test non misura e che cosa può contaminarlo.Un fornitore e una coppia; nessun dato sulla profondità del book; nessuna crisi di liquidità osservata; 100 tentativi esplorativi senza una correzione specificata per test multipli. Indica come la selezione e l'integrità del campione tenuto da parte influenzino l'inferenza.
12. File per la riproduzionePercorsi e hash completi degli input, del codice e degli output necessari.01_data/eurusd_2018_2024.csv (sha256), lonbreak_v1_3.mq5, costs.json, trial_log.csv e il notebook bootstrap. L'hash abbreviato sopra è soltanto un esempio di visualizzazione.

Il campo 9 è facile da omettere. Un criterio scritto dopo aver visto il risultato è una descrizione retrospettiva, non una regola decisionale prestabilita. Il campo 7 conta altrettanto: senza il numero totale dei tentativi, il vincitore apparente può essere semplicemente il massimo fra molte ricerche. Nel campo 11 vanno esplicitati i limiti irrisolti. Se un input essenziale in un campo precedente è sconosciuto, non inventarlo; segnalalo come irrisolto e rinvia il test oppure limita di conseguenza la sua interpretazione.

2. Insidie dei test: anticipazione, sopravvivenza, adattamento della curva e sovraottimizzazione

Sono rischi metodologici, non semplici segnali di disattenzione del ricercatore. Una piattaforma o uno script personalizzato possono produrre un rapporto convincente mentre la configurazione o l'implementazione consentono un errore grave. Aspetti cognitivi come il bias di conferma e il senno di poi sono trattati nella sezione sulla psicologia del trading. Qui l'attenzione è sul disegno tecnico del test e sulle verifiche necessarie a metterne in luce i punti deboli.

Insidia 1: bias di anticipazione

L'anticipazione si verifica quando una decisione usa informazioni che sarebbero divenute disponibili soltanto in seguito. Le vie comuni comprendono:

  • Una decisione intrabarra basata sulla chiusura finale. Una strategia calcola la SMA(20) includendo la candela M5 attuale e dichiara di entrare quando quella candela chiude sopra la media. Al secondo 240 della candela di cinque minuti, la chiusura finale è ancora sconosciuta. Leggere l'attuale valore di Close[0] non è di per sé una fuga di informazioni future; interpretare una successiva chiusura finale come il valore disponibile al secondo 240 lo è. Verifica che cosa restituiscono effettivamente il tuo modo del tester e il codice a ogni callback, invece di presumere che una modalità chiamata «Solo prezzi di apertura» supporti la regola intrabarra prevista.
  • Un marcatore storico confermato in seguito. ZigZag, strumenti dei punti di swing, frattali, ancoraggi pitchfork scelti manualmente e alcuni canali personalizzati possono segnare una barra precedente usando informazioni che arrivano dopo. Un massimo di swing disegnato oggi dieci barre indietro potrebbe non essere stato confermato su quella barra. Il nome dell'indicatore non ne stabilisce l'esatto comportamento; lo fanno l'implementazione e il timestamp di conferma.
  • Dati macroeconomici indicizzati per periodo di riferimento anziché per momento di pubblicazione. Un valore etichettato «IPC di marzo» potrebbe essere pubblicato soltanto in aprile. Una strategia che lo usa prima della pubblicazione effettiva utilizza informazioni non disponibili. Verifica il calendario di pubblicazione dell'emittente, la convenzione dei timestamp del fornitore e la versione dei dati disponibile allora. Le revisioni successive sono un'altra fonte di fuga di informazioni.

Individuazione: osserva la strategia fissata sui dati in arrivo, poi riconcilia i segnali originali con una ricostruzione storica delle stesse date. Una divergenza è un problema da diagnosticare, non di per sé una prova di anticipazione. Altre spiegazioni comprendono un feed diverso, repainting, conversione temporale errata e tentativi falliti di invio degli ordini in tempo reale. Prima allinea tempo e dati; distingui segnali, richieste ed esecuzioni; poi esamina il flusso informativo della strategia. Riscrivere un indicatore corretto prima di controllare le barre di input può creare un problema nuovo senza spiegare quello vecchio.

Le implementazioni che meritano una verifica esplicita della tempistica delle informazioni comprendono:

  • ZigZag, frattali e costruzioni pitchfork. Stabilisci quando un pivot o un ancoraggio diventa conoscibile e se il punto precedente visualizzato può spostarsi. Un segnale confermato con il corretto ritardo è diverso dal fingere che il pivot fosse noto alla sua origine.
  • Heikin-Ashi, SuperTrend, medie mobili Hull e canali personalizzati. Nessuno è intrinsecamente fraudolento. Verifica l'implementazione effettiva per rilevare modifiche ai segnali delle barre completate. Anche i prezzi sintetici delle candele Heikin-Ashi richiedono un trattamento separato: non sono automaticamente prezzi di mercato eseguibili.
  • Indicatori dei marketplace a codice chiuso. Non puoi esaminarne la logica interna. Se una politica richiede la validazione a livello di sorgente, escludili da quel flusso di ricerca. I test temporali a scatola nera possono rivelare difetti, ma non stabilire ogni dipendenza interna.
  • iCustom(): letture dei buffer. Identifica il buffer, lo spostamento della barra, la gestione dei valori non disponibili e se i valori storici del buffer vengono ricalcolati.
  • Decisioni intrabarra con Close[0] in MT4. Il valore corrente è un prezzo in evoluzione della barra attuale, non il valore finale di chiusura. Il test deve riprodurre la stessa sequenza informativa della regola reale.
  • Dati di un timeframe superiore su un grafico di timeframe inferiore. Un valore H4 usato da una decisione M15 prima che quella barra H4 chiuda è provvisorio. In Pine, il comportamento di request.security() dipende dagli offset delle espressioni, dalle impostazioni di anticipazione e dalla valutazione storica rispetto a quella in tempo reale. Usa il modello documentato per dati confermati del timeframe superiore quando questa è la regola prevista; non presumere che aggiungere [1] in un punto qualsiasi risolva ogni problema di tempistica. Verifica anche l'implementazione MQL corrispondente.
  • Serie macroeconomiche datate per periodo. Collegale in base all'effettiva disponibilità delle informazioni e alla versione dei dati, non al primo giorno del mese descritto dalla statistica.

Una verifica pratica contro il repainting: su un feed reale registra il valore dell'indicatore per una barra completata identificata che si trova attualmente dieci barre indietro. Dopo l'arrivo di cinque nuove barre, esamina lo stesso timestamp, ora quindici barre indietro. Cinque nuove barre M1 richiedono circa cinque minuti; cinque barre H1 circa cinque ore, esclusi i vuoti di sessione. Se il valore cambia, una visualizzazione storica non riproduce necessariamente il segnale originale. Registra quando ogni conferma è diventata disponibile.

L'assenza di cambiamenti su una barra non certifica l'assenza di repainting. Ripeti su più barre, casi limite e regimi di volatilità; includi, se pertinenti, i cambiamenti dopo una riconnessione o un aggiornamento dello storico. È un protocollo di osservazione, non un'affermazione che ogni implementazione possa essere validata in pochi minuti. Conserva i registri per rendere riproducibile il confronto.

Esempio illustrativo: Heikin-Ashi e 200 setup apparentemente A+. Sono cifre sintetiche, non un registro di trading. Un test di cinque anni che combina un'implementazione personalizzata di Heikin-Ashi e un oscillatore identifica 200 setup A+, un tasso di successo dell'85% e una curva sospettosamente regolare che ricorda la pubblicità di un EA costoso. Una successiva prova pilota reale su conto micro registra dieci uscite in stop nei primi dodici setup. Quel breve campione di performance non stabilisce la causa. Le evidenze decisive vengono dai segnali registrati: questa specifica implementazione personalizzata modifica gli output precedenti dopo candele successive, mentre la ricostruzione storica dell'oscillatore tratta un valore successivo di Close[0] come se fosse disponibile all'interno della barra. Il problema è il codice e la tempistica, non il concetto di Heikin-Ashi in sé. La riconciliazione rivela differenze superiori al 50% secondo la regola di abbinamento dell'esempio e blocca ogni ulteriore avanzamento. Dodici operazioni sono troppo poche per una stima precisa del vantaggio, ma una divergenza nelle regole direttamente riproducibile può essere identificata con un numero ridotto di casi. Campione piccolo o dipendente: limita la conclusione sulla performance, non l'indagine su un difetto di implementazione dimostrato.

Insidia 2: bias di sopravvivenza

Supponiamo che un ricercatore usi un elenco attuale di coppie valutarie per testare un periodo precedente. La selezione può omettere strumenti negoziabili allora ma poi scomparsi o divenuti indisponibili. Conta anche il problema inverso di implementazione: risultati storici attraenti possono dipendere fortemente da uno strumento che il fornitore previsto non offre più a condizioni comparabili. USD/RUB nel contesto dei cambiamenti successivi al 2022 è un esempio del perché disponibilità, restrizioni da sanzioni, liquidità e condizioni di esecuzione richiedano una verifica specifica per data e fornitore, non un'affermazione universale sull'accesso odierno.

La selezione nei marketplace crea un problema correlato. Un EA oggi visibile con cinque stelle e 200 recensioni positive proviene dai prodotti tuttora elencati e notati. Prodotti falliti, ritirati o poco popolari possono essere assenti dal confronto. Le valutazioni da sole non identificano l'intera coorte di lancio e non stabiliscono né la probabilità di sopravvivenza né che ogni EA avesse originariamente le stesse possibilità di successo.

Individuazione: ricostruisci l'universo degli strumenti come esisteva alla data della decisione storica. Un test del 2018–2020 dovrebbe identificare che cosa offriva il fornitore pertinente nel 2018, compresi gli strumenti ritirati in seguito. Limitare lo storico ai sopravvissuti odierni usa informazioni future nella selezione dell'universo. La fattibilità attuale è un limite separato: registra quali strumenti storici restano disponibili presso l'entità giuridica prevista e quanta parte del risultato storico proveniva da quelli non più utilizzabili. Per i prodotti dei marketplace conserva date di pubblicazione, cronologia delle versioni e informazioni sulla coorte di confronto, invece di interpretare una graduatoria attuale come un campione non selezionato.

Insidia 3: adattamento della curva

Considera periodi SMA di 20, 22, 25 e 30; periodi RSI di 11, 14 e 17; e una soglia ATR da 0,8 a 1,5 con incrementi di 0,1. Sono 4 × 3 × 8 = 96 combinazioni. Cercare molte alternative aumenta la probabilità di trovare un risultato attraente anche in assenza di un vantaggio duraturo. Non garantisce che una appaia eccezionale, ma il massimo selezionato non è una normale singola osservazione prestabilita.

In un esempio sintetico, la combinazione migliore è SMA-22, RSI-14 e ATR 1,1, con +180% su tre anni storici. I successivi 60 giorni producono −8%. Il contrasto può essere compatibile con l'adattamento al rumore storico, ma la coppia di rendimenti da sola non dimostra la diagnosi; vanno verificati anche costi, implementazione, regime e campionamento. È certo che il vincitore storico è stato selezionato fra 96 tentativi e il suo rapporto deve rendere noto quel processo.

Individuazione: esamina una mappa di calore dei parametri. Una cella favorevole isolata circondata da risultati scadenti suggerisce una sensibilità da indagare. Un ampio plateau indica soltanto che il risultato non è legato a un'unica impostazione. Un plateau non dimostra un valore atteso positivo. Può comunque essere un artefatto dello stesso insieme di dati sfruttato eccessivamente, oppure riflettere parametri le cui piccole variazioni lasciano invariato l'insieme delle operazioni.

Serve ancora una valutazione indipendente: un periodo OOS davvero mai esaminato, una procedura walk-forward prestabilita e il confronto con il riferimento della sezione 3. Riporta il numero di operazioni, l'incertezza e l'intera cronologia di selezione, non soltanto una mappa di calore regolare o una media favorevole. Un risultato OOS consultato ripetutamente mentre si modifica il metodo non è più intatto.

Insidia 4: sovraottimizzazione delle regole

Adattare la curva tramite i parametri è una forma di sovraottimizzazione. Un'altra è aggiungere regole per eliminare specifiche perdite storiche. «Nessuna entrata dopo le 13:00 Europe/London il martedì» potrebbe essere stata introdotta soltanto perché due operazioni perdenti sono avvenute in quell'intervallo; corrisponde al limite delle 14:00 dell'esempio polacco con il consueto scostamento fra Regno Unito e Polonia. Eliminare quelle operazioni migliora quel campione per costruzione, non necessariamente la strategia sottostante.

Non presentare un filtro del venerdì come validato solo perché tre perdite passate sono avvenute di venerdì. Un filtro proposto dopo aver esaminato le perdite è una nuova ipotesi di ricerca. Può essere indagato sui dati di sviluppo, ma richiede un motivo, una voce nel registro dei tentativi e una valutazione indipendente prima di poterlo chiamare miglioramento. Fissalo prima della valutazione usata a sostegno dell'affermazione.

Questo articolo di esempio propone un'avvertenza operativa prudente per più di quattro parametri ottimizzati su meno di 200 operazioni e discute l'euristica approssimativa parametri ottimizzati × 30 ≤ numero di operazioni: quattro parametri implicano 120 operazioni, otto ne implicano 240. Sono euristiche illustrative di verifica, non teoremi statistici o standard di mercato. Un modello sotto la linea di avvertimento può comunque essere sovraottimizzato, e uno sopra non è confutato soltanto dal rapporto.

Indaga sensibilità, numero di varianti tentate, dipendenza e performance indipendente. Quando le varianti condividono osservazioni, valuta le differenze di performance con un metodo appaiato o di ricampionamento adeguato, invece di presumere che intervalli separati sovrapposti risolvano il confronto. Un risultato OOS favorevole o una mappa di calore stabile sono evidenze da valutare, non una prova universale che la sovraottimizzazione sia stata eliminata.

Insidia 5: costi modellati in modo insufficiente

Un test MT4 configurato con uno spread fisso di 1 pip applica un costo semplificato indipendentemente dallo stato storico della liquidità. Verifica impostazioni e capacità del tester installato invece di presumere che ogni piattaforma o versione usi lo stesso valore predefinito. Gli spread effettivi possono differire sostanzialmente fra sovrapposizioni liquide delle sessioni, rollover e pubblicazioni importanti. Frazioni di pip, diversi pip e brevi spread a due cifre in pip sono grandezze di scenario da indagare sul feed pertinente, non quotazioni attuali dei fornitori o limiti garantiti. Una strategia concentrata in una finestra notturna di scarsa liquidità può apparire redditizia ipotizzando uno spread fisso e fallire con un adeguato modello a spread variabile.

Il secondo componente è lo slippage. Un'esecuzione storica al prezzo esatto è un'ipotesi, non una promessa di esecuzione reale. L'esempio illustra 0,2–0,5 pip in condizioni ordinarie, 1–3 pip intorno ai breakout e 5–15 pip dopo le pubblicazioni. Questi intervalli non vanno trattati come una distribuzione misurata per il tuo conto. Una stima lorda di +0,3R potrebbe scendere a +0,1R se i costi aggiuntivi di implementazione ammontano a 0,2R; la riduzione effettiva dipende dalla distanza iniziale di rischio, dal tipo di ordine e dalle esecuzioni misurate.

Il terzo componente è il finanziamento. Una strategia swing che mantiene le posizioni da tre a otto giorni può subire addebiti o ricevere accrediti di rollover secondo strumento, direzione e fornitore. Non presumere che una posizione long EUR/USD abbia sempre un determinato segno. Nel calcolo illustrativo, un addebito notturno di 3 pip con una distanza iniziale dello stop di 20 pip equivale a 0,15R per giorno addebitato. Cinque addebiti giornalieri singoli totalizzano 0,75R, superando una stima di +0,4R prima del finanziamento. Uno stop di 60 pip rende lo stesso addebito pari a 0,05R al giorno. Usa i moltiplicatori giornalieri effettivi, compresi i pertinenti adeguamenti per fine settimana e festività, invece di equiparare cinque notti di calendario a cinque addebiti identici. La conversione è costo di finanziamento in R = finanziamento in unità equivalenti in pip / distanza iniziale dello stop in pip, trattando coerentemente dimensione della posizione e conversione valutaria.

Il quarto componente è la commissione. Alcuni conti a spread grezzo addebitano separatamente in base al volume negoziato; un'etichetta «ECN» non stabilisce un tipo di conto obbligatorio o la sua tariffa. Con un importo illustrativo di USD 6 per lotto standard e operazione completa di andata e ritorno, 200 operazioni da 0,1 lotti costano 200 × 0,1 × 6 = USD 120. È il 12% di un saldo iniziale di USD 1.000 prima di considerare qualsiasi risultato dovuto ai prezzi. L'intervallo USD 5–7 dell'esempio è illustrativo, non un'indagine attuale sulle tariffe. Un test di scalping che ometta un addebito rilevante per operazione completa non può sostenere l'affermazione prevista sulla performance netta.

Esempio illustrativo: backtest a spread fisso di 1 pip contro spread di 8 pip durante una pubblicazione. Le cifre sono sintetiche. Una strategia di inversione alla pubblicazione dei dati sull'occupazione produce 14 operazioni in due anni, circa il 64% di vincenti e un valore atteso di +0,8R in un test MT4 semplificato. È un campione piccolo e fortemente dipendente dagli eventi. Il trader usa poi un rischio pianificato dello 0,5% in uno scenario reale, ma lo spread della prima pubblicazione è otto volte quello modellato. Il bid o ask eseguibile può superare un livello protettivo stretto anche senza il movimento del prezzo medio suggerito da un grafico che mostra un solo lato. Quattro perdite illustrative del conto sono −2,1%, −1,8%, −2,4% e −1,9%. La loro somma è −8,2%; applicate in sequenza al capitale rimanente, la variazione del conto è circa −7,95%. Una perdita del 2,1% rispetto a un rischio pianificato dello 0,5% equivale a −4,2R, non a −1R. Uno stop non garantisce il suo prezzo di attivazione: un gap, un'interruzione delle quotazioni o un brusco cambiamento dello spread possono produrre una perdita molto maggiore. Il modello non rappresentava lo scenario di esecuzione. Un test migliore richiede dati storici bid/ask appropriati e ipotesi su tempistica, costi e gap; Tick Data Suite o i dati Dukascopy possono essere componenti di un flusso di lavoro, ma nessun nome di prodotto da solo lo certifica, e i timestamp al millisecondo non garantiscono liquidità eseguibile completa. Campione piccolo o dipendente: limita la conclusione sul vantaggio.

Insidia 6: esplorazione opportunistica dei dati

Un ricercatore prova 30 strategie, ne scarta 28 e pubblica due backtest attraenti. I calcoli individuali possono essere corretti mentre il processo di selezione rende ingannevole la loro apparente significatività. Con 30 test indipendenti sotto l'ipotesi nulla e una soglia del 5%, il numero atteso di falsi positivi è 1,5 e la probabilità di almeno uno è circa il 78,5%. Non significa che debbano riuscirne esattamente due o tre, né che le strategie pubblicate abbiano una probabilità quasi nulla di funzionare. Significa che nell'inferenza rientra l'intera ricerca, non soltanto le sopravvissute.

Un controllo convenzionale dell'errore familiare è la correzione di Bonferroni: per 30 test con un livello complessivo di 0,05, la soglia per test è 0.05 / 30 ≈ 0.00167.[2] Può essere conservativa, soprattutto per test correlati. Altri approcci affrontano obiettivi diversi, fra cui il controllo del tasso di false scoperte e lo Sharpe ratio deflazionato.[3] Non sono interruttori intercambiabili e richiedono le rispettive ipotesi e gli input relativi alla selezione. In ogni caso, nascondere i tentativi falliti impedisce una valutazione significativa.

Individuazione: mantieni un registro di ogni strategia e variante testata, compresi i risultati scartati. Due vincitrici selezionate fra 30 candidate esplorative richiedono un'interpretazione diversa da due valutazioni davvero prestabilite. Per questo il campo 7 della scheda di test è obbligatorio.

Un errore illustrato: stop e obiettivo nella stessa candela

Questa ambiguità di esecuzione può gonfiare sostanzialmente un backtest pur apparendo come un normale risultato di un'operazione. La sua importanza dipende dalla frequenza con cui le uscite della strategia si trovano nella stessa barra registrata.

La registrazione errata: una candela H1 ha apertura 1.0850, massimo 1.0885, minimo 1.0815 e chiusura 1.0870. Si presume un long già eseguito a 1.0850, con stop a 1.0820 e obiettivo a 1.0880, ciascuno a 30 pip di distanza. Entrambi i livelli sono nel range della candela. Un test personalizzato che verifica prima la condizione dell'obiettivo registra +1R, sebbene i dati OHLC non rivelino quale livello sia stato raggiunto prima. È un esempio definito di implementazione ottimistica, non un'affermazione che ogni tester usi per impostazione predefinita l'obiettivo per primo.

Il modello di esecuzione corretto: I soli OHLC non possono ricostruire l'intera sequenza di eventi intrabarra. Indica come viene gestita l'ambiguità:

  • Un'impostazione prudente conta una candela che tocca entrambe le uscite come uscita in stop. Etichettala come pessimistica, non come realismo dimostrato, nel campo 5 della scheda di test.
  • Esamina i dati di timeframe inferiori o i tick per le barre ambigue. M1 può ancora lasciare entrambe le uscite nella stessa barra; dati di quotazione sufficientemente dettagliati e con il lato corretto possono risolvere alcuni casi, ma le esecuzioni possono ancora richiedere ipotesi sullo stato dell'ordine e sulla liquidità.
  • Calcola entrambi gli estremi: tutte le operazioni ambigue con stop per primo e tutte con obiettivo per primo. Se l'intervallo cambia la decisione, riporta l'incertezza invece di scegliere l'estremo favorevole.
  • Registra il numero di barre ambigue nei limiti. Se stop e obiettivi sono vicini rispetto al range della barra decisionale, la risoluzione OHLC scelta può essere inadeguata per l'affermazione.

Calcolo sintetico: un test di 200 operazioni contiene 14 candele di questo tipo. Trattarle tutte con obiettivo per primo dà un valore atteso di +0,18R. Cambiare tutte e 14 da +1R a −1R sottrae 28R, ossia 0,14R per operazione, lasciando +0,04R. Un replay sufficientemente dettagliato identifica nove casi con stop per primo e cinque con obiettivo per primo. Rispetto al caso di tutti gli obiettivi per primi, nove operazioni perdono 2R ciascuna: 18R / 200 = 0,09R, quindi la stima risolta è +0,09R. Il modello ottimistico sovrastima questa stima di 0,09R per operazione, che può essere rilevante rispetto al margine della strategia per i costi. La sola candela H1 non può stabilire questa sequenza. Riporta il limite e il metodo usato per risolverlo, non l'esito che sembra migliore.

Sei insidie del backtesting con controlli specifici su tempistica dei dati, universo, parametri e costi
La cronologia dei tentativi e la valutazione indipendente sostengono la valutazione; un grafico attraente non stabilisce un vantaggio.

3. Analisi walk-forward: validazione con dati limitati

L'analisi walk-forward, o WFA, valuta una sequenza di finestre di sviluppo e successive finestre di valutazione. Robert Pardo tratta sistematicamente il metodo in The Evaluation and Optimization of Trading Strategies.[1] Invece di selezionare i parametri sull'intero storico, sviluppa su una finestra nel campione, valuta la scelta fissata su una finestra successiva fuori campione e poi avanza secondo una procedura stabilita in anticipo.

Una suddivisione cronologica: sviluppo, validazione e OOS

Una semplice illustrazione in due parti usa:

  • Cinque anni di calendario: 1 gennaio 2020–31 dicembre 2024.
  • Circa il 70% per lo sviluppo: 1 gennaio 2020–30 giugno 2023, ossia tre anni e mezzo.
  • Circa il 30% per la valutazione finale: 1 luglio 2023–31 dicembre 2024, ossia un anno e mezzo, esaminato per la prima volta soltanto dopo aver fissato le regole selezionate.

La divisione 70/30 è un'ipotesi dello scenario, non uno standard di mercato. Scegli una suddivisione che offra conteggi di segnali utilizzabili e condizioni rilevanti da entrambe le parti. La cronologia conta: per questo compito di previsione e trading, la valutazione segue lo sviluppo. Mescolare casualmente osservazioni di date diverse può far filtrare nel processo di ricerca informazioni su regimi futuri e dipendenze.

Esistono anche tre ruoli distinti, sebbene la prima illustrazione abbia soltanto due blocchi principali di date:

  • Sviluppo nel campione: cerca, ottimizza e scarta i candidati qui. La selezione dei parametri è legittima quando viene dichiarata come sviluppo.
  • Validazione per la selezione: una finestra successiva nella fase di sviluppo aiuta a scegliere fra i candidati. Una volta usata per quella scelta, fa parte della selezione, non di un test finale intatto. Assegnale esplicitamente uno spazio nel periodo di sviluppo se usi l'esempio in due parti sopra.
  • Valutazione OOS finale: esaminala dopo aver fissato la strategia e la procedura di valutazione. Se il risultato guida un filtro nuovo, non è più un'evidenza indipendente per quel filtro rivisto; registra la contaminazione.

Una finestra di selezione separata è utile nel confronto fra più candidati. Non è logicamente necessaria per un unico candidato interamente prestabilito, ma la finestra OOS finale non deve mai diventare tacitamente il luogo in cui scegli il vincitore. «Proviamo un altro filtro» dopo averne visto il risultato cambia il ruolo dei dati.

Puoi tornare allo sviluppo dopo un risultato OOS debole, ma non puoi cambiare le regole, rieseguire lo stesso periodo e chiamare il nuovo risultato validazione intatta. Conserva il primo risultato e segnala gli usi successivi come sviluppo o riutilizzo diagnostico. Una ripetizione identica per verificare la riproducibilità non crea di per sé un'ipotesi nuova; una modifica delle regole guidata dall'esito sì.

Analisi walk-forward mobile

Un singolo periodo finale può essere insolitamente favorevole o difficile. La valutazione mobile esamina la procedura su più periodi successivi, pur senza poter garantire che rappresentino tutte le condizioni future:

PassaggioFinestra di sviluppoFinestra di valutazione successiva
12020-01 a 2022-12 (3 anni)2023-01 a 2023-06 (6 mesi)
22020-07 a 2023-06 (3 anni)2023-07 a 2023-12 (6 mesi)
32021-01 a 2023-12 (3 anni)2024-01 a 2024-06 (6 mesi)
42021-07 a 2024-06 (3 anni)2024-07 a 2024-12 (6 mesi)

Le quattro finestre di valutazione non si sovrappongono nel calendario e insieme coprono due anni. Questo non le rende statisticamente indipendenti. Sono adiacenti, le finestre di sviluppo si sovrappongono sostanzialmente e un regime persistente può coprire più blocchi di valutazione. Fissa la procedura di selezione mobile prima di esaminare la sequenza combinata; altrimenti la procedura stessa può essere adattata agli apparenti risultati OOS.

Risultati netti positivi in tre o quattro finestre possono giustificare ulteriori indagini sulla robustezza, ma il solo conteggio è un'evidenza debole. In un modello illustrativo con segni indipendenti ed equiprobabili, almeno tre positivi su quattro si verificano con probabilità 5/16 = 31,25%. La dipendenza cambia tale probabilità, non necessariamente in una direzione universalmente prevedibile. Riporta per ogni finestra numero di operazioni, valore atteso netto, incertezza ed esposizione ai regimi. Una o due finestre positive possono suggerire sensibilità al regime; zero o una non forniscono un motivo convincente per l'attivazione. Nessuno di questi conteggi sostituisce i criteri statistici e operativi prestabiliti.

Ricerca walk-forward per un trader a bassa frequenza

Con cinque-dieci operazioni al mese, una strategia swing produce circa 300–600 operazioni in cinque anni. Una quota OOS del 30% ne contiene circa 90–180. Vicino a un tasso di successo del 60%, un intervallo binomiale indipendente al 95% ha una semiampiezza approssimativa di 7–11 punti percentuali, a seconda del conteggio e del metodo. Ciò può limitare l'affermazione sul tasso di successo, ma non stabilisce da solo un profilo dei risultati redditizio al netto dei costi.

Con 50–100 operazioni al mese, cinque anni forniscono circa 3.000–6.000 osservazioni. L'incertezza campionaria può ridursi, ma dipendenza, selezione, copertura dei regimi e modellazione dell'esecuzione restano importanti. Un numero elevato di operazioni non rende automaticamente il modello dei costi l'unica questione rimasta.

Con una o due operazioni al mese, una strategia di posizione fornisce soltanto 60–120 operazioni in cinque anni, lasciandone circa 18–36 in un segmento OOS del 30%. L'incertezza risultante può essere troppo ampia per distinguere un valore atteso utile da una perdita. Fra le possibili risposte:

  • Storico più lungo: da dieci a quindici anni danno circa 120–360 operazioni a quelle frequenze, di cui circa 36–108 in una quota di valutazione del 30%. Verifica se le condizioni di mercato e di esecuzione più vecchie restano pertinenti.
  • Più strumenti: da sei a dieci coppie valutarie possono aggiungere osservazioni, ma gli eventi su valute condivise e le posizioni sovrapposte creano dipendenza. Valida l'affermazione fra strumenti e non contare ogni operazione come un nuovo esperimento indipendente.
  • Bootstrap a blocchi: ricampiona blocchi dei risultati osservati per esaminare la variazione sotto ipotesi di dipendenza dichiarate. Questo riutilizza le osservazioni esistenti; non crea nuove evidenze di mercato. Non può trasformare un campione minuscolo in un vantaggio ben accertato soltanto generando molti percorsi simulati.

Il riferimento: con che cosa viene confrontata la strategia?

Una media positiva può essere riportata senza un riferimento, ma affermare che le regole aggiuntive della strategia creino valore richiede un confronto pertinente. Prima di interpretare «+0,25R per operazione», applica lo stesso periodo di dati, le stesse ipotesi di esecuzione e la stessa contabilizzazione dei costi ad alternative definite esplicitamente:

  • Il trigger senza i filtri aggiuntivi. Se quattro filtri non migliorano l'obiettivo prestabilito di performance o rischio, potrebbero soltanto ridurre il campione e aggiungere flessibilità. Confronta più della media se i filtri miravano a cambiare drawdown o esposizione.
  • Entrate casuali con frequenza, politica direzionale e regole di uscita equivalenti. Simulazioni ripetute producono una distribuzione di riferimento invece di un solo numero scelto per convenienza. Specifica l'universo delle entrate ammissibili, la procedura di randomizzazione e il seme. Una strategia vicina al suo centro non ha mostrato una distinzione in quel confronto; non è una prova universale che ogni aspetto della strategia sia casuale.
  • Mantenere una direzione specificata nel periodo. Per una strategia swing su un'unica coppia, può rivelare quanta parte del risultato assomigli a una deriva direzionale. Usa un'esposizione comparabile e includi il finanziamento; un mantenimento senza adeguamento della scala non è automaticamente un confronto equo del rischio.
  • La stessa procedura con il segnale invertito. Se entrambe le direzioni sembrano redditizie, indaga tempistica, uscite asimmetriche, effetti della volatilità e modello dei costi. Il risultato non è automaticamente un errore, ma mette in discussione l'affermazione che la previsione direzionale sia l'unica fonte di valore.

Registra nel campo 10 sia i risultati della strategia sia quelli di riferimento. L'analisi di sensibilità pone la stessa domanda localmente: che cosa succede quando ogni parametro si sposta di un passo in entrambe le direzioni? Se il vantaggio apparente scompare quando una soglia ATR passa da 1,1 a 1,0, indaga le modifiche all'insieme delle operazioni e l'incertezza. Una singola cella attraente della mappa di calore non è una forte evidenza di un vantaggio robusto.

Fissare l'OOS: cartelle, hash di configurazione e registro dei tentativi

Un risultato OOS debole seguito da modifiche dei parametri e da ripetute ispezioni dello stesso periodo è sviluppo sull'intero storico combinato, non un'evidenza walk-forward intatta. Una semplice struttura di progetto aiuta a rendere visibile la distinzione:

  • Mantieni cartelle separate come 01_raw_data, 02_IS_optimization e 03_OOS_locked. Aggiungi, se utilizzato, un sottoinsieme di validazione per la selezione chiaramente identificato e i suoi confini.
  • Prima della prima esecuzione OOS finale, registra gli hash completi di specifica, codice, parametri, modello dei costi e confini delle date in 03_OOS_locked/run_001.lock. In seguito aggiungi risultato e metadati dell'esecuzione senza sostituire gli input originali.
  • Un candidato modificato riceve un nuovo registro di esecuzione, come run_002.lock, e una nota che il periodo già esaminato non è più un'evidenza intatta per la revisione. Non cancellare il valido registro storico di ciò che ha prodotto il primo candidato fissato.
  • Ogni finestra di valutazione finale ha una prima ispezione secondo la procedura prestabilita. Le verifiche identiche di riproducibilità sono distinte dalle nuove varianti guidate dall'esito. Pianifica in anticipo le finestre mobili e registra quando un blocco di valutazione precedente diventa legittimamente dato passato per una successiva fase di sviluppo programmata.

Un nome di file che termina con .lock o un hash non impediscono fisicamente modifiche o consultazioni. Forniscono una traccia di verifica quando accompagnati da file conservati e accessi disciplinati. Un blocco apparente senza un registro di chi ha esaminato quali dati non dimostra indipendenza.

Che cosa fare dopo un risultato OOS debole

Non aggiungere un filtro soltanto perché il risultato è scomodo. Segui una sequenza decisionale documentata:

  1. Accetta e conserva il risultato. Il candidato attuale non ha soddisfatto il criterio di validazione previsto. Un risultato può essere inconcludente anziché definitivamente negativo; usa il criterio scritto prima del test.
  2. Torna al concetto. Rivedi ipotesi, ciclo di sviluppo e definizione del vantaggio nelle prime tre sezioni dell'articolo 15.3. Verifica se il meccanismo proposto resta sensato e se difetti di implementazione o dei dati spiegano il risultato.
  3. Se il meccanismo resta plausibile, indaga la dipendenza dal regime come una nuova domanda di ricerca. Da quattro a sei finestre mobili prestabilite possono aiutare. Due finestre di tendenza favorevoli e quattro di consolidamento sfavorevoli suggeriscono una possibile interazione con il regime, non un permesso immediato di riattivare ogni volta che compare una tendenza. Ogni finestra richiede la propria dimensione campionaria e l'intervallo del valore atteso netto. Tre finestre positive con appena otto operazioni ciascuna possono rimanere profondamente inconcludenti. Un filtro di regime scoperto da quei risultati richiede una specifica con versione e una valutazione indipendente.
  4. Se il concetto fallisce, ritira il candidato. Conserva motivo e cronologia dei tentativi, poi passa a un'altra idea invece di accumulare eccezioni attorno a un'affermazione respinta.
Esempio illustrativo: «verifiche» ripetute adattano una strategia a un solo trimestre. Sono cifre sintetiche. Una candidata breakout GBP/USD ha tre finestre positive su quattro nella WFA storica; quel conteggio dei segni non stabilisce da solo un sistema statisticamente sano. Il suo primo trimestre debole contiene 30 operazioni con valore atteso −0,15R. Con una deviazione standard campionaria vicina a 1,4R, un intervallo al 95% per approssimazione normale ha una semiampiezza di circa 0,50R, estendendosi all'incirca da −0,65R a +0,35R. Il risultato non risolve il segno del valore atteso sotto quell'approssimazione. Eppure il trader inizia modifiche settimanali: la settimana 2 elimina le aperture del lunedì dopo due perdite; la settimana 5 esclude l'ATR inferiore a 0.0080 senza nemmeno registrare unità e timeframe dell'indicatore; la settimana 9 elimina le entrate precedenti a un limite orario appena selezionato. Tre regole originali diventano otto. Una nuova esecuzione sullo stesso trimestre mostra ora il 61% di vincenti e +0,4R; il trimestre reale successivo perde il 12%. L'esempio illustra la selezione guidata dall'esito, non dimostra che la strategia originale fosse valida o che una modifica specifica abbia causato la perdita successiva. Un vero cambiamento delle regole richiede un motivo diagnostico documentato e un'ipotesi nuova, non soltanto l'eliminazione di qualche operazione scomoda. Limiti di sicurezza prestabiliti e difetti dimostrabili dei dati o dell'esecuzione possono giustificare una pausa immediata senza attendere un intervallo stretto del valore atteso. Modificare le regole di ricerca richiede comunque una versione nuova e una valutazione indipendente. Campione piccolo o dipendente: limita la conclusione.
Analisi walk-forward: finestre mobili nel campione e fuori campione Ogni finestra blu copre tre anni. La sua finestra rossa di valutazione copre i sei mesi successivi. Le finestre avanzano di sei mesi alla volta; la calibrazione successiva può includere dati di valutazioni precedenti, ma ogni intervallo valutato segue la propria calibrazione fissata. Analisi walk-forward: quattro finestre IS/OOS successive su cinque anni 2020 2021 2022 2023 2024 2025 IS 1: 2020-01 → 2022-12 OOS 1 IS 2: 2020-07 → 2023-06 OOS 2 IS 3: 2021-01 → 2023-12 OOS 3 IS 4: 2021-07 → 2024-06 OOS 4 Nel campione: calibrazione dei parametri, tre anni Fuori campione: sei mesi, parametri fissati
Quattro finestre mobili di sviluppo/valutazione. Ogni blocco di sviluppo dura tre anni, ogni successivo blocco di valutazione sei mesi e la procedura avanza di sei mesi. I quattro blocchi di valutazione coprono gennaio 2023–dicembre 2024 senza sovrapposizioni delle date. Non sono necessariamente statisticamente indipendenti. Riporta numero di operazioni e incertezza del valore atteso netto per ciascuno, non soltanto il numero di finestre positive. Solo schema; non sono mostrati dati di performance.
Walk-forward: quattro finestre. IS sovrapposti; date OOS separate non garantiscono indipendenza. Confronta un riferimento prestabilito sullo stesso periodo e universo e con lo stesso modello dei costi.
IS sovrapposti; date OOS separate non garantiscono indipendenza. Confronta un riferimento prestabilito sullo stesso periodo e universo e con lo stesso modello dei costi.
La barriera pratica del lavoro walk-forward. Il supporto degli strumenti varia. Il tester MT5 include una suddivisione storica Forward, con opzioni descritte nella documentazione quali metà, un terzo, un quarto o un confine personalizzato.[6] È un insieme tenuto da parte nei dati storici, non un'osservazione prospettica delle quotazioni in arrivo, e una singola suddivisione non costituisce un'intera procedura WFA mobile. Altre piattaforme o flussi Python personalizzati possono supportare o orchestrare le esecuzioni necessarie; verificane le capacità effettive invece di presumere che ogni piattaforma grafica citata offra la stessa WFA. La stima dell'esempio di 8–20 ore per imparare un flusso di lavoro e 4–8 ore per un primo test è una previsione illustrativa di pianificazione, non una norma misurata del settore. La WFA chiede se il processo di selezione fissato resiste nelle finestre successive anziché soltanto nel proprio campione di sviluppo. Non può rivelare un difetto dei costi assente dal modello di ogni finestra. Nell'esempio sui dati dell'occupazione, una valutazione OOS con un modello di esecuzione appropriato alla finestra di pubblicazione avrebbe potuto mettere in luce le ipotesi prima delle perdite reali illustrative; il solo walk-forward non avrebbe garantito quella diagnosi.

4. Analisi Monte Carlo: un solo percorso storico non offre il quadro completo

Un backtest registra una sequenza di opportunità e risultati. Un campione di strategia di cinque anni potrebbe contenere 100 operazioni; una storia di mercato differente avrebbe potuto produrne 95 o 110, a prezzi diversi e con esiti diversi. Il ricampionamento non ricostruisce tutti quei mercati possibili. Pone una domanda più circoscritta: come variano i risultati sotto un modello esplicitamente scelto sulla base delle osservazioni già disponibili?

Una simulazione produce una distribuzione invece di una singola stima puntuale. La distribuzione può rivelare sensibilità nascoste dall'ordine originale, ma è condizionata dal modello e dal campione di input. Non è una misura completa del rischio reale né una garanzia che i risultati futuri ricadano nel suo inviluppo.

Due metodi di base per il ricampionamento

Bootstrap delle singole operazioni: prendi un elenco di, per esempio, 200 risultati in R —+1,5R, −1R, +2,2R e così via— e campiona 200 osservazioni con reinserimento. Ripeti 1.000 volte per costruire 1.000 percorsi. Possono cambiare sia l'ordine sia la frequenza di determinati risultati.

È diverso da una permutazione casuale senza reinserimento. Riordinare gli stessi risultati fissi in R ne lascia invariata la somma. Con dimensionamento a frazione costante e senza vincoli dipendenti dal percorso, lascia invariato anche il prodotto dei fattori del capitale, sebbene il drawdown possa cambiare. Non descrivere permutazione e bootstrap come procedure intercambiabili.

Bootstrap a blocchi: campiona blocchi contigui, per esempio dieci operazioni consecutive alla volta, anziché operazioni isolate. Preserva parte della dipendenza all'interno di ciascun blocco ma interrompe le relazioni attraverso i nuovi confini di unione. Che sia più appropriato dipende dalle dipendenze osservate della strategia. La lunghezza del blocco è un parametro da indagare; confronta scelte come 5, 10 e 20 invece di selezionare quella che dà il risultato più rassicurante.

Che cosa calcolare da 1.000 percorsi simulati

  • Mediana del rendimento finale: il centro della distribuzione dei rendimenti simulati per l'orizzonte dichiarato. Chiamalo annuale solo se l'orizzonte e il modello temporale rappresentano davvero un anno.
  • Il quinto percentile del rendimento: un quantile della coda inferiore all'interno della simulazione. Non è il peggior esito possibile né un «peggior esito realistico» garantito. Valori uguali e interpolazione su campioni finiti possono cambiare la frazione strettamente inferiore.
  • Il 95º percentile dell'entità del drawdown: una sintesi della coda superiore dei cali simulati dal picco al minimo. Confrontalo con i limiti di rischio prestabiliti del piano senza trattarlo come un tetto.
  • La frequenza di superamento di una soglia definita: per esempio, la quota di percorsi il cui drawdown supera il 30%. Indica la soglia e se viene misurata dal saldo iniziale o da un massimo raggiunto fino a quel momento. Un drawdown del 30% non è letteralmente insolvenza.

Cifre illustrative, non risultati storici: supponiamo che il percorso originale di un modello annuale mostri un rendimento del +45% e un drawdown massimo del 12%. Una simulazione ipotetica di 1.000 percorsi dà un rendimento mediano del +38%, un rendimento al quinto percentile del +8%, un'entità del drawdown al 95º percentile del 22% e una frequenza del 4% di drawdown superiori al 30%. Significa che circa un percorso su 25 in questo modello supera il limite scelto; non stabilisce una probabilità reale di rovina del 4%. Ogni drawdown percentuale presuppone già una politica di dimensionamento delle posizioni, quindi non è una proprietà del solo segnale di entrata.[4]

Usa un insieme coerente di definizioni delle metriche

Prima di eseguire il codice, definisci valore atteso in R, profit factor, drawdown e relativa durata, fattore di recupero e ogni eventuale punteggio in stile SQN. L'articolo 15.9 è il riferimento del capitolo per formule e denominatori. Qui sono essenziali tre punti:

  • Il drawdown usa il massimo raggiunto fino a quel momento, non il massimo globale finale. Definisci H_t = max(capitale fino a t), D_t = (H_t - E_t) / H_t e maxDD = max(D_t). Per 100 → 80 → 120 → 110, il calo maggiore da un picco precedente è 20%, da 100 a 80. Usare il successivo picco di 120 e il precedente minimo di 80 dà il 33,3%, che non è il drawdown del percorso.
  • Indica la curva e la frequenza di campionamento. Il capitale valutato a mercato, comprese le posizioni aperte, differisce dal saldo delle operazioni chiuse. Il campionamento a tick, giornaliero e dopo ogni operazione può produrre massimi diversi. «Drawdown del 12%» senza queste definizioni non è direttamente confrontabile con un altro rapporto o con il tuo piano.
  • Indica la convenzione del punteggio. Un punteggio media di R/deviazione standard moltiplicato per √N cambia con N. Le varianti con tetto e senza tetto sono quantità differenti. Usa la stessa convenzione e N confrontabili e non trattare un punteggio come sostituto dell'incertezza o come regola di allocazione.

Mantieni esplicite anche le altre convenzioni di rendicontazione. Il profit factor monetario può non coincidere con quello in R quando l'unità monetaria di rischio varia. Sharpe richiede un intervallo di rendimento definito, un riferimento e ipotesi di annualizzazione; R per operazione non è automaticamente una serie di rendimenti di calendario. Calmar richiede un rendimento annualizzato dichiarato e un drawdown su un orizzonte confrontabile. Includi perdite di coda, lunghezza delle serie perdenti, durata del drawdown e stati operativi irrisolti invece di ridurre il rapporto a un solo rapporto numerico.

Un esempio Python di bootstrap a blocchi

Puoi eseguire l'esempio in un ambiente Python locale con NumPy e pandas, oppure in un servizio di notebook come Google Colab. Colab offre un ambiente notebook nel browser con limiti di utilizzo; consulta le sue informazioni aggiornate sul servizio e sull'archiviazione. Crea un notebook, incolla il codice in una cella ed eseguilo. L'input predefinito è sintetico, quindi non servono dati di trading personali per vedere il formato dell'output.

Per usare il tuo diario, prepara un CSV con una colonna numerica R e un'operazione completa per riga, in ordine cronologico. Rimuovi il commento dalla riga di importazione e fornisci il file. Ogni valore R deve includere una sola volta i costi pertinenti e usare il rischio monetario positivo pianificato prima dell'entrata. Rimuovi gli identificativi personali prima di valutare un caricamento nel cloud e mantieni locali le esportazioni sensibili del conto se non vuoi che siano memorizzate presso un servizio di terzi.

import numpy as np
import pandas as pd

def block_bootstrap_strategy(trades_R, n_simulations=1000, block_size=10,
                             risk_per_trade=0.01, seed=42):
    """Ricampionare blocchi contigui e non circolari dei risultati netti delle operazioni in R.

    trades_R: risultati cronologici finiti, un'operazione completa per valore.
    n_simulations: numero di percorsi sintetici, non nuove osservazioni di mercato.
    block_size: lunghezza del blocco contiguo; indagare 5, 10 e 20.
    risk_per_trade: frazione fissa del capitale di quel momento rischiata per operazione.
    seed: input di riproducibilità; registrare anche la versione NumPy.

    I rendimenti coprono len(trades_R) operazioni, NON sono automaticamente annuali.
    I drawdown sono campionati dopo ogni operazione e memorizzati come valori negativi.
    """
    trades_R = np.asarray(trades_R, dtype=float)
    if trades_R.ndim != 1 or trades_R.size == 0:
        raise ValueError("trades_R deve essere un array unidimensionale non vuoto")
    if not np.isfinite(trades_R).all():
        raise ValueError("trades_R deve contenere soltanto valori finiti")
    for name, value in (("n_simulations", n_simulations),
                        ("block_size", block_size)):
        if isinstance(value, bool) or not isinstance(value, (int, np.integer)):
            raise ValueError(name + " deve essere un intero positivo")
        if value < 1:
            raise ValueError(name + " deve essere un intero positivo")
    if not np.isfinite(risk_per_trade) or not 0 < risk_per_trade < 1:
        raise ValueError("risk_per_trade deve essere fra zero e uno")

    rng = np.random.default_rng(seed)
    n_trades = len(trades_R)
    # Adeguarsi a questo esempio: limitare un blocco troppo grande alla lunghezza del campione.
    # Un blocco dell'intero campione non ha diversità di ricampionamento; riportare tale limite.
    block_size = min(block_size, n_trades)
    n_blocks = (n_trades + block_size - 1) // block_size
    final_returns, max_drawdowns = [], []
    threshold_breaches = 0

    for _ in range(n_simulations):
        # Campionare le posizioni iniziali con reinserimento; preservare ogni blocco.
        starts = rng.integers(0, n_trades - block_size + 1, size=n_blocks)
        sample = np.concatenate(
            [trades_R[s:s + block_size] for s in starts]
        )[:n_trades]  # Mantenere esattamente il numero originale di operazioni.

        equity, equity_curve = 1.0, [1.0]
        for outcome in sample:
            # Assorbire a zero se una perdita esaurisce il capitale. Non è un modello del debito
            # e non afferma che si applichi una protezione legale dal saldo negativo.
            equity *= max(0.0, 1.0 + outcome * risk_per_trade)
            equity_curve.append(equity)
        equity_curve = np.asarray(equity_curve)
        peak = np.maximum.accumulate(equity_curve)
        drawdown = (equity_curve - peak) / peak
        worst = float(drawdown.min())
        final_returns.append(equity - 1.0)
        max_drawdowns.append(worst)
        if worst < -0.30:  # Strettamente più profondo di un calo del 30% dal massimo raggiunto fino a quel momento.
            threshold_breaches += 1

    return {
        "trades_per_path": n_trades,
        "effective_block_size": block_size,
        "median_return": float(np.median(final_returns)),
        "p05_return": float(np.percentile(final_returns, 5)),
        "p95_return": float(np.percentile(final_returns, 95)),
        # DD negativo: il quinto percentile è l'entità avversa al 95º percentile.
        "p95_max_dd": float(np.percentile(max_drawdowns, 5)),
        "p99_max_dd": float(np.percentile(max_drawdowns, 1)),
        "prob_dd_over_30pct": threshold_breaches / n_simulations,
        "mean_return": float(np.mean(final_returns)),
    }

# Dati propri facoltativi: un valore R netto per operazione completata, in ordine cronologico.
# trades = pd.read_csv("my_results.csv")["R"].to_numpy(dtype=float)

# Dimostrazione SINTETICA, non risultati di una strategia di mercato.
# 20 valori: 6 vincenti, totale +2R, media +0.10R; domina un valore anomalo di +7.2R.
toy = np.array([-1.0, -1.0, 3.1, -1.0, -1.0, -1.0, 0.9, -1.0, 7.2, -1.0,
                -1.0, -0.6, 1.4, -1.0, -1.0, -1.0, 2.3, -1.0, -1.0, 0.7])
trades = np.tile(toy, 10)  # Ripetizione artificiale, NON 200 osservazioni indipendenti.
# Per usare il tuo CSV, sostituire la riga sopra con la riga facoltativa di importazione.

print("Versione NumPy:", np.__version__)
for risk in (0.01, 0.02):
    result = block_bootstrap_strategy(trades, n_simulations=2000,
                                      block_size=10, risk_per_trade=risk, seed=42)
    print(f"Frazione di rischio per operazione: {risk:.0%}")
    print(f"Rendimento mediano su {result['trades_per_path']} operazioni: {result['median_return']:.2%}")
    print(f"Rendimento al quinto percentile: {result['p05_return']:.2%}")
    print(f"DD avverso al 95º percentile: {result['p95_max_dd']:.2%}")
    print(f"Percorsi con DD più profondo del 30%: {result['prob_dd_over_30pct']:.2%}")

Il calcolo verifica come si comporta il campione scelto sotto ricampionamento e con la politica di dimensionamento specificata. La sequenza giocattolo di 20 valori somma +2R e ha media +0,10R; eliminare la sua osservazione di +7,2R cambia sostanzialmente il quadro. Ripeterla dieci volte crea una dimostrazione di codice con 200 elementi e periodicità artificiale, non dieci volte più evidenze indipendenti.

Output di esempio verificato con NumPy 2.5.3, seme 42 e 2.000 percorsi: con rischio dell'1%, il rendimento mediano su 200 operazioni è +19,56%, il rendimento al quinto percentile −4,11%, il drawdown avverso al 95º percentile −17,66%, e nessuno dei percorsi simulati supera il 30% di drawdown. Con rischio del 2%, i valori corrispondenti sono +32,25%, −13,71%, −33,70% e 11,05% dei percorsi oltre la soglia. I drawdown avversi al 99º percentile sono circa −21,09% e −39,51%, rispettivamente. Sono output sintetici su 200 operazioni, non previsioni annuali. Registra codice e versione NumPy oltre al seme: il generatore non promette un flusso invariato in tutte le versioni future. La relazione importante è che il drawdown percentuale dipende dal dimensionamento oltre che dalla sequenza di R.

Registra i criteri di simulazione nel campo 9 della scheda di test prima di esaminare l'output. Una politica illustrativa potrebbe richiedere rendimenti positivi per mediana e quinto percentile, il quantile avverso del drawdown sotto il limite del piano e meno dell'1% dei percorsi simulati oltre una soglia di drawdown del 30%. Sono regole decisionali dello scenario, non standard di mercato. Un esito negativo significa che il candidato non supera quel modello e quella scala secondo i criteri scelti; non è un invito a spostare le soglie dopo.

Limiti importanti: il ricampionamento non può creare una perdita individuale più estrema del peggior risultato di input, anche se perdite ripetute possono produrre un drawdown cumulativo più profondo. Non può inventare una crisi di liquidità mai osservata, un nuovo regime di finanziamento o un guasto di esecuzione assente. Zero superamenti della soglia in una simulazione finita non implicano rischio reale nullo. La curva del codice dopo ogni operazione omette le variazioni del capitale durante l'operazione, le liquidazioni per margine, le posizioni sovrapposte e il debito residuo. Il suo limite inferiore di capitale zero è una convenzione del modello, non una protezione legale del conto.

La stessa percentuale, un importo monetario diverso

Un calo del 15% su PLN 5.000 è pari a PLN 750; su PLN 50.000 è PLN 7.500. Si mantiene la valuta dello scenario polacco originale, senza conversione valutaria. La stessa aritmetica vale in qualsiasi valuta del conto: il 15% di 5.000 unità è 750 e il 15% di 50.000 è 7.500. La percentuale è identica, mentre le conseguenze monetarie e i vincoli del titolare possono differire sostanzialmente.

Il drawdown accettabile e la dimensione della posizione a diverse scale del conto sono trattati nell'articolo 15.11; i limiti giornalieri, settimanali e mensili appartengono al piano in l'articolo 15.2. Per questo test, confronta il quantile simulato con il limite documentato prima dell'esecuzione, non con l'importo che diventi disposto a tollerare dopo aver visto il risultato.

Perché considerare i blocchi invece del ricampionamento indipendente?

Il raggruppamento della volatilità riguarda l'entità dei movimenti. Non significa automaticamente che un'operazione perdente renda più probabile una perdita nella successiva. La dipendenza nei segni e nei risultati è una proprietà da indagare nella tua strategia, non un fatto universale da presumere. Un regime condiviso, coppie correlate o un singolo evento macro possono creare sequenze che il ricampionamento indipendente separa.

Il campionamento a blocchi conserva sequenze locali e può quindi fornire un'analisi di sensibilità più pertinente quando quella dipendenza conta. Non preserva ogni relazione di lungo raggio e non è garantito che l'errore del bootstrap indipendente sottostimi il rischio in ogni insieme di dati. Confronta blocchi di lunghezza 5, 10 e 20, rendi noti tutti i risultati ed esamina la struttura di dipendenza originale. Un quantile avverso del drawdown crescente con blocchi più lunghi suggerisce sensibilità allo schema di ricampionamento; non dimostra da solo un particolare modello di dipendenza. Anche pochi cambiamenti in questo piccolo esercizio di sensibilità non provano che l'indipendenza sia innocua in ogni condizione.

Bootstrap a blocchi: 2000 percorsi di 200 risultati. Sequenza giocattolo di 20 ripetuta 10×; blocco 10, seme 42. La fascia puntuale non è un percentile del DD massimo. Orizzonte: 200 operazioni, non un anno; nessuna garanzia sulle perdite future.
Sequenza giocattolo di 20 ripetuta 10×; blocco 10, seme 42. La fascia puntuale non è un percentile del DD massimo. Orizzonte: 200 operazioni, non un anno; nessuna garanzia sulle perdite future.

5. Test prospettici: demo, operatività simulata e prova pilota reale limitata

Le fasi seguenti aumentano il realismo e le conseguenze finanziarie di un errore. Accorciare il processo non elimina le ipotesi non testate; lascia che un numero maggiore venga scoperto dopo aver esposto i fondi. La sequenza è un quadro didattico, non un obbligo per cui ogni candidato debba infine progredire verso l'operatività reale.

Due significati diversi di «forward»

Distingui sempre questi casi in un rapporto di test:

  • Campione storico successivo tenuto da parte: il tester separa una parte successiva di un insieme di dati esistente, seleziona i parametri sulla parte precedente e li valuta sul segmento riservato. MT5 chiama Forward la propria opzione di suddivisione storica.[6] Esamina un'altra finestra storica secondo il modello del tester. Non misura l'effettiva esecuzione futura.
  • Osservazione prospettica: la strategia fissata viene eseguita man mano che arrivano osservazioni dopo la data di fissazione. Le decisioni originali con timestamp non possono usare osservazioni che non esistono ancora. Conserva comunque quei registri, perché revisioni successive o rietichettature retrospettive possono ancora contaminare la valutazione. Specifica se gli ordini sono simulati, soltanto registrati sulla carta o effettivamente eseguiti sul mercato reale; solo l'ultimo caso fornisce esecuzioni reali.

Registra modalità e data di fissazione nel campo 4 della scheda di test. Senza quella data, «ha funzionato su dati nuovi» è indistinguibile da «ha funzionato su dati già disponibili quando sono state scelte le regole».

Fase 1: demo sui dati in arrivo

L'ambiente demo di un fornitore può assomigliare alla sua piattaforma reale senza condividere ogni feed, regola di esecuzione o vincolo. Verifica queste differenze invece di presumere condizioni identiche. La demo è utile perché:

  • Gli errori di ordine e di strategia non fanno perdere direttamente capitale reale del conto.
  • Puoi scoprire un difetto dopo dieci operazioni e tornare allo sviluppo senza una perdita finanziaria di trading. Registra la nuova versione e conserva le vecchie osservazioni invece di mescolare la regola rivista nella stessa valutazione.
  • Puoi testare l'integrazione degli strumenti: avvisi, avvio dell'EA, implementazione delle regole, gestione dello stato degli ordini ed esportazioni del diario.

I suoi limiti comprendono:

  • Esecuzioni simulate: slippage e gestione della liquidità possono differire dall'esecuzione reale. Non dedurre le intenzioni di un fornitore da un'esecuzione favorevole in demo; identifica la differenza misurabile.
  • Poste finanziarie differenti: possono comunque esistere meccanismi simulati di margine e stop-out, ma l'assenza di una vera perdita monetaria non riproduce la reazione dell'utente a un'esposizione con capitale reale.
  • Comportamento incompleto delle richieste: gestione di rifiuti, requote ed esecuzioni parziali può differire. Dipende dalla modalità di esecuzione e dalle impostazioni del prodotto, non semplicemente da un'etichetta commerciale ECN o STP.

Una fase demo illustrativa di 30 giorni e 30 operazioni pone domande pratiche: gli avvisi sono scattati all'ora prevista, l'EA ha mancato segnali, lo spread osservato differiva dal modello e l'operatore ha modificato manualmente le regole? Quei conteggi sono soglie dello scenario, non standard di mercato. Con un segnale ogni due settimane, lo stesso obiettivo di osservazione richiede molti mesi. Anche 30 operazioni corrette sostengono soprattutto una verifica dell'infrastruttura e del processo; non stabiliscono una stima precisa del valore atteso.

Registra i risultati prospettici dal primo giorno. Ricostruire a mano un mese di operazioni favorisce omissioni e rende inaffidabile la riconciliazione. Schema del diario, importazioni e confronto con gli estratti del fornitore sono trattati nell'articolo 15.9. Conserva almeno ora del segnale, tempi di richiesta ed esecuzione, prezzi eseguibili, slippage, addebiti, versione del setup e rischio monetario iniziale. Senza una contabilizzazione compatibile, il multiplo di R prospettico non può essere confrontato con la R del test.

Fase 2: operatività simulata su un feed in tempo reale, facoltativamente 30–60 giorni

Un processo in parallelo o di operatività simulata registra ogni segnale ammissibile e calcola un esito ipotetico usando un modello esplicito di spread, slippage ed esecuzione senza inviare ordini. Offre controllo sul modello ed evita di affidarsi a esecuzioni demo non spiegate. Non produce evidenze di esecuzione reale e può non rivelare se l'operatore avrebbe inviato l'ordine con denaro reale in gioco. La durata illustrativa di 30–60 giorni è facoltativa e dipende dalla domanda ancora irrisolta dopo la demo. Non è automaticamente una fonte aggiuntiva di osservazioni indipendenti di mercato se copre gli stessi segnali.

Fase 3: prova pilota reale limitata autorizzata separatamente

Lo scenario svolto illustra un piccolo conto dotato di PLN 1.000–2.000 con ordini da 0,01–0,05 lotti standard. Mantienili come importi dello scenario polacco, non una raccomandazione di deposito adeguato o dimensione della posizione. La dimensione valida deve derivare da distanza dello stop, valore del pip, addebiti, requisiti di margine e budget di perdita del titolare. Anche 0,01 lotti possono essere troppi per un conto piccolo o uno stop ampio. Se la dimensione minima del fornitore non rientra nel budget autorizzato, la decisione corretta è non svolgere lì quel progetto pilota.

Lo scopo di una fase reale limitata è indagare l'effettiva implementazione con un'esposizione pianificata circoscritta e accettata esplicitamente, non testare se possa fornire un reddito. Può misurare:

  • Esecuzione effettiva: spread osservati, slippage, latenza, rifiuti ed eventuali requote nella modalità del conto reale.
  • Rispetto operativo delle regole: uscite manuali fuori dalle regole, modifiche degli stop, segnali ignorati e altre deviazioni. Definisci il denominatore del tasso di errore: segnali ammissibili, ordini inviati e operazioni completate sono popolazioni diverse.
  • Finanziamento effettivo: riconcilia addebiti e accrediti con la specifica applicabile del simbolo reale invece di un prospetto demo.
  • Integrazione in condizioni reali: conferma che EA, avvisi, registrazione e procedure di controllo si comportino come previsto.

Gli obiettivi dell'esempio di 90 giorni e 60–100 operazioni sono ipotesi illustrative di pianificazione. Prestabilisci come confrontare le stime storiche e prospettiche, tenendo conto dell'incertezza in entrambi i campioni. Chiedersi soltanto se la nuova media rientra nell'intervallo di confidenza della media storica non è un confronto appropriato fra due campioni. Neppure la sovrapposizione di due intervalli separati è matematicamente equivalente a un intervallo di confidenza della loro differenza che contenga zero.

Stima la differenza con un metodo adeguato ai dati e alla dipendenza e definisci un margine accettabile di deterioramento se la domanda riguarda l'equivalenza pratica. Un intervallo della differenza che contiene zero significa che la differenza è irrisolta; non dimostra che le due implementazioni siano equivalenti. Oltre al confronto, richiedi un comportamento di esecuzione compreso, il rispetto dei limiti di rischio e un tasso misurato e accettabile di violazioni delle regole. Un percentile di drawdown simulato può essere un innesco di revisione predefinito, non un confine futuro inviolabile. Registra tutti questi criteri prima di iniziare.

Criteri di transizione

Le durate e i conteggi seguenti mantengono questo scenario di esempio. Le regole decisionali effettive appartengono al campo 9 della scheda di test; la tabella non autorizza ad avanzare soltanto perché è trascorso un numero sufficiente di giorni.

DaPossibile fase successivaVerifica illustrativa
Ricerca storicaOsservazione demo o in paralleloCriteri OOS/WFA prestabiliti superati; Monte Carlo: rendimento al 5º percentile > 0, con frequenza di superamento della soglia sotto il limite registrato nella scheda di test (campo 9); modello dei costi realistico. Esamina incertezza e limiti prima di avanzare.
DemoProva pilota reale limitata autorizzata separatamenteA titolo illustrativo, 30+ giorni e 30+ operazioni; riconciliazione dei segnali e controlli di integrazione superati; differenze osservate spiegate; un confronto appropriato non viola il criterio prestabilito di deterioramento. Conferma una dimensione minima fattibile e un budget esplicito di rischio reale.
Prova pilota reale limitataQualsiasi scala autorizzata dal piano di trading (15.2)A titolo illustrativo, 90+ giorni e 60+ operazioni; costi reali e differenze dei risultati valutati con incertezza; drawdown entro i controlli del piano; deviazioni misurate accettabilmente basse; nessun difetto operativo irrisolto. Aumentare la scala richiede una decisione separata, non una transizione automatica.

Il ramo mancante in molti piani è «non passare al reale». Non superare una verifica è un risultato da registrare, non un invito ad abbassare il criterio. Questo calendario di esempio totalizza da quattro a otto settimane di lavoro storico, 30 giorni demo e 90 giorni pilota: 148–176 giorni, circa cinque-sei mesi, esclusi la fase facoltativa di simulazione e gli eventuali periodi di pausa. Questa aritmetica è un esempio di pianificazione, non una garanzia di evidenze sufficienti o una previsione che saltare una fase debba produrre una perdita. Saltarla lascia senza risposta le sue domande.

Fattibilità operativa: che cosa non testa un modello storico

Una strategia che richiede una decisione alle 13:30 Europe/London non è operativamente fattibile per chi non è disponibile perché in riunione fino alle 16:00 nello stesso fuso. Sono gli equivalenti dell'esempio polacco originale delle 14:30 e 17:00, non un calendario universale degli eventi. Un inventario prospettico dei segnali rivelerà le opportunità mancate. Registrale come non esecuzioni; non eliminarle fingendo che ricerca e pratica abbiano usato lo stesso insieme di opportunità.

L'articolo 15.5 tratta finestre decisionali compatibili con il lavoro, avvisi e timeframe superiori. L'articolo 15.1 tratta continuità della postazione, monitoraggio del VPS e avvio; l'articolo 15.3 registra le ipotesi di tempistica e di esecuzione della strategia. Sono responsabilità diverse, tutte rilevanti per l'implementazione.

Uno stop lato server non è un prezzo di esecuzione garantito. Uno stop accettato e mantenuto dal fornitore può restare attivo quando il terminale locale o il VPS si disconnette. Una regola trailing calcolata localmente normalmente smette di aggiornarsi quando il suo processo si ferma, lasciando soltanto l'ultimo livello lato server accettato. Verifica questo comportamento per conto, strumento e tipo di ordine effettivi. Un gap o una quotazione mancante possono comunque produrre un'esecuzione peggiore dello stop e un esito inferiore a −1R. Il campo 5 della scheda di test deve rappresentare questa possibilità. Non presumere che fare clic su un controllo locale dimostri che il fornitore abbia accettato la protezione.
Separa l'imposta sul reddito dal calcolo della performance di trading. Il test riporta i risultati di trading dopo i pertinenti costi di esecuzione e finanziamento, prima di qualsiasi calcolo separato dell'imposta sul reddito. La trattazione originale degli adempimenti dichiarativi polacchi è nel capitolo 14, in polacco; il trattamento internazionale dipende da giurisdizione e status. Un'imposta o prelievo sulle transazioni effettivamente addebitato su un ordine resta un costo di trading e non va omesso soltanto perché l'imposta sul reddito è contabilizzata separatamente.
Esempio illustrativo: le esecuzioni demo non riproducono il conto con capitale reale. Sono cifre sintetiche. Uno scalper EUR/USD con obiettivo stretto appare redditizio in un ambiente demo semplificato, ma incontra circa 1,5 pip di slippage sfavorevole sia all'entrata sia all'uscita in uno scenario reale. La differenza di 3 pip per l'operazione completa equivale a 0,5R quando la distanza iniziale di rischio è 6 pip, trasformando un ipotizzato +0,3R in −0,2R prima di ogni altra differenza. Questa aritmetica non dimostra uno specifico meccanismo di instradamento. Etichette come B-Book, ECN e STP non stabiliscono la qualità di esecuzione e il solo slippage non può diagnosticare il «last look». Esamina timestamp, richieste respinte, politica di esecuzione e dati di quotazione prima di attribuire la causa o selezionare un altro fornitore. In un'illustrazione lineare della dimensione, una perdita di USD 24 a 0,01 lotti sarebbe USD 2.400 a 1 lotto: 100 volte il volume e 100 volte il risultato basato sui prezzi, ipotizzando esecuzioni invariate e costi proporzionali. L'esecuzione a dimensioni maggiori può non restare identica. Una prova pilota di sei settimane può identificare una discrepanza concreta anche mentre il vantaggio di lungo periodo rimane incerto. La lezione è misurare l'implementazione reale prevista, non presumere che cambiare l'etichetta del conto risolva il problema.
Ciclo dei test di strategia: ipotesi, specifica fissata, verifiche di dati e codice, ricerca storica, valutazione indipendente, osservazione dei dati in arrivo, confronto e decisione. Le modifiche alle regole iniziano una nuova versione; non passare al reale è un esito altrettanto valido. Otto passaggi di ricerca ordinati conducono a una decisione. Una regola modificata torna a una nuova ipotesi e specifica invece di riscrivere un risultato precedente. Qualsiasi passaggio al rischio reale richiede una decisione separata ed esplicita. Ciclo dei test: otto passaggi, un ciclo di nuova versione e una valida uscita «non passare al reale» 1. Ipotesi meccanismo e condizioni che cosa la confuterebbe 2. Specifica fissata regole, parametri, hash criteri di valutazione scritti 3. Verifiche di dati e codice fonte, vuoti, tempo, costi anticipazione, repainting 4. Ricerca storica IS + validazione registrare ogni tentativo 5. Valutazione indipendente un test OOS intatto + confronto con il riferimento 6. Test dei dati in arrivo demo ≠ esecuzione reale pilota reale solo se autorizzato 7. Confrontare con i criteri usare la scheda di test fissata incertezza, non soltanto una media 8. Decisione continuare / sospendere / respingere Regola modificata → nuova versione → nuovo test; conservare il vecchio risultato Dimensionamento dal piano (15.2) un'opzione, non un premio Non passare al reale un esito altrettanto valido Superare un test non basta: non garantisce il successo né impone di operare sul mercato reale.
Il ciclo completo dei test: otto passaggi, un percorso di ritorno per «modifica delle regole → nuova versione → nuova valutazione» e due decisioni altrettanto valide alla verifica finale. Una regola rivista non ripara le evidenze della vecchia versione. Definisci i criteri di transizione prima di svolgere le fasi e mantieni l'opzione di non passare al reale. Solo schema; nessun dato di performance.
Esempio illustrativo: saltare la demo e la prova pilota limitata. Un trader dedica sei settimane a studiare una candidata di inversione GBP/JPY, ottiene una stima OOS di +0,4R e una simulazione attraente, poi passa direttamente a uno scenario con capitale di USD 5.000 e rischio pianificato dello 0,5%. Le prime 30 operazioni contengono 11 vittorie: 36,7%, convenzionalmente arrotondato al 37%, invece del 54% storico. Una frazione di vittorie esattamente pari al 38% non può verificarsi con 30 esiti binari di operazioni. La media illustrativa è −0,2R, quindi la somma è 30 × −0,2R = −6R. Con una R monetaria fissa di USD 25, equivale a USD 150, ossia il 3% del capitale iniziale. Se invece il rischio viene ricalcolato come lo 0,5% del capitale variabile, l'esatto risultato monetario dipende dai singoli esiti e dalla sequenza; la sola somma non basta.

In quello scenario, il modello storico basato solo sul bid usava 1,5 pip di costo, mentre il modello osservato richiede uno spread di 2,5–4 pip più 0,5–1,5 pip di slippage su ciascun lato: 3,5–7 pip in totale. Sono ipotesi sintetiche, non quotazioni attuali GBP/JPY. La differenza in R dipende dalla distanza dello stop. Per esempio, aumentare i costi da 1,5 a 4,5 pip aggiunge 3 pip; con D = 5 pip sono 0,6R, sufficienti a spostare +0,4R a −0,2R. Una verifica demo può rivelare differenze nel modello delle quotazioni, ma non garantisce di scoprire lo slippage reale. Con un decimo del rischio monetario, gli stessi −6R sarebbero USD 15 invece di USD 150, solo se la dimensione minima del fornitore e le ipotesi di costi proporzionali consentono quella scala. Trenta operazioni forniscono ancora evidenze limitate sul valore atteso. Le discrepanze misurate dei costi possono comunque giustificare la correzione di un modello, riconoscendo che i costi stessi variano e che l'esecuzione nelle code resta incerta.

6. Quante osservazioni bastano? N, p-value e intervalli di confidenza

Un backtest di 30 operazioni con 18 vincenti ha un tasso di successo osservato del 60%. È una descrizione valida del campione, non una misurazione precisa della probabilità sottostante di vittoria della strategia. Sotto prove di Bernoulli indipendenti e identicamente distribuite, l'intervallo bilaterale di Clopper–Pearson al 95% è circa 40,6–77,3%. La procedura degli intervalli ha almeno la copertura dichiarata su campioni ripetuti sotto il modello; non assegna una probabilità del 95% a un parametro fisso sconosciuto dopo aver osservato questo particolare campione.

Una percentuale campionaria favorevole può lasciare irrisolta un'ampia gamma di valori. Con 24 vittorie in 40 operazioni, il tasso osservato resta del 60%, ma l'intervallo esatto corrispondente è circa 43,3–75,1%. Che una probabilità di vittoria inferiore implichi una strategia perdente dipende dal profilo di vincite e perdite. Con un tasso ipotetico di vittoria del 41%, vincita media 2R e perdita 1R, il valore atteso prima dei costi aggiuntivi è 0,41 × 2 − 0,59 × 1 = +0,23R. Con vincite e perdite in rapporto 1:1 è −0,18R. Una stima successiva vicina al 51% non implica necessariamente che un vantaggio sia scomparso; la stima precedente potrebbe essere stata soltanto imprecisa. La stima puntuale originale misurava il campione, ma non era un'affermazione precisa o certa sulla performance futura.

Il teorema del limite centrale, le code pesanti e l'assenza di un numero magico

Il teorema del limite centrale non dichiara N = 30 universalmente sufficiente. Applicabilità e qualità dell'approssimazione dipendono dalle ipotesi distributive e di dipendenza. I risultati delle operazioni finanziarie possono essere asimmetrici, avere code pesanti e presentarsi a gruppi: una vincita di +5R o una perdita da gap di −3R possono cambiare sostanzialmente media e dispersione di un campione piccolo. La convergenza può essere lenta e alcuni modelli non soddisfano affatto le consuete ipotesi di varianza finita.

Non esiste un unico numero magico di operazioni. L'adeguatezza dipende dalla dispersione dei risultati in R, dalla dipendenza fra operazioni, dalla frequenza dei segnali, dalla copertura dei regimi, dal numero di varianti provate e dalla precisione richiesta per la decisione. Trenta entrate esposte alla stessa tendenza settimanale o evento macro non sono automaticamente trenta esperimenti indipendenti. Riporta sempre il numero di osservazioni, ma insieme a intervallo, metodo e ipotesi anziché come criterio autonomo di promozione.

Intervalli del tasso di successo a diverse dimensioni campionarie

Numero di operazioni NVittorie e tasso osservatiIntervallo esatto bilaterale al 95%Sai distinguere il vantaggio dal rumore?
3060%40,6–77,3% (circa ±18 punti percentuali)Irrisolto: l'intervallo include tassi di successo inferiori alla soglia di pareggio; con un rapporto vincita/perdita di 1:1 e senza costi, tale soglia è il 50%.
5060%45,2–73,6% (circa ±14 punti percentuali)Il limite inferiore resta sotto il 50%.
10060%49,7–69,7% (circa ±10 punti percentuali)L'intervallo include ancora il 50%; l'arrotondamento non deve cambiare la decisione.
20060%52,9–66,8% (circa ±7 punti percentuali)Esclude il 50% sotto il modello dichiarato; ciò non stabilisce un profilo di vincite e perdite redditizio al netto dei costi.
50060%55,6–64,3% (circa ±4 punti percentuali)Incertezza più ristretta sulla probabilità di vittoria, non una prova di valore atteso redditizio.
1.00060%57–63% (arrotondato; circa ±3 punti percentuali)Maggiore precisione sotto il modello; qualità dei dati, dipendenza e profilo di vincite e perdite contano ancora.

La tabella usa intervalli bilaterali di Clopper–Pearson al 95% con conteggi interi delle vittorie e prove indipendenti a probabilità costante. La dipendenza o una probabilità di vittoria variabile invalidano questa semplice interpretazione; il raggruppamento positivo spesso riduce l'informazione effettiva, ma non presumere che ogni possibile dipendenza abbia un effetto identico. Indica come vengono gestite condizioni raggruppate o mutevoli.

La colonna di confronto usa il 50% soltanto perché è il tasso di pareggio in un modello a due esiti con rapporto fisso vincita/perdita di 1:1 senza costi aggiuntivi. Più in generale, con entità positiva della vincita W ed entità della perdita L, il tasso di pareggio senza costi aggiuntivi è L / (W + L), equivalentemente 1 / (1 + W/L). Una vincita di 2R contro una perdita di 1R dà il 33,3%; una vincita di 0,5R contro una perdita di 1R dà il 66,7%. Un costo medio costante aggiuntivo c porta la soglia del modello a (L + c) / (W + L), purché il costo non sia già stato incluso in W e L.

La conclusione operativa non è «200 operazioni bastano». È che conta l'incertezza rispetto alla soglia decisionale scelta. Con n = 100 l'intervallo bilaterale include ancora il 50%, quindi quel particolare criterio dell'intervallo è irrisolto. Con n = 200 esclude il 50%, ma affermare che la strategia è redditizia richiede ancora l'intero profilo di vincite e perdite e i costi. Un risultato irrisolto richiede normalmente di continuare la ricerca secondo il piano; non autorizza automaticamente una posizione reale più piccola né dimostra che una strategia esistente debba essere ritirata. Limiti di sicurezza e difetti di implementazione dimostrati restano motivi separati per sospendere.

Un test binomiale: la probabilità di vittoria supera il 50%?

Qui l'ipotesi nulla è p = 0.5, con l'alternativa prestabilita p > 0.5. Non equivale a «nessun vantaggio di trading». Una strategia con il 40% di vincenti e rapporto vincita/perdita di 3:1 ha valore atteso positivo prima dei costi, mentre perfino il 70% di vincenti con rapporto 0,5:1 produce soltanto un piccolo margine positivo che i costi possono eliminare.

Il p-value unilaterale è la probabilità, sotto l'ipotesi nulla e le relative ipotesi campionarie, di osservare almeno tante vittorie quante ne contiene il campione. Non è la probabilità che l'ipotesi nulla sia vera, che la strategia abbia un vantaggio o che il suo risultato futuro sia redditizio. Se usi fasce descrittive come quelle di questo articolo di esempio, interpretale con attenzione:

  • Sotto 0,01: un risultato di coda superiore relativamente insolito sotto questa ipotesi nulla per un unico test prestabilito, non una prova di un effetto utile nel trading.
  • 0,01–0,05: può superare un test unilaterale prestabilito al 5%, ma la selezione fra molti candidati richiede una procedura appropriata per la molteplicità.
  • 0,05–0,10: non supera una soglia di rifiuto del 5%. L'effetto resta incerto secondo quel criterio.
  • Sopra 0,10: evidenze insufficienti per rifiutare questa ipotesi nulla sulla probabilità di vittoria a quelle soglie. Non dimostra performance casuale o assenza di un vantaggio basato sul profilo di vincite e perdite.

Scegli la direzione del test e la soglia prima di vedere il risultato. Quando sono state esaminate 30 varianti, il p-value non corretto più piccolo è un risultato selezionato; la sezione 2 spiega perché conta l'intera cronologia dei tentativi.

Nelle versioni moderne di SciPy usa from scipy.stats import binomtest, poi binomtest(wins, n_trades, 0.5, alternative='greater').pvalue. La documentazione ufficiale dell'API ne registra l'introduzione nella versione 1.7.0. La precedente binom_test è stata deprecata nella 1.10.0 e rimossa nella 1.12.0; usa l'API attuale con oggetto risultato anziché copiare frammenti obsoleti.

Per 60 vittorie in 100 operazioni, il p-value unilaterale è circa 0,02844. Per 18 vittorie su 30, è circa 0,18080, nonostante lo stesso tasso di successo osservato del 60%. Il primo supera un test non corretto e prestabilito al 5%, unilaterale; il secondo no. Non c'è contraddizione con l'intervallo di 100 operazioni della tabella che include il 50%: la tabella usa un intervallo bilaterale al 95%. Allinea livello di confidenza e direzione del test prima di confrontarne le decisioni.

Testa il risultato in R, non soltanto il tasso di successo

Con il 40% di vincenti, vincita media 3R e perdita media 1R, il valore atteso prima dei costi aggiuntivi è 0,4 × 3 − 0,6 × 1 = +0,6R. Con il 70% di vincenti, vincita media 0,5R e perdita media 1R, è soltanto +0,05R. La seconda ha un tasso di successo maggiore ma un margine per i costi molto più piccolo. Nessuna delle ipotesi numeriche è un'evidenza dell'effettiva qualità della strategia.

Un test t a un campione può esaminare la media di R netto rispetto a zero quando le sue ipotesi e l'approssimazione sono appropriate. La sua statistica è t = mean_R / (sample_sd_R / sqrt(N)), con N−1 gradi di libertà. Non è la risposta statistica completa per risultati di trading selezionati, dipendenti o con code pesanti; possono richiedere un disegno di inferenza diverso o un metodo di ricampionamento.

Per una media campionaria illustrativa di +0,3R e una deviazione standard campionaria di 1,5R, N = 30 dà t ≈ 1,10 e un p-value unilaterale intorno a 0,14. Con N = 200, le stesse media e dispersione danno t ≈ 2,83 e un p-value unilaterale intorno a 0,003. Il secondo è un'evidenza più forte contro quella specifica ipotesi nulla di media zero sotto le ipotesi adottate, non certezza o autorizzazione automatica al reale. La seguente API SciPy del test t a un campione supporta alternative esplicite; scegli alternative='greater' solo se questa è la domanda prestabilita.

L'esempio mostra perché la stessa stima puntuale può sostenere conclusioni diverse a dimensioni campionarie differenti. Registra sia N sia un intervallo appropriato attorno al valore atteso netto. Raggiungere un particolare N non rende certo l'esito, e controllare ripetutamente finché non compare significatività introduce un altro problema di selezione.

La formula operativa del valore atteso

Valore attesoR = (W% × avgWinR) − (L% × avgLossR)

Usa frazioni per W% e L% ed entità positive per vincita e perdita medie condizionate. Le operazioni in pareggio contribuiscono zero, ma fanno comunque parte del conteggio totale. Con il 54% di vincenti, vincita media 1,8R e perdita media 1R, il risultato è 0,54 × 1,8 − 0,46 × 1 = 0,512R, circa +0,51R.

Devono essere medie realizzate, non un rapporto obiettivo pianificato. Un obiettivo a 1,8 volte la distanza iniziale dello stop non implica che le vincenti abbiano davvero una media di +1,8R: uscite parziali, chiusure anticipate ed esecuzione cambiano il risultato. Se la serie di R è già al netto di tutti gli addebiti, non sottrarre di nuovo i costi. Se precede specifici addebiti, includili una sola volta prima di valutare l'affermazione netta. Un costo di +0,2–0,3R può eliminare una stima positiva più piccola prima dei costi; unità e denominatore devono rendere tracciabile il calcolo.

SQN: una convenzione di rendicontazione, non una decisione di allocazione

Un punteggio della forma SQN = sqrt(N) × mean(R) / std(R) combina risultato medio, dispersione e dimensione campionaria.[5] A parità di media e deviazione standard, la forma senza tetto cresce con √N. Un test lungo può quindi avere un punteggio più alto senza un vantaggio maggiore per operazione. Identifica la convenzione della deviazione standard campionaria e ogni limite su N; la variante con tetto discussa altrove in questo capitolo non è intercambiabile con un punteggio senza tetto.

L'articolo 15.9 fornisce le definizioni comuni delle metriche e i relativi limiti. SQN non dimostra che un vantaggio sia reale, non sostituisce la valutazione OOS o un modello dei costi e non determina da solo un'allocazione di capitale.

Esempio illustrativo: 57% di vincenti e una strategia perdente. Dopo otto mesi, un diario sintetico contiene 47 operazioni e 27 vittorie: 57,4%. Il p-value binomiale unilaterale rispetto al 50% è circa 0,19085, e l'intervallo esatto bilaterale al 95% del tasso di successo è 42,2–71,7%. Ciò non rifiuta l'ipotesi nulla sulla probabilità di vittoria. Ancora più importante, il diario ometteva originariamente i risultati in R, quindi il tasso di successo non poteva affatto stabilire il valore atteso.

Aggiungendo vincita media 0,7R e perdita media 1,2R si ottiene (27 × 0,7 − 20 × 1,2) / 47 = (18,9 − 24) / 47 ≈ −0,109R. La somma è −5,1R, non un risultato positivo. Con una R monetaria fissa pari all'1% del capitale iniziale, è il −5,1% del capitale iniziale. Se ciascuna delle 27 vittorie è esattamente +0,7R e ciascuna perdita esattamente −1,2R, rischiare ogni volta l'1% del capitale attuale dà 1,007^27 × 0,988^20 − 1 ≈ −5,17%. Se sono note soltanto le due medie, quel risultato composto non è determinato univocamente perché contano anche le entità dei singoli esiti.

Un risultato monetario positivo insieme a una media di R non ponderata negativa potrebbe riflettere diversi pesi di rischio monetario, depositi o prelievi, commissioni o un errore di riconciliazione; indaga invece di presumere una spiegazione. Il rischio variabile non rende incalcolabile il valore atteso in R. Ogni operazione richiede il proprio R₀ positivo fissato prima dell'entrata, con R_i = netto P/L_i / R₀_i. Non puoi invece convertire la somma non ponderata di R nella variazione percentuale del conto senza pesi di rischio, percorso del capitale e informazioni sui flussi di cassa. La lezione è conservare le colonne mancanti, non scartare otto mesi di osservazioni perché una metrica era incompleta. Campione piccolo o dipendente: limita l'inferenza.

Tasso di successo 60%: incertezza campionaria. 95% Clopper–Pearson: osservazioni indipendenti, probabilità fissa. Il 50% è pareggio a 1:1 senza costi. Escludere il 50% non stabilisce un vantaggio netto.
95% Clopper–Pearson: osservazioni indipendenti, probabilità fissa. Il 50% è pareggio a 1:1 senza costi. Escludere il 50% non stabilisce un vantaggio netto.
Influenza dell'anomalia: 20 risultati. Istogramma esatto di un campione sintetico prima della commissione. La sua media non è una previsione; va valutata la ricorrenza dei valori anomali.
Istogramma esatto di un campione sintetico prima della commissione. La sua media non è una previsione; va valutata la ricorrenza dei valori anomali.

7. Modellazione dell'esecuzione e dei costi: spread, slippage, finanziamento, commissioni ed esecuzioni parziali

Sottostimare i costi può trasformare un'implementazione perdente in un backtest apparentemente redditizio. Modella separatamente i quattro componenti di costo, poi riconciliali con il modello di esecuzione in modo da contare ciascuno esattamente una volta. Un foglio di calcolo dettagliato delle commissioni non compensa esecuzioni impossibili.

Spread: fisso o variabile?

ModelloDescrizioneInterpretazione appropriata
Spread fisso, per esempio 1 pipUn solo valore configurato per l'intero test.Una prima selezione rapida o uno scenario esplicitamente semplificato. Può essere ottimistico in condizioni di scarsa liquidità e richiede verifiche di sensibilità prima di sostenere un'affermazione sull'implementazione reale.
Spread medio storicoUna media stimata su 6–12 mesi, riportata come valore unico.Un modello grossolano per una finestra liquida ben definita, purché media e comportamento delle code siano rappresentativi. Una media dell'intera giornata può nascondere i costi effettivi di entrata della strategia.
Spread per ora del giornoValori diversi per sessione o stato di liquidità; valori illustrativi potrebbero essere 0,3 pip in un momento liquido e 4 pip intorno al rollover.Un modello di scenario più ricco, ma tabella, fuso orario e confini dei regimi richiedono evidenze. Non riproduce ogni quotazione o shock da pubblicazione.
Spread bid/ask tick per tickLo spread implicito in ogni osservazione bid/ask registrata nel feed selezionato.Utile per strategie sensibili allo spread e intrabarra. Non include automaticamente profondità del book, dimensione eseguibile, posizione in coda o esecuzioni del tuo fornitore.

Tick Data Suite è un flusso MT4 per dati tick importati, spread variabili e impostazioni aggiuntive di esecuzione. Il fornitore ne descrive queste capacità e pubblicizza una qualità di modellazione del 99%. Quel numero è un indicatore legato al tester, non una probabilità del 99% che strategia o esecuzioni reali siano corrette. La decisione di acquisto dipende da quali dati mancanti o capacità di modellazione servono davvero alla ricerca, non dal distintivo.

Una strategia di scalping o sulle pubblicazioni sensibile allo spread può cambiare segno quando cambia il modello, mentre una strategia swing con stop di circa 100 pip può essere meno sensibile a una piccola differenza di spread. Misura tale sensibilità invece di presumere che uno strumento a pagamento debba ripagare il costo. Questo articolo non raccomanda acquisti e non fornisce prezzi attuali degli abbonamenti.

Slippage: modelli statici e condizionali

Lo slippage è la differenza fra il prezzo di riferimento scelto e l'esecuzione effettiva, con direzione e lato dell'ordine specificati. Confrontare un prezzo di modello storico con un'esecuzione reale è utile soltanto dopo aver allineato timestamp di riferimento e convenzione di quotazione. I modelli possibili comprendono:

  • Statico: un margine sfavorevole fisso, per esempio 0,5 pip a ogni entrata e uscita. Semplice, ma potenzialmente inadeguato nelle condizioni di stress.
  • Condizionato all'ATR: un margine illustrativo di 0,1 × ATR(14) della M5 completata, convertito in pip. Aumenta con la misura di volatilità scelta, ma il coefficiente richiede calibrazione e può non descrivere le code.
  • Condizionato a dimensione e profondità: un modello che usa quantità dell'ordine, profondità disponibile e processo di esecuzione della sede. Servono i pertinenti dati di profondità e di stato degli ordini; un normale storico di tick bid/ask non li fornisce automaticamente.

Lo schema iniziale a tre regimi dell'esempio —frazioni di pip in condizioni ordinarie, diversi pip intorno ai breakout e potenzialmente pip a due cifre dopo le pubblicazioni— è illustrativo, non una distribuzione misurata del conto. Costruisci una tua tabella da richieste ed esecuzioni abbinate. Con numeri positivi a indicare slippage sfavorevole, un acquisto usa prezzo eseguito - prezzo di riferimento, mentre una vendita usa prezzo di riferimento - prezzo eseguito, poi si divide per la dimensione del pip. Un'uscita long è una vendita e un'uscita short è un acquisto. Conserva anche le esecuzioni favorevoli insieme alle richieste respinte e indica il riferimento usato.

Qualche decina di operazioni può rivelare una normale discrepanza di implementazione, ma raramente caratterizza in modo affidabile le code rare dell'esecuzione. Registra periodo del campione, dimensioni delle operazioni e condizioni invece di presentare una piccola media come l'intero modello dello slippage.

Swap e finanziamento

Le posizioni mantenute oltre il confine di finanziamento applicabile possono ricevere un addebito o un accredito. Le specifiche dei simboli delle piattaforme supportano modalità di calcolo diverse, quindi un numero swap visualizzato non significa necessariamente «pip per lotto per notte». Verifica se rappresenta punti, un importo in valuta, un calcolo degli interessi o un'altra convenzione specifica del prodotto prima di convertirlo.

  • Direzione: ottieni separatamente i tassi long e short. Non sono necessariamente uguali e opposti e possono entrambi essere addebiti. Non presumere uno swap short EUR/USD permanentemente positivo o uno long negativo sulla base di un vecchio contesto dei tassi.
  • Moltiplicatori giornalieri: molti strumenti FX T+2 usano un adeguamento triplo associato al rollover del mercoledì, ma giorno effettivo ed eccezioni per le festività dipendono da strumento e fornitore. Modella il calendario della posizione invece di moltiplicare un numero di notti senza date.
  • Variazioni dei tassi: il finanziamento riflette il contesto dei tassi e le condizioni del fornitore applicabili. Per i test storici usa prospetti storici, se disponibili, oppure dichiara un'approssimazione di scenario. La tabella odierna non ricostruisce automaticamente i costi di diversi anni fa.

Per una posizione swing da tre a otto giorni, il finanziamento può consumare una parte rilevante del valore atteso. Converti un addebito equivalente in pip in R usando la distanza iniziale, poi applica la sequenza effettiva di tassi e moltiplicatori datati. Omettere un addebito rilevante lascia priva di sostegno l'affermazione netta; anche un accredito va registrato con il segno corretto, senza presumere che compensi un altro costo.

Commissione

Alcuni conti addebitano in base al volume negoziato oltre allo spread. L'esempio illustra USD 5–7 per lotto standard e operazione completa per una coppia principale, USD 6–10 per una minore e USD 8–15 per un'esotica. Sono intervalli di scenario, non quotazioni attuali, e le etichette ECN/STP non determinano la tariffa. Usa il prospetto applicabile al conto, compresi addebiti minimi e scaglioni.

Per esprimere la commissione in pip, dividi la commissione di andata e ritorno per un lotto per il valore del pip di quel lotto nella stessa valuta. Per l'illustrazione standard EUR/USD, USD 6 / USD 10 per pip = 0,6 pip per operazione completa. Se il conto è in PLN o in un'altra valuta, converti entrambi gli importi coerentemente; convertire solo il numeratore modifica erroneamente il rapporto.

Con 200 operazioni mensili da 0,1 lotti e USD 6 per lotto standard e operazione completa, la commissione è USD 120 al mese. Rispetto a USD 1.000 di capitale iniziale, è un costo mensile di rotazione del 12%, ossia USD 1.440 —il 144% di quell'importo iniziale— su dodici mesi identici. È un totale aritmetico, non una previsione o un rendimento composto del conto. Illustra perché rotazione e costi richiedano attenzione; non dimostra che ogni strategia con lotti piccoli sia antieconomica.

Una politica illustrativa mantiene la commissione annuale entro una quota illustrativa del 20–30% del rendimento atteso della strategia. Tratta questi rapporti come politiche dello scenario, non soglie universali di capitale, e definisci se il denominatore è il profitto lordo atteso o quello dopo la stessa commissione per evitare ragionamenti circolari. Aumentare il solo capitale del conto non migliora un vantaggio netto per operazione quando l'esposizione cresce proporzionalmente. Valuta prima risultati netti effettivi e incertezza.

Tick Data Suite: un flusso di dati tick per MT4

Il flusso originale può essere mantenuto senza trattare il nome del software come certificato di validazione professionale:

  • Fornitore e licenza: esamina il sito ufficiale attuale del fornitore e i termini di licenza e compatibilità prima di ogni acquisto. Indirizzi dei siti e comportamento dei reindirizzamenti possono cambiare.
  • Dati: L'esportazione dei dati storici di Dukascopy è una possibile fonte. Esamina copertura degli strumenti, timestamp, campi bid/ask, vuoti e condizioni d'uso. Una fonte con risoluzione fine dei timestamp non garantisce liquidità eseguibile completa.
  • Configurazione iniziale: la previsione di due-tre ore dell'esempio è illustrativa, non una promessa. Scarica prima un breve periodo scelto, conferma conversione temporale e proprietà del simbolo, collega i dati al flusso documentato del tester e verifica quale modalità tick venga effettivamente usata.
  • Dopo la configurazione: controlla spread variabile, commissione, finanziamento, vincoli di volume, margine e impostazioni degli stop rispetto al conto previsto. Rivedi manualmente operazioni di esempio. Non interpretare «Ogni tick» da solo come prova che i tick siano stati registrati anziché generati.

Lo scopo è indagare la differenza fra un modello semplificato dello spread e un modello più pertinente di dati registrati. Lo strumento non può validare l'ipotesi della strategia, riparare dati di profondità indisponibili o garantire che i costi futuri assomiglino al passato. L'utilità deriva dall'esigenza di ricerca e dalle verifiche che svolgi.

Modellazione dell'esecuzione: ritardi, gap ed esecuzioni parziali

La contabilizzazione dei costi è soltanto metà del modello di implementazione. Il campo 5 deve anche indicare che cosa succede fra segnale ed esecuzione:

  • Momento del segnale e latenza: dopo una chiusura di candela confermata, calcolo, trasmissione e accettazione richiedono tempo. Le decisioni manuali possono richiedere secondi; i ritardi automatizzati dipendono da sistema e fornitore. Misurali o modellali esplicitamente. Un'ipotesi di ritardo nullo può essere rilevante per un breakout, ma il suo contributo non può essere dichiarato una quota fissa del costo senza evidenze.
  • Gap: un normale ordine stop a mercato non può essere eseguito a un prezzo non disponibile. Modella la successiva quotazione eseguibile disponibile secondo le regole dell'ordine, compresa la possibilità di esecuzione ritardata o fallita. Eseguire sempre esattamente allo stop sottostima alcune perdite di coda, soprattutto intorno a chiusure e pubblicazioni.
  • Esecuzioni parziali: usa la media delle esecuzioni ponderata per quantità anziché soltanto il primo prezzo. Una quantità parziale crea di solito meno esposizione della richiesta completa a parità delle altre condizioni, ma cambiamenti nei prezzi di esecuzione e negli addebiti possono alterare il confronto. Secondo la convenzione del diario usata qui, conserva l'R₀ originale precedente all'ordine e registra separatamente la frazione non eseguita. Se un'altra implementazione usa il rischio assegnato alla posizione eseguita, registra quel denominatore come metrica distinta invece di modificarlo retrospettivamente. Le uscite parziali da una sola decisione di entrata restano un'operazione; contarle come osservazioni separate cambia la ponderazione e può distorcere il tasso di successo.
  • Requote e rifiuti: un segnale storico può non diventare un'esecuzione reale. Registra gli esiti delle richieste e distingui un rifiuto confermato da uno stato sconosciuto. Cinquanta segnali candidati e 41 operazioni eseguite possono riflettere nove fallimenti di esecuzione anziché nove segnali mancanti; la riconciliazione deve confrontare elementi equivalenti.

Sottoponi a stress ogni ipotesi rilevante: ritardo maggiore, slippage peggiore, risoluzione sfavorevole di una candela ambigua. Se una modifica plausibile elimina il vantaggio, riporta la sensibilità e le evidenze mancanti sull'implementazione. Non dichiarare realistico ogni scenario pessimistico soltanto perché prudente. Un modello che ipotizza esecuzioni istantanee e complete a ogni prezzo di riferimento deve dichiarare apertamente tale limite. Diagnostica MAE/MFE e convenzioni di campionamento sono sviluppate nell'articolo 15.9.

Un registro combinato dei costi per uno script di validazione

Il seguente esempio didattico eseguibile amplia lo pseudocodice di questo esempio. Tutti i componenti usano le unità in pip della coppia. Le piccole tabelle di spread e commissioni sono sintetiche, non dati di fornitori. Le fasce orarie UTC sono volutamente semplificate e non modellano cambi dell'ora legale o shock da pubblicazione. La ricerca destinata alla produzione dovrebbe usare quotazioni datate o un modello condizionale correttamente specificato.

Gli eventi di finanziamento forniscono costi long e short separati e il moltiplicatore giornaliero applicabile; la funzione non presume tassi opposti e non indovina il triplo swap da un semplice numero di notti. Indicatori identificano i componenti già inclusi nel profitto/perdita testato. Il risultato è il seguente aggiustamento aggiuntivo ancora da sottrarre, non un'autorizzazione ad addebitare l'intero registro una seconda volta.

import math

def total_cost_per_trade(pair, hour_utc, atr_pips, direction,
                         financing_events=(), *, spread_in_fills=False,
                         slippage_in_fills=False, commission_in_result=False,
                         financing_in_result=False):
    """Costo aggiuntivo in pip; positivo = costo, negativo = accredito netto.

    Ogni evento di finanziamento contiene COSTI giornalieri indipendenti equivalenti
    in pip per 'long' e 'short' e il 'multiplier' applicabile. Un accredito è negativo.
    Compilare gli eventi datati esternamente dal periodo effettivo di mantenimento e dai tassi.
    """
    spread_table = {
        "EURUSD": {"low": 1.5, "normal": 0.7, "peak": 0.3},
        "GBPJPY": {"low": 4.0, "normal": 2.0, "peak": 1.2},
    }
    commission_table = {"EURUSD": 0.6, "GBPJPY": 0.8}  # Pip sintetici per operazione completa.
    if pair not in spread_table:
        raise ValueError("Coppia non supportata: fornire un modello esplicito dei costi")
    if direction not in ("long", "short"):
        raise ValueError("direction deve essere long o short")
    if isinstance(hour_utc, bool) or not isinstance(hour_utc, int):
        raise ValueError("hour_utc deve essere un intero da 0 a 23")
    if not 0 <= hour_utc <= 23:
        raise ValueError("hour_utc deve essere un intero da 0 a 23")
    if not math.isfinite(atr_pips) or atr_pips < 0:
        raise ValueError("atr_pips deve essere finito e non negativo")
    regime = "low" if hour_utc >= 22 or hour_utc <= 6 else (
        "peak" if 8 <= hour_utc <= 16 else "normal"
    )
    spread = 0.0 if spread_in_fills else spread_table[pair][regime]
    slippage = 0.0 if slippage_in_fills else 2 * 0.1 * atr_pips
    commission = 0.0 if commission_in_result else commission_table[pair]
    financing = 0.0
    for event in financing_events:
        rate = float(event[direction])
        multiplier = float(event["multiplier"])
        if not math.isfinite(rate) or not math.isfinite(multiplier) or multiplier < 0:
            raise ValueError("Evento di finanziamento invalido")
        if not financing_in_result:
            financing += rate * multiplier
    return spread + slippage + commission + financing

# Esempio sintetico: tassi separati, non un'ipotesi di segni opposti.
events = [{"long": 0.3, "short": 0.1, "multiplier": 3}]
print(total_cost_per_trade("EURUSD", 10, 5.0, "long", events))  # 2.8 pip
print(total_cost_per_trade("EURUSD", 10, 5.0, "long", events,
                           spread_in_fills=True))             # 2.5 pip

Per una semplice verifica, +0,4R prima dei costi aggiuntivi diventa +0,2R se tali costi sono 0,2R, oppure −0,1R se sono 0,5R. Converti il registro in pip usando la distanza iniziale di rischio pertinente e la convenzione valutaria. Senza un registro esplicito e un modello di esecuzione, non sai quale risultato netto rappresenti il rapporto storico.

8. Selezione opportunistica dei risultati e selezione dei segnali

La selezione opportunistica metodologica si verifica quando un ricercatore elimina alcuni segnali e riporta il resto attraente senza una regola di selezione valida e prestabilita. Può essere deliberata o inconsapevole. Un'implementazione completa perdente può così apparire redditizia perché le osservazioni sfavorevoli sono scomparse dal campione riportato.

Tre forme di selezione opportunistica

1. «Salto i segnali che non sembrano giusti». Un grafico storico contiene un segnale valido, ma il ricercatore lo scarta per un contesto sbagliato. Se le candele successive sono visibili o ricordate, «non giusto» può essere correlato all'esito perdente anziché a una regola disponibile al momento della decisione originale. Una strategia discrezionale può essere studiata, ma richiede un protocollo di classificazione definito, in cieco o prospettico, e decisioni precedenti all'esito conservate.

2. «Aggiungo un filtro dopo aver visto le perdite». Un gruppo di perdite del martedì mattina induce una nuova esclusione del martedì. Lo stesso periodo storico migliora per costruzione. Non stabilisce se i martedì siano davvero differenti. Tratta il filtro come un'ipotesi nuova, registra perché è stato proposto e validalo indipendentemente invece di presentare il campione selezionato come conferma.

3. «Uso soltanto periodi puliti». Il ricercatore elimina lo storico sotto stress, come marzo 2020, la crisi finanziaria del 2008 o le vendite di fine 2018, poi riporta come rappresentativi i periodi rimanenti. Questi esempi richiedono etichette accurate: Lehman Brothers fallì nel settembre 2008 e l'evento comunemente chiamato taper tantrum avvenne nel 2013, non nel dicembre 2018. Una strategia prestabilita può escludere condizioni osservabili, ma non può escludere retrospettivamente una crisi inattesa solo perché l'esito è scomodo. Conserva i periodi di stress e indica che cosa avrebbero fatto effettivamente le regole con le informazioni disponibili allora.

Come rilevare una gestione selettiva dei segnali

  • Conta separatamente candidati, segnali ammissibili ed esecuzioni. I livelli di avvertimento dell'esempio del 10% e del 30% per i segnali saltati manualmente sono inneschi illustrativi di verifica, non probabilità che sia avvenuta selezione opportunistica. Anche un'omissione minore selezionata in base all'esito può distorcere un risultato; un tasso elevato di esclusione basato su regole può essere legittimo.
  • Registra il motivo del rifiuto e il relativo timestamp. Un filtro scritto prima della valutazione differisce da una decisione improvvisata dopo l'esito. Per la discrezionalità intenzionale conserva il giudizio al momento della decisione invece di trattarlo tacitamente come un filtro meccanico.
  • Ricostruisci l'intero periodo. Confronta tutti i segnali ammissibili con il sottoinsieme eseguito selettivamente, comprese le condizioni difficili. Un divario di performance richiede una diagnosi: può riflettere selezione, fallimento dell'esecuzione o un autentico effetto di filtro prestabilito. Il solo divario non identifica la causa.

L'inventario dei segnali: un controllo concreto

Assegna a ogni candidato uno stato in un registro generato automaticamente o riconciliato dal diario. Rendi gli stati mutuamente esclusivi al livello scelto e conserva registri separati di richieste ed esecuzioni quando un candidato procede all'esecuzione:

StatoDefinizioneConvenzione illustrativa di revisione
takenUn segnale ammissibile eseguito secondo la regola specificata.Un obiettivo superiore al 90% può descrivere il rispetto fra segnali ammissibili ed eseguibili, non fra tutti i candidati grezzi prima dei filtri.
skipped_by_ruleUn candidato escluso da una regola fissata prima della valutazione, come calendario, correlazione o finestra temporale.Nessun limite percentuale universale. Conserva regola, input misurati e motivo affinché le esclusioni restino verificabili.
skipped_manualUn segnale altrimenti ammissibile omesso da una decisione discrezionale non modellata.Questo esempio usa il 10% come innesco di escalation. Ogni omissione guidata dall'esito richiede indagine, anche sotto tale valore.
invalid_dataUn input richiesto mancava, era invalido o non disponibile al momento della decisione.L'avvertimento del 5% dell'esempio è illustrativo. Diagnostica tipo e tempistica del problema; non nasconderlo come una normale esclusione per regola.

Guasti del fornitore o dell'infrastruttura dopo un segnale valido richiedono ulteriori stati di esecuzione, come order_rejected, order_state_unknown oppure partial_fill. Non sono automaticamente dati di mercato invalidi. Mantieni esplicito il denominatore quando riporti un tasso di errore; altrimenti esclusioni illimitate per regola possono rendere matematicamente ingannevole l'obiettivo dello stato «taken».

Secondo la politica dell'esempio, oltre il 10% di segnali saltati manualmente si ferma l'avanzamento finché la discrepanza non viene compresa. Formalizza un motivo difendibile come una nuova regola e valuta la nuova versione, oppure riconosci che il metodo previsto non può essere eseguito affidabilmente con il flusso attuale. Non rietichettare vecchie omissioni discrezionali come se il nuovo filtro fosse esistito allora. La soglia numerica è una scelta di processo, non un confine sotto il quale la distorsione da selezione scompare.

Selezione opportunistica in una presentazione di vendita di un EA

Esempio illustrativo: un EA da USD 2.000 e un backtest rifinito. Sono cifre sintetiche, non un'accusa contro un venditore specifico. Una presentazione di prodotto mostra il 2018–2022, più di 1.500 operazioni e un drawdown massimo dell'8%. L'acquirente lo installa su un conto da USD 5.000; il primo mese perde il 12% e il secondo perde ancora. L'indagine rileva che il candidato pubblicato è stato selezionato fra 30 alternative, mentre le altre 29 e la cronologia di ricerca non sono state rese note. Neppure il periodo nominale 2018–2022 dimostra un'adeguata copertura dello stress: verifica se i record di marzo 2020 fossero effettivamente inclusi, completi e ammissibili secondo le regole. Marzo 2020 è un mese, non due, e una sola etichetta di date non stabilisce che cosa abbia elaborato il test. Infine, il modello usava uno spread fisso di 1 pip mentre lo spread illustrativo pertinente del conto previsto era di 1,8 pip. Selezione, copertura dei dati e disallineamento dei costi sono problemi distinti, ciascuno dei quali richiede evidenze.

Un criterio prudente di acquisto è poter riprodurre il test pertinente con dati e ipotesi di costo propri e comprenderne i limiti. L'accesso al sorgente permette un'ispezione più profonda, ma un prodotto a codice chiuso non è automaticamente fraudolento; ha un limite di validazione che la tua politica può ritenere inaccettabile. Prezzo elevato, curva regolare o valutazioni ottime non colmano tale lacuna. Non acquistare o mettere in funzione soltanto perché un rapporto selezionato sembra convincente.

9. Errori comuni nei test

Errore 1: ottimizzare sull'intero insieme di dati

Un ricercatore prova 200 combinazioni di parametri su cinque anni e seleziona quella che mostra +180%, senza una valutazione intatta. Il massimo è un risultato selezionato; la sola entità non stabilisce un vantaggio. Usa un disegno cronologico di sviluppo e valutazione, registra la suddivisione nel campo 4 e tutti i 200 tentativi nel campo 7. La divisione 70/30 dell'esempio è illustrativa, non una regola universale. Una fase prospettica resta utile, ma non rende retrospettivamente la selezione precedente un test indipendente.

Errore 2: trattare un piccolo campione storico come decisivo

Un backtest di sei mesi e 24 operazioni resta un backtest, ma può essere un'evidenza debole per un'ampia affermazione di lungo periodo. L'incertezza può essere grande rispetto alla media e il periodo può contenere un solo regime rilevante. Scegli uno storico che affronti l'ambito previsto e riporta i regimi effettivamente osservati; «diversi anni» non è di per sé una garanzia di copertura. Conteggi come 200 o 500 in questo articolo sono esempi di scenario, non standard di mercato. Giudica la precisione da distribuzione, dipendenza e soglia decisionale.

Errore 3: usare soltanto un lato della quotazione senza modellare l'altro

Un long aperto e chiuso al bid omette l'ask di entrata e può sovrastimare il risultato di circa lo spread in un semplice confronto di prezzi abbinati. L'entrata long usa l'ask e l'uscita il bid; l'entrata short usa il bid e l'uscita l'ask. Uno storico solo bid non è automaticamente inutilizzabile se viene aggiunto un modello giustificato dell'ask e dell'esecuzione, ma l'approssimazione deve essere esplicita. La modalità a tick registrati di MT5 e un flusso di dati tick MT4 configurato appropriatamente sono opzioni da indagare, non prove di realismo completo.[6] Registra nel campo 3 le convenzioni di bid, ask, prezzo medio e dati generati rispetto a registrati.

Errore 4: ignorare le differenze di regime

Un risultato di un ambiente di politica, volatilità o liquidità può non trasferirsi a un altro. Non etichettare interi periodi pluriennali come uniformemente a tassi bassi, tassi alti, QE o QT quando le condizioni sono cambiate al loro interno. La valutazione mobile può rivelare differenze fra finestre osservate, ma identificare un vantaggio dipendente dal regime richiede evidenze sufficienti e una regola che riconosca il regime usando le informazioni disponibili allora. Un filtro inventato dopo aver visto le finestre favorevoli è una nuova variante di ricerca, non una regola automatica di attivazione.

Errore 5: affermare trasferibilità senza testarla

Un test EUR/USD apparentemente riuscito non stabilisce che lo stesso metodo funzioni su valute diverse. Se l'affermazione copre più coppie, valuta un insieme prestabilito, magari da cinque a otto coppie in un disegno di ricerca illustrativo, con costi appropriati e gestione della dipendenza. Se l'affermazione originale è davvero specifica di EUR/USD, fallire su un'altra coppia non la confuta di per sé né dimostra adattamento della curva. L'ambito della conclusione deve corrispondere all'ambito delle evidenze.

Errore 6: confondere il rendimento con la performance corretta per il rischio

Supponiamo che la strategia A riporti un rendimento annualizzato del 35% e un drawdown massimo del 22%, mentre B riporti 25% e 8% su un orizzonte di misurazione comparabile. Un semplice confronto in stile Calmar dà:

  • A: 35 / 22 ≈ 1,6.
  • B: 25 / 8 ≈ 3,1.

B ha il rapporto più alto fra rendimento e drawdown osservato sotto quelle definizioni. Non stabilisce ogni dimensione della stabilità o del rischio futuro. Non puoi calcolare Sharpe da quei due soli numeri. Sharpe richiede una serie di rendimenti a frequenza specificata, un rendimento di riferimento coerente e una convenzione di annualizzazione: (rendimento periodico medio - rendimento di riferimento) / deviazione standard del rendimento periodico, giustificando con le ipotesi ogni annualizzazione tramite la radice quadrata del numero di periodi.

Dividere un rendimento annuale per una deviazione standard mensile senza unità coerenti non è un calcolo adeguato di Sharpe. Input mancanti significano che la metrica non è disponibile, non un'autorizzazione a inventare un valore approssimativo. L'articolo 15.9 sviluppa Sharpe, Sortino e Calmar e ciò che ognuno lascia non misurato.

Errore 7: interrompere la misurazione dopo la messa in funzione

Un candidato può superare ricerca storica, demo e una prova pilota limitata, poi smettere di essere misurato quando aumenta l'allocazione. Continua a riconciliare l'implementazione reale e a confrontare i risultati con ipotesi, incertezza e limiti dello scenario del test. Un nuovo campione ha la propria incertezza; non basta chiedere se la sua media rientri nell'intervallo di confidenza del vecchio campione. L'articolo 15.10 definisce il ritmo di revisione e le decisioni di mantenere, osservare, ridurre o fermare. Questo articolo fornisce il registro di confronto: definizioni delle metriche, intervalli originali, costi e quantili simulati del drawdown.

Errore 8: cambiare il metodo dopo ogni serie perdente

Modifiche settimanali dei parametri dopo cinque-dieci perdite possono precedere le informazioni in arrivo su una singola versione. Con risultati indipendenti e probabilità di vittoria del 52%, cinque perdite in un blocco prestabilito hanno probabilità 0,485 ≈ 2.5%. La probabilità di almeno una serie del genere in un punto qualsiasi di 100 operazioni è circa 75%. Quest'ultima ha molte opportunità sovrapposte per la serie; trattare quelle finestre come indipendenti usando 1 - (1 - q^k)^(N-k+1) sovrastima la probabilità esatta della serie in questo esempio.

Sono calcoli di modello, non un'affermazione che i tuoi risultati siano indipendenti. La lezione è porre la domanda corretta sulla probabilità prima di dichiarare guasta la strategia. Usa criteri prestabiliti di revisione della ricerca invece dell'aspetto dell'ultima settimana. Guasti operativi, limiti di rischio superati o un difetto dimostrato dei dati possono comunque richiedere una pausa immediata; non serve un calo statisticamente significativo del valore atteso prima di proteggere il conto. Una modifica delle regole crea una nuova versione e richiede una propria valutazione.

Prima di modificare una regola: verifica questi livelli in ordine

Non confondere un difetto della strategia con un problema di implementazione o dei dati. Stabilisci che cosa misura il risultato prima di modificare le regole di trading:

  1. Dati ed esecuzione. Riconcilia il diario con i registri del fornitore, conferma la versione e conta le deviazioni dalle regole. Un periodo contaminato non può essere interpretato come performance pulita della strategia specificata; può comunque fornire evidenze utili sul guasto operativo.
  2. Costi. Confronta spread, slippage e commissioni effettivi con la scheda. Una riduzione del valore atteso di 0,15R insieme a un aumento dei costi di 0,15R può spiegare la discrepanza. I costi fanno parte della sostenibilità della strategia negoziabile anche se il meccanismo di entrata non è cambiato.
  3. Regime. Verifica se si sono effettivamente verificate le condizioni in cui la strategia doveva operare e se il filtro di ammissibilità è stato applicato correttamente.
  4. Vantaggio. Solo allora valuta distribuzione dei risultati e incertezza rispetto alla regola decisionale prestabilita, non soltanto la media dell'ultima dozzina di operazioni.

La tabella decisionale completa «cambiare il sistema o cambiare l'esecuzione», i criteri di ridimensionamento e il processo di revisione sono trattati nell'articolo 15.10. La regola qui è risolvere i primi tre livelli diagnostici prima di attribuire la discrepanza alla logica di entrata e uscita. Ogni autentica modifica delle regole torna al processo di test con versioni; non è una correzione invisibile delle vecchie evidenze.

Diagnosticare una discrepanza. Il numero di errori, un campione di 30 operazioni o un percentile DD non identificano da soli la causa. La revisione completa dell'allocazione è nell'articolo 15.10.
Il numero di errori, un campione di 30 operazioni o un percentile DD non identificano da soli la causa. La revisione completa dell'allocazione è nell'articolo 15.10.

10. Checklist: due verifiche distinte per decidere il passaggio al reale

La checklist contiene 20 punti in cinque categorie: valutazione statistica, controlli metodologici, costi, test prospettici e disciplina operativa. Ci sono due verifiche perché il punto 17 richiede osservazioni reali e non può essere un prerequisito per il primo studio reale limitato. In questa versione, esamina 1–16, 19 e 20 prima di considerare quello studio autorizzato separatamente; esamina tutti e 20 prima di ogni successiva decisione di aumento della scala. Il piano di misurazione continua del punto 20 dovrebbe esistere prima del progetto pilota, non soltanto dopo.

Un punteggio non compensa un requisito critico mancante. «Non applicabile» richiede un motivo scritto. Tutte le durate, i conteggi di operazioni e le soglie numeriche delle politiche qui sono scelte di scenario, non standard di mercato. Completare la lista non certifica la redditività né autorizza a inviare ordini.

Valutazione statistica: cinque controlli

Controlli metodologici: sei controlli

Modello dei costi: quattro controlli

Test prospettici: tre controlli

Disciplina operativa: due controlli

Documentati: 0/20 controlli

La pagina non invia queste risposte né le conserva intenzionalmente come registro di ricerca. Un browser può ripristinare lo stato del modulo quando si torna alla pagina; non è un'evidenza che i punti siano stati verificati. Salva la checklist rivista con l'archivio datato del test.

Archivio richiesto: undici componenti

Una revisione per la messa in funzione richiede una traccia di verifica. Senza di essa, sei mesi dopo potresti non riuscire a ricostruire quali regole, dati e ipotesi abbiano prodotto il risultato originale:

  1. La scheda di test di dodici campi: campi 1–9 prima della valutazione, risultati e limiti dopo, con il manifesto di riproduzione completato e verificato.
  2. Input storici: dati grezzi di mercato e calendario, fonte, data di acquisizione, autorizzazioni, hash, versioni pulite, codice di trasformazione e un registro di vuoti, duplicati e revisioni.
  3. La specifica e l'implementazione della strategia: regole leggibili, codice, parametri, versioni delle dipendenze e della piattaforma, timestamp di fissazione e comandi esatti. Fissa prima dell'OOS, non dopo averlo visto.
  4. Rapporti IS, di validazione e OOS: confini della suddivisione, intera cronologia dei tentativi, curve del capitale, intervalli del valore atteso, profit factor e drawdown per finestra mobile, oltre a risultati di riferimento comparabili.
  5. Rapporto di simulazione e stress: illustrativamente 1.000 o più percorsi, con seme, codice, schema dei blocchi, orizzonte, dimensionamento, quantili di rendimento e drawdown, frequenze di superamento delle soglie e limiti. Più percorsi non sono più osservazioni di mercato.
  6. Il modello dei costi e del conto: spread di sessione o tick, ipotesi di slippage, tassi di finanziamento separati e moltiplicatori giornalieri, commissioni, conversioni, margine e vincoli del simbolo.
  7. Esportazioni demo o di operatività simulata: l'intero periodo di osservazione previsto, illustrativamente 30 giorni, con timestamp originali dei segnali, stati e riconciliazione storica.
  8. Diario del pilota reale limitato, se autorizzato e completato: il periodo previsto, illustrativamente 90 giorni, con R₀ di ogni operazione, R netto, convenzione MAE/MFE, costi effettivi, richieste, esecuzioni, incidenti e schermate prima/dopo ove utili.
  9. Inventario dei segnali: tutti i candidati e i motivi di esclusioni, omissioni manuali, dati invalidi e fallimenti di esecuzione, con denominatori riproducibili dei tassi di deviazione.
  10. Registro delle impostazioni del fornitore: tipo di conto, condizioni del simbolo, leva, volume minimo, stop e tariffe applicabili alla data del test. Conserva le evidenze necessarie per indagare una controversia sull'esecuzione senza esporre credenziali.
  11. Backup recuperabili e registro decisionale: EA fissato, script e modelli, conclusioni riviste, limiti irrisolti, responsabilità, ubicazioni di ripristino e condizioni di sospensione o ripresa.

Una cartella illustrativa è strategy_X/2026-Q2/{01_data,02_IS,03_OOS_locked,04_montecarlo,05_demo,06_micro_live,07_artefacts}. Mantieni copie recuperabili su archivi appropriati e proteggi le esportazioni sensibili. L'archiviazione cloud è una scelta regolata dalla tua politica dei dati, non un requisito. Gli hash rivelano differenze fra file; non dimostrano che le quotazioni sottostanti siano corrette.

Completare la prima verifica consente una revisione sull'opportunità di autorizzare uno studio reale limitato, non un ordine automatico. Completare tutti e venti i punti consente una successiva revisione della messa in funzione o dell'aumento di scala secondo il piano. Una condizione critica mancante riporta il progetto alla fase irrisolta. La decisione finale altrettanto valida è non passare al reale.

Quando non eseguire un backtest meccanico della performance. Se il setup è ancora descritto soltanto come «un bel pullback», «price action pulita» o «momentum convincente», definisci prima che cosa il valutatore possa osservare e registrare. Un test codificato non può riprodurre un giudizio non espresso. Per un processo intenzionalmente discrezionale usa un protocollo fisso di osservazione ed etichettatura con decisioni registrate prima degli esiti; studiare la discrezionalità non è intrinsecamente impossibile, ma la normale selezione retrospettiva dei grafici è inadeguata. Questo esempio suggerisce da sei a dodici mesi di osservazione senza entrate mentre le regole prendono forma. Trattali come un periodo illustrativo di sviluppo governato dalla frequenza dei segnali, non un conto alla rovescia obbligatorio. Il risultato da consegnare è un metodo riproducibile ed evidenze oneste, non una raccolta di grafici storici attraenti.

Domande frequenti

Quanto dura l'intero processo dal backtesting a una revisione per il reale?

La sequenza illustrativa qui è da quattro a otto settimane di lavoro storico, 30 giorni demo e 90 giorni di una prova pilota reale limitata autorizzata separatamente: 148–176 giorni, circa cinque-sei mesi. Uno studio complesso su più asset o timeframe può richiedere da otto a sedici settimane per la sola fase storica. Sono ipotesi di pianificazione, non standard di settore o garanzie di evidenze sufficienti. Segnali rari richiedono osservazioni più lunghe. Un candidato che non supera una verifica resta non approvato; il tempo trascorso non è un motivo per abbassare il criterio. La fase facoltativa di simulazione, le pause e le versioni riviste aggiungono tempo invece di essere tacitamente assorbite nel calendario originale.

MT4 Strategy Tester è sufficiente per la validazione?

Dipende da strategia, dati e configurazione. Un modello basato solo sui prezzi di apertura non può stabilire una sequenza intrabarra che non rappresenta. Uno spread fisso può essere inadeguato per una regola sensibile allo spread e una procedura WFA mobile completa richiede finestre e registri gestiti esplicitamente. Un flusso di dati tick come TDS può fornire capacità mancanti, ma un'etichetta di qualità di modellazione del 99% non è un certificato di correttezza. Verifica tick registrati rispetto a generati, lati delle quotazioni, costi, tempistica e operazioni di esempio. L'opzione storica Forward di MT5 offre una suddivisione con campione riservato, non osservazione prospettica di dati reali.[6] Scegli gli strumenti in base alle evidenze necessarie invece di presumere che il nome di una piattaforma renda valido il test.

E se il test storico ha soltanto 50 operazioni?

Considera uno storico pertinente più lungo, magari dieci anziché cinque anni; uno studio fra coppie prestabilito quando l'ipotesi si trasferisce davvero; e la sensibilità del bootstrap a blocchi a lunghezze come 5, 10 e 20. Uno storico più lungo può aggiungere osservazioni, ma non necessariamente a un ritmo costante. Da cinque a otto coppie non producono automaticamente da cinque a otto volte più evidenze indipendenti. Il bootstrap non crea affatto nuove osservazioni di mercato. Se l'incertezza continua ad attraversare la soglia decisionale, registra l'esito come inconcludente o limitato dalla frequenza. Un meccanismo plausibile non sostituisce le evidenze mancanti e non autorizza da solo una posizione reale più piccola. Continua la ricerca o rifiuta la messa in funzione secondo il piano.

Posso saltare la demo dopo un buon backtest?

Un buon risultato storico non risponde se avvisi, avvio, consegna dei dati, gestione degli stati degli ordini e flusso dell'operatore funzionino sulle osservazioni in arrivo. La demo o un processo in parallelo appropriato possono mettere in luce quei difetti prima di rischiare fondi reali. Le esecuzioni demo non misurano pienamente slippage o liquidità reali, quindi un successivo studio dell'esecuzione reale rimane una decisione separata ed esplicitamente autorizzata. Non è un rituale obbligatorio della piattaforma; serve a evitare di saltare tacitamente le questioni operative che il backtest non ha testato.

Quale rendimento annuale è realistico per una strategia al dettaglio?

Questo articolo non dispone di un insieme di dati affidabile che sostenga un unico «rendimento tipico redditizio al dettaglio». La percentuale di conti in perdita riportata da un'autorità non è la distribuzione dei rendimenti dei conti redditizi. Rendimenti dichiarati molto alti richiedono di esaminare leva, rischio, denominatore del conto, flussi di cassa, selezione, costi e durata del periodo favorevole. Una visualizzazione di un conto prop può usare un denominatore diverso dal capitale personale del trader; tale differenza va spiegata. Gli esempi illustrativi del 50%, 200% o 500% sono affermazioni da indagare, non soglie che dimostrino frode o performance impossibili. Fissa un criterio decisionale verificabile in R netto con incertezza invece di adottare un obiettivo promozionale di rendimento annuale.

Come distinguo un cambio di regime dal deterioramento della strategia?

Inizia da dati, implementazione e costi, poi esamina se si siano verificate le condizioni previste. Un periodo recente davvero mai esaminato può fornire nuove evidenze di valutazione per regole fissate, ma dimensione e copertura dei regimi limitano ancora la conclusione. Un esempio di sei mesi non è automaticamente sufficiente. Se segnali storici ricostruiti ed esecuzione prospettica differiscono nelle stesse date, riconciliali invece di attribuire tutto al mercato. Usare il nuovo periodo per progettare un filtro di regime lo rende informazione di sviluppo per quella revisione. Le decisioni di mantenere, osservare, ridurre o fermare seguono il processo dell'articolo 15.10, con controlli di sicurezza separati per problemi operativi immediati.

L'osservazione prospettica può precedere un backtest storico?

Sì, soprattutto quando non esistono input storici disponibili nel momento pertinente o etichette discrezionali, ma descrivi il limite. Con cinque operazioni alla settimana, 30 giorni forniscono circa 21 osservazioni, sei mesi circa 130 e due anni circa 520. La precisione dipende da dispersione e dipendenza, non soltanto dai conteggi. Un processo ad alta frequenza che produce 50 operazioni al giorno può accumulare più di 1.000 record in un mese, ma eventi condivisi possono renderli fortemente dipendenti. Il lavoro storico può aggiungere ambito e contesto; quello prospettico registra ciò che era effettivamente conoscibile e ciò che è stato fatto. Nessuna etichetta garantisce inferenza adeguata e l'assenza di dati storici non richiede sperimentazioni con capitale reale.

Una strategia ben testata può comunque subire un margin call o una chiusura forzata?

Sì. Uno shock di liquidità o di politica mai osservato, un'allocazione maggiore, mutate condizioni di margine del fornitore o un guasto dell'infrastruttura possono superare le condizioni rappresentate nel test. Ricampionare operazioni osservate non genera ogni evento mai osservato. Usa i limiti di rischio del piano, i criteri documentati di aumento e ripristino della scala e la procedura per gli incidenti dell'articolo 15.8. L'articolo 15.11 affronta i cambiamenti di scala. Alcuni guasti possono essere modellati sotto stress, ma nessun modello garantisce la loro intera gravità. Un avviso di margine e la chiusura automatica sono anche meccanismi specifici del fornitore, non eventi universali intercambiabili. Un trimestre favorevole non autorizza ad aumentare il rischio fuori dal piano.

Posso acquistare un EA invece di costruire una strategia?

Puoi valutare un'implementazione acquistata, ma prezzo, valutazione e backtest selezionato non sostituiscono la dovuta diligenza. Richiedi cronologia dei tentativi e delle versioni, dati e ipotesi di costo riproducibili e registri reali sufficientemente informativi se dichiarati. Questo esempio suggerisce un registro reale pubblico di almeno tre anni come preferenza di selezione iniziale; non è una garanzia e il monitoraggio di terzi richiede ancora verifiche di provenienza e flussi di cassa. Il codice sorgente permette una validazione più profonda; se la tua politica lo richiede, un rifiuto significa che il prodotto non soddisfa quella politica, non prova che il venditore sia disonesto. Considera selezione, varianti nascoste, sopravvivenza, fattibilità attuale e costi di esecuzione. Questo articolo non stabilisce un tasso complessivo affidabile di successo degli EA dei marketplace o un vantaggio finanziario universale dell'acquisto rispetto allo sviluppo.

I test manuali sono intrinsecamente meno validi dell'automazione?

No. I test manuali richiedono un protocollo fisso di campionamento e decisione, registri completi e controlli contro il senno di poi. L'automazione richiede codice corretto, input disponibili nel momento pertinente e un modello di esecuzione credibile. Entrambi possono riprodurre ripetutamente i propri errori. Indica quali parti sono discrezionali e conserva le decisioni prima degli esiti.

Posso rieseguire un periodo fuori campione?

Un calcolo invariato può essere rieseguito per riprodurlo o verificarlo. Se il risultato guida una modifica o una selezione, il periodo diventa informazione di sviluppo per l'ipotesi modificata. Conserva il risultato originale e indica onestamente gli usi successivi; un nome di file nuovo non rende di nuovo inesaminati gli stessi dati.

E se stop e obiettivo sono entrambi nella stessa candela?

I soli OHLC non stabiliscono quale sia arrivato prima. Usa dati più fini e lati delle quotazioni appropriati, oppure riporta la sensibilità pessimistica con stop per primo e ottimistica con obiettivo per primo. Neppure la cronologia dei tick stabilisce ogni dimensione disponibile di esecuzione o garantisce che un ordine esistesse prima della quotazione.

Un tasso di successo elevato stabilisce un vantaggio positivo?

No. L'esempio di 47 operazioni vince il 57,4% delle volte ma somma −5,1R perché la perdita media supera la vincita media. Testa i risultati netti realizzati con il loro denominatore iniziale di rischio. Un test binomiale della probabilità di vittoria non è un test della media di R netto.

Monte Carlo stabilisce il massimo drawdown possibile?

No. I quantili descrivono una distribuzione simulata specificata, non confini rigidi. Il risultato dipende da campione di input, metodo di ricampionamento, lunghezza del blocco, orizzonte e dimensionamento. Shock mancanti, variazioni del capitale durante l'operazione e fallimenti di liquidità non vengono creati automaticamente eseguendo più percorsi.

Lo spread va sottratto da ogni operazione esportata?

Solo se non è già incluso. I prezzi effettivi bid/ask di entrata e uscita incorporano normalmente spread e slippage realizzato dei prezzi. Aggiungi solo gli addebiti ancora assenti dal risultato, con unità coerenti di valuta e quantità. Riconcilia commissioni e finanziamento invece di sottrarli due volte.

Un esito inconcludente giustifica operare a metà dimensione?

Non da solo. Evidenze insufficienti restano insufficienti. Uno studio limitato dell'esecuzione reale richiede finalità separata, autorizzazione, ordine minimo fattibile e budget di perdita accettato. Continuare l'osservazione senza passare al reale è una decisione valida.

Fonti e note di verifica

Le prime sei voci forniscono la lista di lettura metodologica. Sostengono il contesto metodologico, non la performance delle strategie sintetiche o soglie universali di dimensione campionaria, rischio o messa in funzione. I riferimenti alle piattaforme sotto descrivono le funzionalità tecniche; la documentazione descrive quella piattaforma, non ogni broker o sede di negoziazione.

Lista di lettura dell'edizione polacca

  1. Robert Pardo, The Evaluation and Optimization of Trading Strategies, Wiley, 2008. Sviluppo delle strategie, ottimizzazione e valutazione walk-forward.
  2. David Aronson, Evidence-Based Technical Analysis, Wiley, 2007. Test delle ipotesi, data mining e ragionamento statistico nella valutazione delle strategie.
  3. Marcos López de Prado, Advances in Financial Machine Learning, Wiley, 2018. Selezione nella ricerca, sovraottimizzazione dei backtest e validazione con osservazioni finanziarie dipendenti.
  4. Howard B. Bandy, Quantitative Technical Analysis, Blue Owl Press, 2015. Valutazione dei sistemi, ricampionamento, dimensionamento delle posizioni e drawdown.
  5. Van K. Tharp, The Definitive Guide to Position Sizing, International Institute of Trading Mastery, 2008. Risultati basati su R, dimensionamento e valutazione dei sistemi. Una statistica R non è di per sé un'approvazione alla messa in funzione.
  6. MetaQuotes, Testing Trading Strategies, e MetaTrader 5, Strategy Testing. Modalità di test storico, partizioni successive e impostazioni di modellazione. La partizione storica successiva di un tester non è un periodo di osservazione prospettica di dati reali.

Ulteriori riferimenti tecnici conservati dalla precedente edizione inglese compaiono sotto. Gli esempi numerici restano scenari didattici, non studi di performance di mercato verificati indipendentemente. Gli intervalli binomiali esatti sono stati ricontrollati numericamente e gli esempi NumPy di bootstrap e di registro dei costi sono stati verificati separatamente da ogni conto di intermediazione.

  1. TradingView, Strategies, e Repainting: ipotesi dell'emulatore del broker, grafici sintetici e tempistica delle informazioni. Sono descrizioni specifiche della piattaforma, non regole universali di borsa.
  2. Bailey e coautori, The Probability of Backtest Overfitting, e The Deflated Sharpe Ratio: selezione e non normalità nella valutazione della performance.
  3. MetaTrader 5, Performing Deals, e MQL5, Symbol Properties: gestione degli ordini della piattaforma e impostazioni di volume, finanziamento ed esecuzione specifiche del contratto.
  4. MetaTrader 5, Strategy Testing: suddivisioni storiche successive, modalità tick, ritardo e impostazioni di conto/costi, compresi i limiti del calcolo del profitto in pip.
  5. Global Foreign Exchange Committee, The Use of Last Look in FX Markets: definizione e divulgazione delle pratiche di last look nel contesto del mercato valutario all'ingrosso.
  6. NIST/SEMATECH, Confidence intervals for a proportion: costruzioni degli intervalli e relative ipotesi.
  7. SciPy, binomtest, e ttest_1samp: test distinti per una probabilità binomiale e una media della popolazione.

I tuoi progressi

Hai finito la lezione? Segnala tu il completamento. Aprire o scorrere una pagina non la contrassegna come completata.

I progressi richiedono JavaScript e l'archiviazione del browser.

Salvati solo in questo browser. Nessun account o sincronizzazione tra dispositivi. Eliminare i dati del sito può cancellare i progressi.

Jarosław Wasiński

Caporedattore, ForexMechanics.com • Analista macro e FX

Analista indipendente e professionista con oltre 20 anni di esperienza nei mercati finanziari. Attivo nel Forex dal 2004, con un focus sull'analisi fondamentale, la struttura del mercato OTC e la gestione disciplinata del rischio di capitale.

  • Fondatore e caporedattore di MyBank.pl, che offre formazione finanziaria affidabile dal 2004.
  • Autore di centinaia di commenti di mercato approfonditi, analisi strutturali e materiali didattici per trader e investitori.
  • Sostenitore della trasparenza del mercato, promuovendo una formazione basata su dati concreti e report istituzionali (BIS, ESMA, CFTC).

Tutti i contenuti hanno carattere esclusivamente didattico e informativo – non costituiscono consulenza di investimento né alcuna raccomandazione. Ricorda: il trading con leva (Forex/CFD) comporta un elevato rischio di rapida perdita del capitale.