sabato 23 aprile 2016

Test sulla strategia di trading

"Dopo aver elaborato un piano di trading, la fase successiva è quella della verifica; funzionerebbe sul mercato?"


Sebbene sappiamo che le performance future non siano del tutto prevedibili a partire dai risultati ottenuti in passato, possiamo dire che nella fase di test di un piano di trading ci sono alcuni aspetti che possono indicarci se, e in che misura, il nostro trading plan sia vincente o meno. Stiamo parlando di Backtesting e Forward performance testing.

Come funziona il backtesting

Nel backtesting, il primo passo consiste nel selezionare le date soglia all'interno di un periodo di tempo coperto dai dati storici. Nell'immagine qui sotto, le date soglia sono indicate come T1, T2, T3 e T4. 
Quindi, per ogni data soglia, 
  • i dati storici vengono troncati alla soglia,
  • il modello di previsione è addestrato e applicato ai dati troncati,
  • le previsioni così ottenute sono messe a confronto con i dati originali completi. 


Infine, viene stabilito un errore medio di previsione per tutte le soglie. 

Questo errore può essere interpretato come una stima dell'errore che sarà associato al modello durante l'elaborazione di previsioni vere e proprie (relative a dati futuri). Scegliere le date soglia più adeguate richiede un minimo di conoscenze in materia. Di norma, aumentare il numero delle date soglia migliora la resistenza ai problemi di overfitting
Nel caso dell'ottimizzazione delle scorte, poiché le SKU da analizzare sono centinaia, bastano poche date soglia per decidere, con certezza quasi assoluta, se un metodo di previsione è migliore degli altri.

Un errore comune: un solo addestramento per molte previsioni

Il backtesting è generalmente un procedimento piuttosto intenso in termini di potenza di calcolo, poiché un nuovo modello di previsione deve essere addestrato per ogni soglia. Un errore che osserviamo di frequente, quindi, è addestrare il modello di previsione una volta sola, sfruttando di solito tutti i dati storici a disposizione, per poi passare direttamente al backtesting. In questo modo, si ha l'impressione di velocizzare l'intero procedimento di backtesting.

Sottolineiamo si ha l'impressione, perché in realtà un approccio del genere può causare seri problemi di overfitting. Facciamo un ragionamento implicito: se i dati futuri sono messi a disposizione del modello di previsione, il modello, indipendentemente dalla variabile da prevedere durante la fase di addestramento, includerà inevitabilmente alcune informazioni su questo futuro. Di conseguenza, l'accuratezza misurata con il backtesting non rifletterà le capacità di generalizzazione del modello, ma le capacità di memorizzazione del modello, ossia la capacità di riprodurre situazioni identiche a quelle trovate nel set di dati usato per l'addestramento.
"I trader che sono desiderosi di provare un'idea negoziazioni in un mercato vivo spesso fanno l'errore di affidarsi interamente su di backtesting risultati per determinare se il sistema sarà redditizio"

Come funziona il Forward performance testing.

E' un test delle prestazioni in avanti fornisce i trader con un'altra serie di out-of-sample di dati su cui valutare un sistema. Il test delle prestazioni di andata è una simulazione di trading reale e coinvolge seguendo la logica del sistema in un mercato dal vivo. E 'chiamata anche di scambio di carta in quanto tutte le operazioni vengono eseguite solo su carta; cioè, le entrate commerciali e le uscite sono documentate insieme a qualsiasi utile o perdita per il sistema, ma vengono eseguiti reali compravendite. Un aspetto importante del test delle prestazioni in avanti è di seguire la logica del sistema esattamente; altrimenti, diventa difficile, se non impossibile, valutare con precisione questa fase del processo. Gli operatori dovrebbero essere onesti circa le voci del commercio e le uscite ed evitare comportamenti come cherry picking commerci o meno compreso un commercio su carta razionalizzazione che "non avrei mai preso che il commercio." Se il commercio sarebbe verificato seguente logica del sistema, deve essere documentata e valutata.
Molti broker offrono un conto di trading simulato in cui i commerci possono essere posizionati e il conto economico relativo calcolo. Utilizzando un conto di trading simulato in grado di creare un ambiente semi-realistico in cui praticare il commercio e valutare ulteriormente il sistema.
La figura 2 mostra anche i risultati di test delle prestazioni in avanti su due sistemi. Anche in questo caso, il sistema rappresentato nella tabella sinistra non riesce a fare ben oltre i test iniziali sui dati in-campione. Il sistema mostrato nel grafico a destra, tuttavia, continua a funzionare bene in tutte le fasi, compresa la prova di prestazione avanti. Un sistema che mostra risultati positivi con buona correlazione tra in-campione, out-of-campione e di test delle prestazioni in avanti è pronto per essere implementato in un mercato dal vivo.


Formula di Black e Scholes e il drift finanziario (articolo a scelta dello studente)

In questo articolo trovato su wikipedia vengono esposte e collegate molte  delle compoenti usate nel corso ovvero:

  1. il drift finanziario
  2. il moto browniano
  3. i futures
  4. le opzioni


