In questo articolo
Dopo questo articolo saprai…
- Distinguere lista campionata e passi eseguiti prima di un arresto.
- Calcolare drawdown per percorso includendo lo stato iniziale.
- Dichiarare dipendenza, quantile e dimensionamento prima di interpretare la coda.
I concetti senza lasciare l’articolo
Backtesting Drawdown Piano di trading Valore atteso (expectancy) Dimensione della posizioneUn Backtesting mostra un percorso storico; una simulazione esplora percorsi generati da ipotesi dichiarate. Ordine degli esiti, ricampionamento e Dimensione della posizione possono modificare il Drawdown. Il risultato è condizionato al modello: non è una probabilità di rovina verificata per un conto reale non specificato.
Quale esperimento stai simulando
Monte Carlo usa estrazioni casuali ripetute. Permutare una lista fissa di esiti monetari cambia il percorso ma conserva la somma; estrarre con reinserimento può cambiare entrambi. Un modello parametrico con probabilità di vincita e importi assegnati produce un’altra distribuzione. Dichiara procedura, costi e modo in cui il volume cambia con il patrimonio.
Prima prova un percorso a mano: capitale iniziale 1000 unità monetarie, esiti +200, −100, −100. Il capitale segue 1000 → 1200 → 1100 → 1000; massimo drawdown 200/1200≈16,67%. Riordinando −100, −100, +200 ottieni 1000 → 900 → 800 → 1000 e drawdown 20%. Stesso finale, rischio di percorso diverso. Includi il capitale iniziale fra i picchi: ometterlo sottostima la prima discesa.
Una soglia può cambiare anche il risultato finale
Modello USD separato: capitale 1000, esiti netti campionati +300, −150, −150, nessun flusso o reinvestimento. Dopo ogni passo completo arresta la prova se il capitale è al massimo 850 USD. A esegue 1000 → 1300 → 1150 → 1000, tutti e tre i passi. Nell’ordine B, −150, −150, +300, il primo passo porta a 850: la prova termina e gli altri due esiti non vengono eseguiti. Non sono due operazioni da zero.
La lista campionata non è sempre la lista eseguita
Scorri orizzontalmente o ingrandisci il diagramma per leggere i dettagli.
Se esistono arresto, vincoli di capitale o variazioni di volume, sommare ogni esito storico dopo averlo permutato non riproduce automaticamente la strategia. Conserva separatamente lista estratta, passi eseguiti e motivo della terminazione.
Media zero in entrambi non significa stessa distribuzione della perdita.
- Indipendenti
- +20; 0; 0; −20 – Quattro casi equiprobabili: perdita 25%, varianza 200 EUR².
- Segni collegati
- +20 oppure −20 – Due casi equiprobabili: perdita 50%, varianza 400 EUR².
- Informazione necessaria
- Regola di dipendenza – Non ricavabile dalla sola media o dal numero di simulazioni.
Domande e quantili da tenere distinti
Un modello definito può stimare distribuzioni di drawdown massimi, attraversamenti di soglie e risultati terminali. Calcola prima il massimo drawdown di ciascun percorso, poi il percentile della loro distribuzione. Una fascia di percentili del patrimonio punto per punto non è un percorso eseguito. Indica convenzione del quantile: interpolazione e distribuzioni discrete possono cambiare la frazione di scenari sotto una soglia.
Modello EUR esplicito del materiale di partenza: 200 operazioni indipendenti, probabilità di vincita 0,55, vincita fissa 100 EUR, perdita fissa 80 EUR. Profitto medio teorico 0,55 × 100−0,45 × 80 = 19 EUR per operazione, 3800 complessivi. Con K vincite il profitto terminale è 180 K −16000. Definendo quantile binomiale come il più piccolo K con probabilità cumulata almeno pari al livello richiesto, i profitti sono 920 EUR all’1%, 1640 al 5%, 3800 al 50% e 5960 al 95%. Sono valori della distribuzione calcolata, non risultati attribuiti a un esperimento osservato. Una simulazione finita oscillerà rispetto a essi.
Esercizio Excel con stato iniziale conservato
Questo esempio mantiene la sintassi inglese del foglio di origine: lingua dell’applicazione e separatori possono richiedere adattamenti verificati. Non cambiare silenziosamente formule o unità. Inserisci A1=0.55, A2=100, A3=−80, A4=10,000: probabilità, due esiti netti fissi e capitale iniziale. In C1 usa =$A$4, in D1 =C1, in E1 zero. La riga 1 rappresenta lo stato prima delle operazioni.
In B2 inserisci =IF(RAND()<$A$1,$A$2,$A$3). I riferimenti assoluti mantengono i parametri fissi copiando la formula. In C2 usa =C1+B2, D2 =MAX(D1,C2), E2 =(D2-C2)/D2. Copia B2: E2 fino alla riga 201: sono esattamente 200 operazioni, non 201. C201 è il capitale finale; =MAX(E1:E201) è il massimo drawdown del percorso. Duecento trade non equivalgono necessariamente a un anno. Per un uso operativo servono regole ulteriori su arresto, margine e insolvenza.
Per un’altra prova copia tutto il blocco B: E insieme alla riga iniziale, conservando i riferimenti $A$. Mantieni distinti percentili del capitale finale e percentili del massimo drawdown. =PERCENTILE.INC(range,0.95) usa la coda alta delle ampiezze positive di drawdown; per la coda avversa del capitale finale si usano invece livelli bassi, come 0.05 o 0.01. La funzione può interpolare. RAND ricalcola con il foglio: salva valori campionati e ipotesi della prova che vuoi riesaminare.
Bootstrap in Python e dipendenze
Python facilita ripetizioni, ma anche Excel può estrarre valori storici con formule appropriate. Il bootstrap ricampiona gli esiti registrati invece di assumere soltanto due importi fissi. Entrambi richiedono scelta esplicita di dipendenza, dimensionamento, oneri e storia considerata.
Per una cronologia non vuota di risultati monetari netti, il generatore NumPy può usare new_sequence = rng.choice(history,size=200,replace=True). Conserva lo stato iniziale: equity = np.concatenate(([initial_capital], initial_capital + np.cumsum(new_sequence))). Calcola picchi progressivi e drawdown per percorso prima di riassumere i massimi. Registra dati, seed, versione della libreria, orizzonte, costi e arresti. Più prove riducono rumore computazionale, non creano nuovi regimi di mercato osservati.
Un confronto controllato può condividere le estrazioni. U uniforme; esito +1 se U è sotto la soglia, altrimenti −1. Soglie assegnate A = 0,55 e B = 0,60: medie 0,10 e 0,20, differenza attesa 0,10. Con U condivisa, B−A vale +2 soltanto su 0,55≤U< 0,60, altrimenti 0. Varianza 4 × 0,05−0,10² = 0,19. Con estrazioni indipendenti si sommano le varianze 0,99+0,96 = 1,95. Questa costruzione riduce il rumore del confronto specificato, non l’incertezza sulle probabilità reali; non aiuta necessariamente ogni coppia di strategie.
Ricampionare operazioni singole con reinserimento conserva i valori osservati ma rompe l’ordine originale e non conserva gruppi di perdite. Non genera eventi assenti dalla storia. Se conta la dipendenza, considera blocchi e scenari di stress separati, dichiarando che neppure una storia limitata così trattata copre ogni regime futuro. Esiti monetari fissi e rischio ricalcolato sull’equity non sono lo stesso esperimento.
Limiti del modello e scenari mancanti
Indipendenza e distribuzione stabile appartengono all’esempio, non sono obblighi del metodo Monte Carlo. Puoi costruire modelli dipendenti o con regimi variabili, da specificare e valutare. Confronta comportamento e cronologia, esposizioni sovrapposte, costi, gap e fill mancanti; stress esplicitamente separati non vanno presentati come nuove osservazioni.
Nuovo controesempio EUR: due esiti da ±10 EUR, costi esclusi. Nel modello indipendente equiprobabile i totali sono +20,0,0,−20: media 0, probabilità modellata di perdita 25%, varianza 200 EUR². Se il modello collega perfettamente i segni, sono possibili soltanto +20 e −20 al 50% ciascuno: media ancora 0, perdita 50%, varianza 400 EUR². Stessi esiti marginali ±10 e stessa media totale, ma rischio congiunto diverso. È enumerazione di due modelli inventati, non stima di una correlazione forex.
Walk-forward: finestre, gap e limiti della valutazione organizza periodi successivi di sviluppo e valutazione; non rileva automaticamente deterioramento né rende nuovi dati già esaminati. Un percentile simulato non è un tetto garantito o un limite minimo probabilistico dimostrato del drawdown reale.
Definisci il fallimento prima dello studio. Nel modello ideale che perde esattamente 5% del capitale corrente a ogni perdita, dopo n perdite resta capitale iniziale × 0,95n, positivo per n finito. Una soglia pratica, un requisito minimo di margine o una perdita maggiore cambiano il modello. Il risultato teorico non garantisce sopravvivenza operativa. Il conto EUR e la lingua italiana non determinano regole di insolvenza o protezioni contrattuali.
Procedura minima riproducibile
- Raccogli una storia definita con conteggio, costi, rischio e copertura. Campioni piccoli rendono incerte le code, ma non esiste un limite universale di 100. Non operare soltanto per raggiungere un numero.
- Verifica a mano i due percorsi a tre trade e l’arresto USD, poi conserva un campione casuale prima di aumentare le ripetizioni. Un’ora di lavoro o 1000 prove non certificano il modello.
- Per drawdown come ampiezza positiva esamina la coda alta, ad esempio 95º percentile; se usi variazioni negative dichiara il segno. Includi capitale iniziale e dimensionamento. Ridurre il rischio richiede rieseguire e controllare il modello, non promette una riduzione proporzionale universale.
- Confronta nuove versioni solo dopo aver registrato cambiamenti di dati, unità, costi e regole. Una mediana più bassa del modello non identifica da sola un deterioramento causale dal vivo.
Verifica ciò che hai imparato
Circa 2 minuti di esercizio.
Mostra risposta e spiegazione
Il controllo avviene dopo il primo −150:1000−150 = 850.
Altre domande
Cos’è una simulazione Monte Carlo della strategia?
Estrae ripetutamente da un modello esplicito. Permutare una lista di esiti monetari fissi conserva la somma soltanto se li esegui tutti senza altre regole. Il bootstrap con reinserimento può cambiare anche il totale. Nel modello di 200 trade indipendenti con probabilità 0,55 e risultati +100/−80 EUR, la media è 19 EUR per trade e il quantile esatto al 5% è 1640 EUR. Sono valori teorici, non un esperimento osservato né una previsione certificata.
Come preparo Excel?
Mantieni riga 1 come stato iniziale: C1 = $A$4,D1 = C1,E1 = 0. B2 = IF(RAND()<$A$1,$A$2,$A$3),C2 = C1+B2,D2 = MAX(D1,C2),E2 = (D2−C2)/D2; copi fino alla riga 201 per 200 trade. Salva valori e parametri perché RAND ricalcola. La sintassi mostrata è inglese: nomi e separatori dell’installazione possono differire.
Come lo implemento in Python?
Da cronologia non vuota, rng.choice(history, size = 200,replace = True) ricampiona valori. Anteponi il capitale iniziale al percorso cumulato, poi calcola picchi e drawdown. Registra seed, libreria, costi, orizzonte e arresti. Singole estrazioni rompono l’ordine e non creano code mai osservate.
Quali limiti devo dichiarare?
Dati, parametri, dipendenze, dimensionamento e regole. Modelli indipendenti possono perdere i cluster; modelli più ricchi hanno ipotesi proprie. Nessun percentile garantisce il limite reale e più simulazioni non compensano automaticamente dati mancanti o un modello errato.
Cosa succede al percorso −150,−150,+300 USD con soglia 850?
Partendo 1000,il primo −150 porta 850. Il controllo dopo quel passo ferma la prova: finale 850,un solo esito eseguito. Sommare gli altri risultati ignorerebbe la regola.
La stessa media EUR implica lo stesso rischio?
No. Due esiti±10 indipendenti danno probabilità di perdita 25% e varianza 200 EUR²; segni perfettamente collegati 50% e 400 EUR². Sono modelli assegnati con media zero, non probabilità reali del mercato.
Fonti e verifica
- Python — random
Documentazione Python: choices può campionare con reinserimento; shuffle riordina le osservazioni esistenti e non crea nuovi shock di mercato.
- NumPy — Generator.choice
Documentazione NumPy del campionamento casuale, con scelta esplicita del reinserimento delle osservazioni.
- Microsoft — RAND
Distribuzione uniforme nell’intervallo [0,1) e ricalcolo del foglio. La formula conserva i nomi inglesi delle funzioni; le impostazioni di lingua restano distinte.
- Microsoft — PERCENTILE.INC
Livello del percentile compreso tra 0 e 1 e interpolazione. La distinzione dell’articolo tra massimo drawdown lungo il percorso e capitale finale deriva da un calcolo indipendente.
I calcoli usano ipotesi esplicite. Non sostituiscono i dati attuali di mercato o le condizioni dell’intermediario.
