La simulazione MonteCarlo

Cos’ è l’analisi MonteCarlo?

L’analisi o simulazione MonteCarlo è una stima quantitativa dei rischi. Le metodologie quantitative si pongono come principale obiettivo quello di stimare la distribuzione delle variabili casuali aleatorie rappresentative dei rischi finanziari.

In ambito aziendale, ma anche in fisica, matematica, sociologia, la simulazione MonteCarlo è una delle più diffuse modalità di risoluzione dei problemi che hanno per oggetto la stima di variabili aleatorie. Il metodo MonteCarlo consiste nel cercare la soluzione di un problema, rappresentandolo quale parametro di una ipotetica popolazione, e, nello stimare tale parametro tramite l’esame di un campione estratto dalla popolazione mediante una sequenza di numeri casuali. In altre parole, è possibile stimare la variabile aleatoria obiettivo, generando un numero sufficientemente elevato di scenari (o interazioni) casuali con i quali costruire la distribuzione di frequenza.

In pratica, con la simulazione MonteCarlo andremo a verificare se i risultati di un generico backtesting sull’andamento, ad esempio, di titoli di borsa, sia frutto di coincidenze o se il modello analizzato è in grado di funzionare anche in scenari e con dati storici e variabili differenti.
Per fare ciò, la simulazione MonteCarlo prevede la realizzazione dei seguenti passi:

  1. Scomposizione degli strumenti finanziari presenti nel portfolio in fattori di rischio elementari;
  2. Raccolta dei dati di mercato relativi ai fattori di rischio su un arco di tempo passato.
  3. Simulazione degli scenari relativi ai fattori di rischio. Gli scenari sono definiti sulla base della distribuzione di probabilità scelta e dei parametri che descrivono la distribuzione. Questi parametri sono calcolati sulla base dei dati storici raccolti. Questa fase è caratterizzata da un’elevata intensità di calcolo in quanto con il metodo MonteCarlo vengono generati un numero molto elevato di scenari.
  4. Ribaltamento degli scenari simulati sul portfolio. In questo modo si ottengono tanti valori del portfolio quanti sono gli scenari simulati.
  5. Confronto dei valori di portfolio ottenuti sulla base degli scenari simulati con il valore attuale del portfolio. Ciò consente di ottenere tanti valori di potenziali profitti e perdite quanti sono gli scenari simulati.
  6. Raccolta dei profitti e delle perdite su un istogramma per visualizzarne la distribuzione, e individuazione del VaR (1) sulla base della probabilità scelta dall’investitore.

(1) Il VaR (Value at Risk) è definito come la misura della massima perdita “potenziale” (cioè non certa) che un portfolio può subire con una certa probabilità su un determinato orizzonte temporale.

MultiCharts, riconosciuto come il software più evoluto per la simulazione e analisi dei Portfoli, permette di utilizzare la simulazione MonteCarlo, unitamente ad altri strumenti di analisi, come il Backtesting, l’Ottimizzazione 3D, lo Strategy Report, e tanti altri.

Per la valutazione preventiva degli investimenti finanziari, la simulazione MonteCarlo è utilizzata per analizzare le strategie, dopo aver eseguito il Backtesting su un Portfolio di strumenti finanziari (titoli, azioni, ecc.). Di fatto, l’analisi MonteCarlo presenta alcune similitudini con il Backtesting, in quanto anch’esso simula una serie di scenari sulla base di dati storici. Ma a differenza del Backtesting, viene simulata una precisa distribuzione di probabilità per i fattori di rischio, e questo consente all’analisi MonteCarlo di generare un numero molto elevato di scenari. Per fare questo, i dati storici vengono utilizzati per determinare i parametri della simulazione (ad esempio, la media, la volatilità e le correlazioni) con cui descrivere la distribuzione di probabilità scelta.

Come funziona la simulazione MonteCarlo?