La formula di Black e Scholes è l'espressione per il prezzo di non arbitraggio di un'opzione call (put) di tipo europeo, ottenuta sulla base del modello di Black-Merton-Scholes.

l prezzo di un'opzione call europea, con scadenza \ T, valutata in \ t, è dato da:
\ C(S,t)=S_{t}N(d_{1})-Ke^{-r(T-t)}N(d_{2})
Per un'opzione put europea, l'espressione corrispondente è:
\ P(S,t)= Ke^{-r(T-t)}N(-d_{2}) - S_{t}N(-d_{1})
dove:
e:
\ d_{1}=\frac{\ln\frac{S_{t}}{K}+\left(r+\frac{1}{2}\sigma^{2}\right)(T-t)}{\sigma\sqrt{T-t}};\quad d_{2}=d_{1}-\sigma\sqrt{T-t}
Nella prassi, anche accademica, la formula di Feynman-Kac giustifica il ricorso al principio del risk-neutral pricing, che consente di risolvere l'equazione di Black e Scholes, e dunque ottenere le formule, semplicemente calcolando un valore atteso; in quanto segue si illustra il procedimento, con riferimento al problema di determinare il prezzo di un'opzione put (il procedimento è del tutto analogo nel caso, più spesso trattato, di un'opzione call).
In maniera euristica, si può affermare che tale approccio equivale ad assumere che gli operatori del mercato siano neutrali al rischio. Da un punto di vista matematico, il risk-neutral pricing è pienamente giustificato dalla formula di Feynman-Kac, che stabilisce un importante collegamento tra la teoria delle equazioni alle derivate parziali e quella dei processi stocastici.
Punto di partenza di questo approccio è l'ipotesi che, sotto una particolare misura di probabilità, detta neutrale al rischio e in generale diversa da quella fisica, il rendimento atteso del sottostantesia pari al tasso d'interesse non rischioso \ r; sulla base del modello di Black e Scholes di moto browniano geometrico, il prezzo del sottostante soddisferà l'equazione differenziale stocastica (SDE):
\ dS = rSdt + \sigma SdW_{t}
È chiaro che nella realtà fisica il drift atteso del differenziale di \ \ln S non è necessariamente pari a \ rdt; tramite il teorema di Girsanov, tuttavia, siamo in grado di passare da un generico drift \ \mu dt a quello desiderato, sfruttando il concetto di misura di probabilità equivalente; in questo modo, l'ipotesi sopra è perfettamente lecita. Si ricorda l'equazione di Black e Scholes, dove \ P denota il prezzo dell'opzione put, da determinare:
\ rS\frac{\partial P}{\partial S} + \frac{\partial P}{\partial t} + \frac{1}{2}\sigma^{2}S^{2}\frac{\partial^{2}P}{\partial S^{2}}-rP=0
con condizione al contorno:
\ P(S_{T},T)=\max(K-S_{T},0)=(K-S_{T})\mathbf{1}_{S_{T}<K}
dove \ \mathbf{1} è la funzione indicatrice. La formula di Feynman-Kac stabilisce che, sotto queste ipotesi e alcune condizioni di regolarità indolori, la soluzione all'equazione è data da:
\ P(S,t)=e^{-r(T-t)}\textrm{E}[(K-S_{T})\mathbf{1}_{S_{T}<K}]
cioè dal valore atteso, scontato, del payoff futuro (questo risultato è coerente con il teorema fondamentale dell'asset pricing). Sviluppando l'espressione sopra, si ha:
\ P(S,t)=Ke^{-r(T-t)}\textrm{E}[\mathbf{1}_{S_{T}<K}]-e^{-r(T-t)}\textrm{E}[S_{T}\mathbf{1}_{S_{T}<K}]=
\ = Ke^{-r(T-t)}\Pr(S_{T}<K)-e^{-r(T-t)}\textrm{E}[S_{T}\mathbf{1}_{S_{T}<K}]
Si consideri innanzitutto il primo termine:
\ \Pr(S_{T}<K)=\Pr\left(\frac{W_{T}-W_{t}}{\sqrt{T-t}}<-\frac{\ln\frac{S_{t}}{K}+\left(r-\frac{1}{2}\sigma^{2}\right)(T-t)}{\sigma\sqrt{T-t}}\right)=N(-d_{2})
in base alle proprietà del moto browniano geometrico.
Venendo al secondo termine, giova operare le seguenti manipolazioni:
\ e^{-r(T-t)}\textrm{E}[S_{T}\mathbf{1}_{S_{T}<K}]=e^{-r(T-t)}\textrm{E}[S_{T}|S_{T}<K]=
=S_{t}\exp\left(-\frac{1}{2}\sigma^{2}(T-t)\right)\textrm{E}[\exp\{\sigma(W_{T}-W_{t})\}|S_{T}<K]
Per comodità di notazione, sia \ Z_{T}=W_{T}-W_{t}\sim N(0,T-t); quanto sopra equivale a voler calcolare:
\ S_{t}e^{-\frac{\sigma^{2}}{2}(T-t)}\frac{1}{\sqrt{2\pi(T-t)}}\int_{-\infty}^{-d_{2}}e^{\sigma Z_{T}}e^{-\frac{1}{2}\left(\frac{Z_{T}}{\sqrt{T-t}}\right)^{2}}dZ_{T}
Completando il quadrato all'interno dell'esponenziale integrando, si ha:
\ S_{t}e^{-\frac{\sigma^{2}}{2}(T-t)}e^{\frac{\sigma^{2}}{2}(T-t)}\frac{1}{\sqrt{2\pi(T-t)}}\int_{-\infty}^{-d_{2}}e^{-\frac{\left(Z_{T}-\sigma\sqrt{T-t}\right)^{2}}{2(T-t)}}dZ_{T}
Si operi infine il seguente cambio di variabile; sia: \ X_{T}=Z_{T}-\sigma\sqrt{T-t}\sim N(0,T-t); dunque \ dX_{T}=dZ_{T}, e l'estremo d'integrazione superiore diviene \ -d_{1}; l'espressione da calcolare risulta:
\ S_{t}\frac{1}{\sqrt{2\pi(T-t)}}\int_{-\infty}^{-d_{1}}\exp\left\{-\frac{1}{2}\frac{X_{T}^{2}}{T-t}\right\}dX_{T}
in cui si riconosce agevolmente la funzione di ripartizione di una variabile casuale normale; dunque quanto sopra è uguale a:
\ S_{t}N(-d_{1})
e la formula di Black e Scholes per il prezzo di un'opzione put europea risulta dimostrata.
Nel loro articolo originale, Black e Scholes risolvono l'equazione che porta il loro nome per il caso di un'opzione call di tipo europeo utilizzando il metodo della separazione delle variabili, un metodo standard per la soluzione di equazioni alle derivate parziali. Un approccio molto elegante, che ricalca quello esposto sopra ma consente di ridurre notevolmente lo sforzo algebrico, è quello delcambiamento di misura o cambiamento del numerario, apparentemente proposto per la prima volta da Margrabe (1978); tale approccio richiede dimestichezza con il teorema di Girsanov, ed è al di là degli scopi di questo articolo.
Le formule sopra presentate sono relative a opzioni di tipo europeo, su titoli che non pagano dividendi. L'estensione al caso di un titolo che paga dividendi è immediata; si consideri ad esempio il caso di un titolo che paga dividendi in tempo continuo (per opzioni su indici azionari, che comprendono azioni di numerose imprese che pagano dividendi in diversi momenti nell'anno, tale ipotesi non è lontana dalla realtà), formulando il seguente modello per l'ammontare di dividendo pagato su un intervallo di tempo infinitesimale \ [t,t+dt]:
\ qS_{t}dt
dove \ q è una costante reale, e indica il tasso istantaneo di dividendo. Sulla base di questa formulazione, tramite un procedimento standard è possibile mostrare che il prezzo di non arbitraggio di un'opzione call sotto le ipotesi di Black e Scholes è:
\ C(S,t)=e^{-q(T-t)}S_{t}N(\tilde{d}_{1})-e^{-r(T-t)}KN(\tilde{d}_{2})
dove:
\ \tilde{d}_{1}=\frac{\ln\frac{S_{t}}{K}+\left(r-q+\frac{1}{2}\sigma^{2}\right)(T-t)}{\sigma\sqrt{T-t}};\quad \tilde{d}_{2}=\tilde{d}_{1}-\sigma\sqrt{T-t}
Un'espressione del tutto analoga si ha per il caso di un'opzione put.
Un caso a parte è rappresentato dal cosiddetto modello di Black per il prezzo di opzioni su futures, spesso utilizzato nell'analisi dei derivati sui tassi d'interesse.

Processi aleatori. Il moto browniano.

Definizione di PROCESSO ALEATORIO:
è possibile identificare un processo stocastico come una famiglia ad un parametro di variabili casuali reali X(t) rappresentanti le trasformazioni dello stato iniziale nello stato al tempo t. In termini più precisi, un processo stocastico si basa su una variabile casuale che prende valori in spazi più generali dei numeri reali (come ad esempio,  \R^n , o spazi funzionali, o successioni di numeri reali).
Da un punto di vista pratico, un processo stocastico è una forma di rappresentazione di una grandezza che varia nel tempo in modo casuale (ad esempio un segnale elettrico, il numero di autovetture che transitano su un ponte, etc.) e con certe caratteristiche. 




Definizione di MOTO BROWNIANO si fa riferimento al moto disordinato delle particelle (aventi diametro dell'ordine del micrometro) presenti in fluidi o sospensioni fluide.
Sebbene l'osservazione di questo fenomeno da parte di Jan Ingenhousz sia avvenuta nel 1785, esso venne riscoperto nel 1828 da Robert Brown (che osservò il moto del polline in una sospensione acquosa), per poi avere una trattazione matematica rigorosa solo agli inizi del Novecento con Louis Bachelier (1900 - Théorie de la spéculation, tesi di laurea) e Albert Einstein .

Possiamo ricreare tutto ciò grazie alla programmazione in Visual Studio andando a osservare la variazione dei prezzi in un certo arco di tempo: