• Non ci sono risultati.

Fase di simulazione, fase operativa e rappresentazione dei risultati

4. APPLICAZIONE PRATICA DEL QLa: STRUTTURA

4.3 Fase di simulazione, fase operativa e rappresentazione dei risultati

La fase di simulazione rappresenta il primo step computazionale dellโ€™algoritmo Q- Learning. Al fine di ottenere una soddisfacente approssimazione dei valori ottimi, e dal momento che il vettore ๐œฝ, ad ogni iterazione, viene inizializzato sulla base di una distribuzione di probabilitร  uniforme compresa nellโ€™intervallo [โˆ’1,1], vengono computate 500 iterazioni per ogni settaggio diverso di parametri. In ogni differente settaggio, viene selezionato un learning rate ๐›ผ = 5% ed un tasso di sconto ๐›พ = 95%, entrambi valori ampiamente utilizzati in letteratura empirica ed in questo contesto riproposti. In particolare, seguendo quanto analizzato nel capitolo 3, il learning rate รจ sufficientemente piccolo per garantire la convergenza al valore ottimo ๐‘„โˆ—(๐‘ , ๐‘Ž) ma non

cosรฌ tanto da rendere tale convergenza troppo lenta; il valore di ๐›พ รจ settato per tenere in maggior considerazione i rendimenti futuri rispetto ai rendimenti presenti, configurando lโ€™algoritmo in maniera da assumere un comportamento piรน lungimirante. Riassumendo, vengono predisposti i seguenti settaggi: due diversi vettori per descrivere lo stato ๐‘ ? (๐‘ = 1, ๐‘ = 5), tre diverse funzioni di reward (Sharpe, Sortino, Calmar)

considerando due diversi valori di ๐ฟ (5 e 22), una funzione logistica come funzione di

squashing, costi percentuali di transazione pari a 0,10% (applicati in fase di simulazione ed in fase operativa) e tre diversi valori di ๐œ€ (5%,15%, 25%), per un totale di configurazioni pari a 36. I risultati sono raggruppati per numerositร  dei titoli (๐‘ = 1, ๐‘ = 5) e per funzione di reward impiegata, in modo tale da indagare se le due alternative allo Sharpe Ratio siano valide e forniscano indicazioni migliori allโ€™algoritmo sulla ricompensa in relazione alle azioni di volta in volta intraprese.

In linea generale, lโ€™algoritmo, in fase di simulazione, opera nel seguente modo: viene inizializzato il vettore ๐œฝ ed il vettore ๐‘ ? (sulla base dei parametri impostati). In seguito,

ad ogni k-esima iterazione e per ogni titolo, viene selezionata lโ€™azione greedy o lโ€™azione

esplorativa: impostando ad ogni t-esimo stato unโ€™estrazione casuale (๐‘Ÿ๐‘Ž๐‘›๐‘‘) da un

intervallo [0,1], se ๐‘Ÿ๐‘Ž๐‘›๐‘‘ < ๐œ€ viene massimizzato il valore di ๐‘„(๐‘ , ๐‘Ž, ๐œฝ) estraendo casualmente unโ€™azione ๐‘Ž? dalla matrice (53), contrariamente viene selezionata lโ€™azione

๐‘Ž? secondo il criterio greedy, ovvero viene computata la funzione di valore ๐‘„(๐‘ , ๐‘Ž, ๐œฝ)

per ognuna delle tre diverse azioni possibili (๐‘Ž? = โˆ’1,0,1) ed i tre risultati vengono

rappresentati in un vettore, selezionando poi il valore massimo tra i tre ottenuti. Nel caso in cui due o piรน risultati siano identici, รจ indifferente la scelta dellโ€™azione da intraprendere poichรฉ questa comunque massimizza la funzione di valore: ad esempio, ๐‘Ž? = โˆ’1 ed ๐‘Ž? = 0 potrebbero fornire gli stessi valori della funzione ๐‘„(๐‘ , ๐‘Ž, ๐œฝ) ed essere

entrambi dei massimi. Dal momento che il vettore rappresentante i tre risultati delle funzioni di valori รจ il seguente:

๐‘š๐‘Ž๐‘ฅ๐‘„๐ฟ?= ๐‘š๐‘Ž๐‘ฅ[ ๐‘„b๐‘ ?, ๐‘Ž?,@2, ๐œฝ?e, ๐‘„b๐‘ ?, ๐‘Ž?,J, ๐œฝ?e, ๐‘„b๐‘ ?, ๐‘Ž?,2, ๐œฝ?e], ( 56 )

nel caso di due o piรน valori uguali questi verrebbero selezionati seguendo il sistema di preferenze ๐‘Ž?,@2 โ‰ป ๐‘Ž?,Jโ‰ป ๐‘Ž?,2, penalizzando sistematicamente le azioni ๐‘Ž?= 0 ed ๐‘Ž? =

1 rispetto allโ€™azione ๐‘Ž? = โˆ’1, e lโ€™azione ๐‘Ž?= 1 rispetto allโ€™azione ๐‘Ž?= 0. Per ovviare a

questo problema, in Matlabร’ viene computata la seguente equazione:

dove ๐‘Ÿ๐‘Ž๐‘›๐‘‘๐‘–(3) indica un comando Matlabรข che estrae casualmente un numero intero

compreso tra 1 e 3; in questo modo, qualora vi fossero due o tre valori identici, la selezione dellโ€™azione greedy verrร  effettuata in maniera casuale, senza penalizzarne in questo modo la scelta. Lโ€™azione cosรฌ selezionata determinerร  il profitto del periodo successivo (๐‘”?A2 = ๐‘’?A2๐‘Ž?), sulla base del rendimento giornaliero realizzato, e di

conseguenza il valore della equity line (equazione 50). Il passaggio successivo consiste nel valutare la selezione tramite la funzione di reward, computata considerando gli ultimi ๐ฟ profitti percentuali ottenuti (๐‘”?). Infine, si ottiene lโ€™aggiornamento del vettore

๐œฝ?A2 utilizzando lโ€™equazione (41) e predisponendo, dunque, tutte le componenti

necessarie al suo calcolo: ๐‘ ?A2, ๐‘Ÿ?A2+ ๐›พ maxโ€ข ๐‘„(๐‘ ?A2, ๐‘Ž, ๐œฝ?) โˆ’ ๐‘„(๐‘ ?, ๐‘Ž?, ๐œฝ?),

โˆ‡๐œฝยฎ๐‘„(๐‘ ?, ๐‘Ž?, ๐œฝ?).

Il numero di iterazioni, per le ragioni giร  precedentemente esposte, รจ elevato (๐‘˜ = 500), dunque per ogni step sono computate un numero pari a ๐‘˜ azioni. Al fine di rendere lโ€™algoritmo operativo รจ necessario che esso fornisca una sola indicazione di trading per ogni t-esimo periodo, dunque serve introdurre una regola per aggregare le ๐‘˜ azioni in modo tale da ottenere un solo ed unico segnale operativo. Viene seguita dunque lโ€™impostazione presente in Corazza e Sangalli (2015), determinando innanzitutto la media delle azioni per ogni periodo t-esimo come segue:

๐‘Žรง? = โˆ‘ ๐‘Ž?,}

รจ }~2

๐พ , ( 58 )

dove ๐‘Žรง? รจ la media delle k azioni al periodo t-esimo, ๐พ รจ il numero totale di iterazioni

impostate (500) ed ๐‘Ž?,} รจ lโ€™azione del periodo t-esimo alla k-esima iterazione. In seguito,

ogni azione media ๐‘Žรง? viene tradotta in un segnale operativo utilizzando la seguente

regola:

โ€ข se โˆ’1 โ‰ค ๐‘Žรง? < โˆ’ 1 3รช allora ๐‘Ž?= โˆ’1, ovvero โ€œvendita o posizione short nel

mercatoโ€.

โ€ข se โˆ’ 1 3รช โ‰ค ๐‘Žรง?โ‰ค 1 3รช allora ๐‘Ž? = 0, ovvero โ€œstar fuori dal mercatoโ€.

In questo modo, il trend generale di tutte le equity line ottenute dalle k simulazioni viene raggiunto in media (Corazza e Sangalli, 2015). Sulla base dei segnali operativi ottenuti applicando il sistema appena esposto, vengono computate le equity line definitive, considerando il profitto al lordo (๐‘’๐‘ž_๐‘™๐‘–๐‘›๐‘’๐บ) ed al netto (๐‘’๐‘ž_๐‘™๐‘–๐‘›๐‘’๐‘) dei costi di transazione, secondo le seguenti equazioni:

๐‘’๐‘ž_๐‘™๐‘–๐‘›๐‘’๐บ?A2 = ๐‘’๐‘ž_๐‘™๐‘–๐‘›๐‘’๐บ?โˆ— (1 + ๐‘”?A2) ( 59 ) ๐‘’๐‘ž_๐‘™๐‘–๐‘›๐‘’๐‘?A2 = ๐‘’๐‘ž_๐‘™๐‘–๐‘›๐‘’๐บ?โˆ— (1 + ๐‘”?A2โˆ’ ๐›ฟ|๐‘Ž?โˆ’ ๐‘Ž?@2|). ( 60 )

La quarta ed ultima fase dellโ€™algoritmo riguarda, come giร  esposto, la valutazione delle

performance del sistema di trading, applicato ai vari titoli, sulla base di determinate

statistiche descrittive. In particolare, vengono inizialmente estratti, da ogni equity line, il capitale finale al lordo ed al netto dei costi di transazione. Sulla base dei valori estratti, si ottengono i rendimenti medi giornalieri (lordi e netti) nel seguente modo:

๐‘Ÿ_๐‘‘๐‘Ž๐‘–๐‘™๐‘ฆ = รกร‰รฌ_รญยท`ร‰รฎ

รฏ รข

ยผ รฎ

โˆ’ 1 ( 61 )

dove ๐ถ รจ il capitale iniziale investito e ๐‘‡ รจ lโ€™ammontare totale dei giorni di trading considerati nel sistema (๐‘‡ = 4569). I rendimenti giornalieri cosรฌ ottenuti vengono utilizzati per calcolare il rendimento medio annuo (lordo e netto):

๐‘Ÿ_๐‘Ž๐‘›๐‘›๐‘ข๐‘Ž๐‘™ = (1 + ๐‘Ÿ_๐‘‘๐‘Ž๐‘–๐‘™๐‘ฆ)3รฃ3โˆ’ 1 ( 63 )

con 252 a rappresentare, notoriamente, il numero di giorni di trading allโ€™anno. Viene inoltre calcolata la numerositร , espressa in percentuale, di volte nelle quali lโ€™equity line (lorda e netta) รจ superiore al livello del capitale iniziale ๐ถ, in maniera tale da valutare la performance e lโ€™efficacia del sistema di trading non soltanto sulla base del profitto finale, ma anche sulla base dellโ€™andamento del sistema nel corso di tutto il periodo considerato. Tali percentuali sono cosรฌ ottenute:

๐‘๐‘’๐‘Ÿ๐‘_๐‘œ๐‘ฃ๐‘’๐‘Ÿ๐บ =รณรด

Q ร— 100 ( 65 )

dove ๐œ‚รถ ed ๐œ‚ร sono, rispettivamente, il numero di volte nelle quali ๐‘’๐‘ž_๐‘™๐‘–๐‘›๐‘’๐บ?โ‰ฅ ๐ถ ed

๐‘’๐‘ž_๐‘™๐‘–๐‘›๐‘’๐‘Q โ‰ฅ ๐ถ. Infine, viene calcolato il numero medio di azioni per anno, per indagare a quanto ammonta, mediamente, lโ€™operativitร  indotta dal sistema di trading implementato:

๐‘Žรง_๐‘Ž๐‘›๐‘›๐‘ข๐‘Ž๐‘™ = โ€ขรท,รธ

Q 3รฃ3

รช ร— 100, ( 66 )

considerando ๐‘Žร,9 come il totale di azioni di trading per il titolo j-esimo. Vengono infine

costruiti due grafici: il primo raccoglie tutte le equity line ottenute dalle ๐‘˜ iterazioni, il secondo invece viene suddiviso in tre pannelli rappresentanti rispettivamente i prezzi della serie storica rappresentata, le azioni intraprese dal sistema di trading ad ogni istante di tempo e lโ€™andamento dellโ€™equity line al lordo ed al netto dei costi di transazione confrontate con il livello di capitale iniziale investito ๐ถ.