Il Backtesting, lo ricordiamo, va a simulare come avrebbe performato la strategia da una data passata ad oggi. Immaginiamo ora di aver ottenuto risultati incoraggianti e redditizi dal nostro ultimo Backtesting. A questo punto, le domande che ci poniamo sono le seguenti: siamo davvero sicuri che i risultati positivi non siano dovuti ad una fortunata serie di coincidenze numeriche? Possiamo fidarci della strategia impostata, investendo dei capitali più o meno consistenti? Possiamo garantirci un margine sufficiente di sicurezza che non si verificheranno rischi elevati in futuro?

Per rispondere a queste domande, ci viene in aiuto la simulazione MonteCarlo. Come abbiamo detto, questa particolare analisi consente di simulare un numero elevato di possibili scenari rappresentativi dell’evoluzione futura delle variabili di rischio da cui dipende il valore dell’attività finanziaria che stiamo studiando. Questa tecnica si basa sull’idea di approssimare il valore atteso di una determinata funzione finanziaria, calcolando la media aritmetica dei diversi risultati ottenuti dalle simulazioni effettuate sul possibile andamento futuro delle variabili da cui essa dipende.
Il punto di partenza consiste dunque nella definizione del processo dinamico. Nel caso di azioni o di derivati su indici azionari, è comune assumere che il comportamento segua un processo di tipo geometrico browniano.

Come si utilizza la simulazione MonteCarlo?

Effettuando il Backtesting su una strategia di Portfolio o su uno o più strumenti finanziari, otteniamo un certo numero di trade, disposti in ordine cronologico. La valorizzazione di questi trade, proiettati su un grafico, formano l’andamento dell’equity, cioè dell’evoluzione del capitale nel tempo. L’equity presenterà quindi un certo numero di elementi statistici, legati ai vari trade: net profit, drawdown, gross profit, gross loss, ecc. La simulazione MonteCarlo si fonda su tale curva di equity; dove ogni simulazione viene effettuata modificando i trade in modo casuale. Come risultato dell’analisi, vedremo la distribuzione delle caratteristiche di ogni trade e la loro rappresentazione visuale, sotto forma di grafici e tabelle.

Come fare una simulazione MonteCarlo con MultiCharts?
Prima di costruire una soluzione fai-da-te con Excel, che andrebbe personalizzata per un utilizzo specifico in ambito finanziario, iniziamo da un’analisi più sofisticata con uno strumento dedicato. In questo ci viene in aiuto MultiCharts, una suite di programmi per la gestione, la simulazione e l’analisi dei portfoli finanziari.
In MultiCharts, la simulazione MonteCarlo viene utilizzata per completare l’analisi di una strategia, dopo aver effettuato il backtesting in una Chart (un solo strumento finanziario) o in un Portfolio (un insieme di strumenti finanziari), oppure per analizzare uno specifico account di trading. Come già abbiamo anticipato, il risultato del backtesting può mostrare risultati estremamente positivi, ma prima di investire denaro “vero” su quella strategia, è indispensabile accertarsi che la stessa strategia possa continuare a produrre ottimi risultati in differenti contesti di mercato, arrivando a valutare anche i possibili valori estremi che la strategia potrà produrre, insieme ai risultati più probabili.

umanot analisi montecarlo 01

Dopo aver effettuato il backtesting su Portfolio Trader, nella finestra di Report clicchiamo sull’icona evidenziata in rosso.

umanot analisi montecarlo 02

Si aprirà la finestra della simulazione MonteCarlo. Nel frame di sinistra viene riportato un sommario del report di backtesting. Per avviare la simulazione, cliccare su Run Analysis (icona evidenziata).

umanot analisi montecarlo 03

Tipi di analisi

