Monte Carlo - Simulazione del jitter dei parametri
Nel mondo reale del trading, le condizioni di mercato sono in continua evoluzione. La volatilità si sposta, la liquidità fluttua e lo stesso feed di dati può presentare variazioni minime da un tick all'altro. Di conseguenza, anche una strategia ben ottimizzata potrebbe non funzionare... esattamente come previsto da un backtest, poiché i suoi parametri fondamentali o i calcoli degli indicatori potrebbero subire un leggero "jitter" o instabilità quando si trovano in condizioni reali. Questa simulazione Monte Carlo è stata ideata per verificare la resistenza della strategia a queste piccole e imprevedibili deviazioni dal suo perfetto comportamento nel backtest.
Se applichiamo questo test Monte Carlo, la simulazione introduce due potenziali effetti sui trade all'interno di ciascun run di backtest generato:
-
Condizione di sfarfallio (voci mancanti): Sulla base del Salto ProbabilityUna percentuale casuale di operazioni viene semplicemente rimossa dal backtest. In questo modo si simulano i casi in cui un leggero jitter dei parametri potrebbe far sì che una condizione di entrata, soddisfatta nel backtest storico, venga mancata di poco in uno scenario live leggermente diverso.
-
Variazione del livello di uscita (fluttuazione P/L): Per i commercianti non saltato, un'ulteriore percentuale casuale (definita da Regolare Probability) avranno un risultato finale leggermente modificato. Questo viene fatto modificando il parametro Prezzo di chiusura dell'operazione. L'importo della modifica viene calcolato come una percentuale casuale (fino al valore di Prezzo massimo Adeguamento percentuale) dell'intervallo di prezzo originale di quella specifica operazione (dall'apertura alla chiusura). In particolare, questo aggiustamento può essere positivo o negativoquindi l'effetto jitter potrebbe risultare casualmente in un risultato leggermente migliore. o prezzo di chiusura leggermente peggiore, simulando piccole variazioni nei punti di Stop Loss, Profit Target o trailing stop.
In parole povere, eseguendo 500 (o un numero diverso) backtest di simulazione, ciascuno dei quali applica diversi salti casuali e aggiustamenti di prezzo bidirezionali all'elenco degli scambi, si ottiene una prospettiva Monte Carlo su quanto sia sensibile la performance della strategia a piccole instabilità casuali nella sua logica di esecuzione o nella sua reazione ai dati di mercato.
Ad esempio, l'esecuzione di 100 simulazioni con questo test genererà 100 curve azionarie diverse, ognuna delle quali rappresenta un percorso di risultato plausibile, considerando queste piccole variazioni casuali.
Questo test differisce in modo significativo dall'applicazione di uno slittamento fisso o dalla simulazione di un fermo macchina casuale. Non si limita a degradare i risultati in modo consistente, ma introduce una disturbo probabilistico direttamente correlato alla potenziale sensibilità dei parametri interni della strategia. Una simulazione potrebbe saltare gli scambi #3 e #25, peggiorare leggermente lo scambio #10 e migliorare leggermente lo scambio #42. Un'altra simulazione potrebbe saltare solo lo scambio #15, ma applicare aggiustamenti di prezzo maggiori (sia positivi che negativi) agli scambi #8, #33 e #50. Valutando la distribuzione dei risultati in molte simulazioni, è possibile valutare la reale solidità della strategia rispetto al tipo di sottili variazioni operative che si incontrano spesso dal vivo.
Come importare snippet personalizzati (come questo test Monte Carlo) in SQX:
https://strategyquant.com/doc/programming-for-sq/import-export-custom-indicators-and-other-snippets/