come abbiamo detto, nella simulazione MonteCarlo, i trades, sulla base della curva di equity, per ogni simulazione vengono combinati secondo un ordine casuale.
Immaginiamo una curva di equity con 4 trades: A, B, C e D. A seconda del metodo scelto per la simulazione, possiamo ottenere due tipi di analisi:

  • Shuffled Trades Analysis: ogni singola simulazione di quest’analisi viene creata mescolando i trades della curva di equity. Quindi i possibili scenari saranno: ABCD, ACDB, BCAD, DABC, ecc., dove ogni trade viene utilizzato una sola volta all’interno di una singola simulazione.
  • Distribution Analysis: ogni trade relativo alla curva di equity, può essere utilizzato più volte all’interno di ogni simulazione: ABCD, AABB, ACDC, ABBA, DDDD.

umanot analisi montecarlo 04

Impostazione dei parametri

L’utente può definire una serie di parametri dell’analisi:

Numero delle simulazioni: con l’ultima versione (v11) di MultiCharts, per entrambi i tipi di analisi il numero minimo è 10. Questo valore è quello minimo per avere un’idea approssimata delle caratteristiche della distribuzione. Il numero massimo sia per la Shuffled Analysis, sia per la Distribution Analysis è 100.000.

Numero dei trades: si tratta del numero di trades in %, contenuti in ogni singola simulazione, sempre sulla base della curva di equity. Il valore di default, pari al valore massimo è uguale al 100%. Nelle simulazioni, il numero di trades può essere diminuito quando vengono elaborate grosse moli di dati (ad es. migliaia o milioni di trades), in modo da rendere più rapida l’elaborazione globale. La pratica ci insegna che con grandi volumi di dati, la riduzione del numero di trades per simulazione, non introduce differenze significative nei risultati ottenuti, grazie alla selezione casuale dei trades durante la simulazione dei diversi scenari.

Risultati delle analisi

Per avviare la simulazione, basta cliccare su “Run Analysis”.
Dopo la necessaria elaborazione, i risultati vengono presentati raccolti in due Tab, una per ogni tipo di analisi effettuata.

Nel Tab Shuffled analysis, i risultati vengono rappresentati sotto forma di grafico, nel quale tutte le simulazioni generate vengono visualizzate lungo la curva base dell’equity. Dato che le simulazioni vengono generate mescolando i trades presenti sulla curva dell’equity, alcune caratteristiche (net profit, gross profit, gross loss), coincideranno per tutte le simulazioni, ma, lo ricordiamo, lo scopo primario dell’analisi è la valutazione dei rischi attraverso i valori di Drawdown medi ed estremi. Per questa ragione, le curve con i valori di Drawdown maggiori e minori verranno evidenziati con colori diversi.
Nel Tab Distribution Analysis i risultati sono rappresentati sul grafico o sulla tabella della Distribuzione Normale (Cfr. funzione DISTRIB.NORM.N di Excel) con i parametri statistici selezionati dall’utente.

Asse-X
L’asse orizzontale del grafico di Analisi della Distribuzione mostra la percentuale (%) di simulazioni relative al parametro mostrato sull’asse-Y. Ad esempio, se simuliamo 1.000 simulazioni su un grafico di Net Profit (come nella figura qui sopra), nel 50% degli scenari (500 simulazioni) il valore di Net profit sarà inferiore a 575.000 euro (identificato dalle linee gialle), mentre nelle restanti 500 simulazioni sarà superiore a 575.000 euro. Dalla stessa figura si vede che nel backtesting da noi ottenuto prima dell’analisi MonteCarlo, il valore di Net Profit era pari a 573.000 euro. Lo stesso grafico ci mostra lo scenario migliore (linee verdi) e peggiore (linee rosse), corrispondenti alla valutazione del rapporto rischio/rendimento della strategia analizzata.

Asse-Y
L’asse verticale del grafico di Analisi della Distribuzione mostra il parametro selezionato nel menu a tendina (figura qui sotto), come Net Profit, Max Drawdown, Gross Profit, ecc.

umanot analisi montecarlo 04b

Come fare una simulazione MonteCarlo con Excel?

Se si rinuncia agli istogrammi creati con sofisticati programmi di analisi, come il già citato MultiCharts, anche con Excel è possibile generare una simulazione MonteCarlo con relativa rappresentazione grafica. Vediamo come, cominciando con un facile esempio. Il file Excel a cui fare riferimento è scaricabile qui.
Assumiamo che ciò che andiamo ad analizzare sia un Distribuzione Normale (link). Tale distribuzione di probabilità richiede 3 variabili: la probabilità, la deviazione media e la deviazione standard. Cominciamo da queste ultime due, e ipotizziamo che la nostra previsione per una generica attività commerciale, includa il Ricavo e le Spese fisse e variabili; dove il Profitto è uguale al Ricavo meno le Spese fisse meno le Spese variabili. Le Spese fisse possono essere quelle relative agli impianti e al mantenimento di un’industria, quindi questi costi non saranno associati ad alcuna curva di distribuzione. Mentre le curve di distribuzione riguarderanno, ovviamente, i Ricavi e i Costi variabili.

umanot analisi montecarlo 05

A questo punto, abbiamo tutti i dati per procedere con la prima simulazione:

  • Probabilità = con la funzione CASUALE () otteniamo un numero casuale basato sugli altri criteri della distribuzione;
  • Media = in questo primo step, useremo la cella del Ricavo (C5);
  • Deviazione Standard: per i Ricavi, ipotizziamo una deviazione standard di 500.000 euro(C6);

umanot analisi montecarlo 06

Ora siamo pronti per effettuare N simulazioni, diciamo 1.000. Costruiamo quindi la tabella delle simulazioni, mettendo su una colonna i numeri da 1 a 1.000, iniziando dalla cella B14.

umanot analisi montecarlo 08

Nella cella successiva (C14) vogliamo visualizzare il risultato della prima interazione. Mettiamo allora il valore di F8, che rappresenta la prima interazione.
Per riempire le successive celle, che ci restituiranno le 1.000 simulazioni, evidenziamo la relativa area (da B14 a C1013).

umanot analisi montecarlo 09

Da menu: Dati > Analisi di simulazione > tabella dati.
Nel campo “cella di input per colonna” inseriamo una cella vuota, ad esempio, D14.
Cliccando su OK, le celle selezionate verranno popolate con i valori delle simulazioni.
A questo punto, dobbiamo inserire alcuni valori statistici che ci consentiranno di leggere facilmente la tabella.

umanot analisi montecarlo 10

Una delle possibilità è di contare sulle 1.000 simulazioni disponibili, quante interazioni sono negative (< 0), cioè non profittevoli. Questo valore è stato ottenuto con la funzione CONTA.SE, nella cella K4.
Utilizzando la stessa funzione, abbiamo contato (cella K5) quante interazioni sono superiori ad 1 milione di euro.
Dal momento che stiamo utilizzando la funzione CASUALE, ad ogni refresh di una cella coinvolta nella simulazione, i valori verranno ricalcolati e cambieranno, benché le probabilità statistiche dell’analisi non si discosteranno di molto da quelli indicati, visto l’elevato numero di interazioni che abbiamo attivato.

Volendo, possiamo ora aggiungere un grafico esplicativo delle interazioni, che ci permetta di cogliere visivamente la sintesi della simulazione. Sarà sufficiente selezionare l’area della tabella delle interazioni (B14:C1013) e cliccare su Inserisci e scegliere Grafico a dispersione, ridimensionando opportunamente gli assi ed eventualmente aggiungendo una linea di tendenza (in rosso). Quella visualizzata è una media mobile a 4 periodi.
Per approssimazione, se i punti blu sono raggruppati, e se la linea di tendenza ha un’escursione più contenuta, ne possiamo dedurre che il modello è più stabile e meno soggetto a imprevedibilità nel corso del tempo.

umanot analisi montecarlo 11

Gaetano Di Marco

Segui questo articolo
Sei Interessato?

Ogni volta che verrà inserito un nuovo commento riceverai una notifica direttamente nella tua casella email.

×

LASCIATI AIUTARE DA UMANOT!

Vuoi beneficiare anche tu delle decisioni di Umanot?

Scopri il Servizio più adatto alle tue esigenze! 

SCOPRI