Forward Test

Vorrei chiederti se possibile anche una tua valutazione sul modello ottimizzato con la nuova metrica, perchè le conclusioni a cui ero giunto io da un punto di vista qualitativo sostanzialmente coincidono con le tue a cui sei arrivato in termini quantitativi per quanto riguarda il modello non ottimizzato.

Mi aspetto che però il modello ottimizzato con la nuova metrica ha una maggiore spendibilità anche se con un ritorno minore, ma chiedo sempre una opinione più tecnica.
Ovviamente la performance del modello ottimizzato è più sostenibile per un investitore, il problema è appunto che proviene da una ottimizzazione con tutti i rischi e i problemi del caso (senza altri dettagli sul sistema, di più non si può dire).

Poichè hai ottimizzato, le misure di performance lasciano tutte il tempo che trovano, dal momento che è possibile che persino dal giorno successivo alla messa a mercato le prestazioni inizino a decadere.
Codice:
Annualized Return         	0.3170
Annualized Std Dev        	0.1317
Annualized Sharpe (Rf=0%) 	2.4074

Semi Deviation               0.0072
Gain Deviation               0.0073
Loss Deviation               0.0055
Downside Deviation 	     0.0072
Maximum Drawdown             0.1632
Historical VaR (95%)        -0.0091
Historical ES (95%)         -0.0163

		  From              Trough                  To   Depth Length To Trough Recovery
1  2008-10-01 01:00:00 2008-10-09 01:00:00 2008-11-04 00:00:00 -0.1632     25         7       18
2  2008-11-06 00:00:00 2008-11-19 00:00:00 2008-11-24 00:00:00 -0.1052     13        10        3
3  2011-07-29 01:00:00 2011-08-05 01:00:00 2011-09-14 01:00:00 -0.0931     33         6       27
4  2011-11-09 00:00:00 2011-11-23 00:00:00 2011-12-07 00:00:00 -0.0605     20        11        9
5  2009-01-30 00:00:00 2009-02-20 00:00:00 2009-03-09 00:00:00 -0.0563     26        15       11
6  2012-05-07 01:00:00 2012-05-17 01:00:00 2012-06-28 01:00:00 -0.0562     38         9       29
7  2008-08-29 01:00:00 2008-09-08 01:00:00 2008-09-19 01:00:00 -0.0530     15         6        9
8  2009-07-14 01:00:00 2009-08-03 01:00:00 2009-09-16 01:00:00 -0.0520     46        15       31
9  2007-07-11 01:00:00 2007-08-02 01:00:00 2007-09-14 01:00:00 -0.0512     47        17       30
10 2008-06-20 01:00:00 2008-07-14 01:00:00 2008-07-23 01:00:00 -0.0505     23        16        7
Per quel che può valere, quindi, trovo che lo Sharpe sia interessante, ma in realtà la misura mi pare sia fin troppo viziata dal calo brusco che hai impartito alla volatilità, che di suo non è una buona misura di rischio.

Vale comunque la pena notare la riduzione dei draw down e dell'ES, ma mi trovo d'accordo con pprllo: valutando le due equity che compongono la strategia separatamente, sembra un TS che lavora long/short; in questi casi occhio ai costi e all'effettiva realizzabilità :rolleyes:
 

Allegati

  • img.png
    img.png
    10,5 KB · Visite: 123
Ovviamente la performance del modello ottimizzato è più sostenibile per un investitore, il problema è appunto che proviene da una ottimizzazione con tutti i rischi e i problemi del caso (senza altri dettagli sul sistema, di più non si può dire).

Poichè hai ottimizzato, le misure di performance lasciano tutte il tempo che trovano, dal momento che è possibile che persino dal giorno successivo alla messa a mercato le prestazioni inizino a decadere.
Codice:
Annualized Return         	0.3170
Annualized Std Dev        	0.1317
Annualized Sharpe (Rf=0%) 	2.4074

Semi Deviation               0.0072
Gain Deviation               0.0073
Loss Deviation               0.0055
Downside Deviation 	     0.0072
Maximum Drawdown             0.1632
Historical VaR (95%)        -0.0091
Historical ES (95%)         -0.0163

		  From              Trough                  To   Depth Length To Trough Recovery
1  2008-10-01 01:00:00 2008-10-09 01:00:00 2008-11-04 00:00:00 -0.1632     25         7       18
2  2008-11-06 00:00:00 2008-11-19 00:00:00 2008-11-24 00:00:00 -0.1052     13        10        3
3  2011-07-29 01:00:00 2011-08-05 01:00:00 2011-09-14 01:00:00 -0.0931     33         6       27
4  2011-11-09 00:00:00 2011-11-23 00:00:00 2011-12-07 00:00:00 -0.0605     20        11        9
5  2009-01-30 00:00:00 2009-02-20 00:00:00 2009-03-09 00:00:00 -0.0563     26        15       11
6  2012-05-07 01:00:00 2012-05-17 01:00:00 2012-06-28 01:00:00 -0.0562     38         9       29
7  2008-08-29 01:00:00 2008-09-08 01:00:00 2008-09-19 01:00:00 -0.0530     15         6        9
8  2009-07-14 01:00:00 2009-08-03 01:00:00 2009-09-16 01:00:00 -0.0520     46        15       31
9  2007-07-11 01:00:00 2007-08-02 01:00:00 2007-09-14 01:00:00 -0.0512     47        17       30
10 2008-06-20 01:00:00 2008-07-14 01:00:00 2008-07-23 01:00:00 -0.0505     23        16        7
Per quel che può valere, quindi, trovo che lo Sharpe sia interessante, ma in realtà la misura mi pare sia fin troppo viziata dal calo brusco che hai impartito alla volatilità, che di suo non è una buona misura di rischio.

Vale comunque la pena notare la riduzione dei draw down e dell'ES, ma mi trovo d'accordo con pprllo: valutando le due equity che compongono la strategia separatamente, sembra un TS che lavora long/short; in questi casi occhio ai costi e all'effettiva realizzabilità :rolleyes:

Grazie Cren, devo essere sincero ero un pò deluso perchè avevo sottostimato le inefficienze dello spread Bid-Ask che PRLLO giustamente mi ha fatto osservare. E quindi il rendimento medio scende molto, ero stato molto attento allo Slippage, un pò meno ai costi di transazione, ma ammetto che lo Spread lo avevo sottovalutato.

Però anche nello spread avevo fatto un errore, cioè avevo considerato uno scostamento medio di 6.67*(10^-4), invece ora che sono su IB sto vedendo che in media è ca. la metà. Non solo ma il portafoglio non verrà cambiato per l'intero ammontare ogni giorno ma al massimo per il 50%.

Questo mi fa ancora sperare.


una considerazione importante, tu parli di modello "ottimizzato" ma ciò che ho postato non sono i rendimenti della parte ottimizzata della serie storica (da 3000-1500) sono in realtà i rendimenti ottenuti da (1500 a 0) a parametri costanti ottenuti nella precedente ottimizzazione.
 
...tu parli di modello "ottimizzato" ma ciò che ho postato non sono i rendimenti della parte ottimizzata della serie storica (da 3000-1500) sono in realtà i rendimenti ottenuti da (1500 a 0) a parametri costanti ottenuti nella precedente ottimizzazione.
Avevo frainteso, allora.

Quindi ho analizzato risultati esclusivamente out of sample?

In questo caso il risultato (sempre che, giova ripeterlo, non vi siano errori di logica e/o programmazione) è sicuramente interessante, ma anche molto molto sospetto.

Due note a magine, considerali degli spunti o dei suggerimenti:
  1. se usi un linguaggio potente e flessibile come Matlab, non sei necessariamente vincolato a fare un back test con la classica modalità in sample vs. out of sample, bensì puoi condurre il back test con la modalità computazionalmente più onerosa ma anche più flessibile della c.d. "expanding window". Si tratta di costruirti una apposita funzione che svolga al suo interno tutto il processo di ottimizzazione e che restituisca, come unico output, il segnale di ingresso e/o di uscita. Quando hai questa funzione, con un ciclo for() e tre righe di codice per salvarti i risultati delle iterazioni puoi facilmente simulare quello che sarebbe successo se tu, giorno dopo giorno, avessi lanciato la tua ottimizzazione con tutti i dati disponibili fino a quel momento, applicando poi i segnali a partire dal giorno successivo. Sono due anni che non uso più Matlab, per cui non ti saprei aiutare a scrivere esattamente il codice (ma mi sembra strano che i tuoi due Ph.D. in Fisica non se le mangino a colazione queste cose), tuttavia non me lo ricordo così diverso da R, dove questo genere di cose sono estremamente semplici da scrivere;
  2. nessuno te lo ha ancora detto chiaramente, ma il time frame giornaliero per un sistema che lavora su più sottostanti cambiandone in via continuativa le proporzioni... è insostenibile. I costi di transazione per tenere le proporzioni sono massacranti, molto più di quello che puoi stimare e/o ipotizzare. Passare al settimanale è comunque tosto e difficile da replicare. Dal mensile in su, per mia esperienza, è a portata di retail volenteroso.
Secondo me è presto per andare a mercato.
 
lo spread Bid-Ask è ca. (3.67*(10^(-4)) = 0.00067

i costi di transazione sono (3.5*(10^(-3)) /share = 0.0035

immaginiamo un capitale di 100,000 $, un prezzo medio di 30$/share.

Si ha:

Rendimento lordo = 100,000 * 0.00112 = 112 $

costi di transazione = 100,000/30 = 3333 * 0.0035 = 11.6$

inefficienza spread Bid-Ask = 100,000/30 = 3333*0.02 = 66,66$

Rendimento netto medio atteso = 112-11.6-66.66 = 34$

Ho scritto i calcoli così li controllate :D


Cren ti ringrazio delle informazioni che hai dato, li guarderò con maggiore attenzione stasera.

Vorrei chiederti se possibile anche una tua valutazione sul modello ottimizzato con la nuova metrica, perchè le conclusioni a cui ero giunto io da un punto di vista qualitativo sostanzialmente coincidono con le tue a cui sei arrivato in termini quantitativi per quanto riguarda il modello non ottimizzato.

Mi aspetto che però il modello ottimizzato con la nuova metrica ha una maggiore spendibilità anche se con un ritorno minore, ma chiedo sempre una opinione più tecnica.

Grazie ancora.

Ho fatto un errore nel calcolo del costo dello spread, effettivamente è alto ca. 66$ su 112. Mi sembra eccessivo, stasera saprò effettivamente quanto è.

Se fosse così la strategia non sarebbe così performante.
Ecco, come vedi rischi decisamente più del 15%. Gli spread e gli slippage li hai calcolati su valori medi generici o su raccolti in condizioni affini a quelle in cui andrai poi effettivamente a fare trading ? Anche quello è molto significativo.

PS: Hai scritto
"
lo spread Bid-Ask è ca. (3.67*(10^(-4)) = 0.00067
"
?

Comunque è fondamentale che fai una metrica del turnover prodotto dal sistema, cioè quanto capitale movimenti mediamente al giorno.

Anzi addirittura oserei proporre (prego i presenti del forum di non bastonarmi a morte :D), fai una metrica del turnover, ottimizza rendimento*(rendimento/turnover) e facci vedere cosa esce fuori.
 
Ultima modifica:
Crengi, fallo tu che sei Ingegnere l'esercizio che volevo dare a PPrllo

"scrivere una funzione che rappresenti lo "slippage""

"chiedersi se essa è la migliore rappresentazione possibile della liquidità"

(così alla fine la trasmetti anche all'assistente nei tempi di Benigno..e magari abbandona l'MPI (che un Roll appena più profondo))

ps: chiedersi perchè non la si usa viene dopo.

Vai Crengi!
IngegnIere sono pure io, ma di finanza non ne capisco il 10% di Cren, infatti non sono sicuro neanche di aver capito la domanda. :D

Se mi chiedi di "rappresentare la liquidità", non so nemmeno dove mettere le mani, se mi parli di "funzione che rappresentare lo slippage", mi sembra di capire che tu intendi una funzione fatta per essere poi utilizzata nella stima del rendimento di un sistema simulato.

Se intendi questo allora farei così: inizierei a valutare le caratteristiche peculiari di esecuzione del sistema (Trada in un momento particolare della giornata ? Trada su qualche evento particolare ? Trada su particolari formazioni di prezzo ?), poi andrei a vedere che faccia ha il book in situazioni analoghe e stimerei lo slippage in caso di entrate, poi farei una media secca. Dopodichè valuto il valore che mi è uscito rispetto al profitto medio (post commissioni, post spread) per operazione: se è, che ne so, 1/10 o meno, mi sento relativamente tranquillo, se è 1/4 o giù di lì ho bisogno di un monitoraggio più attento, ecc. Se la situazione è tale da richiedere maggiore precisione poi, posso mettere il sistema virtualmente "a mercato", fare un'istantanea del book ogni volta che "sarei entrato" e con un certo numero di sample costruirmi delle stime leggermente più precise.

Ciò detto, io non sono sicuro neanche che abbiamo la stessa definizione di "slippage". Io per slippage intendo "differenza tra il top of the book ed il prezzo medio di settlement di un market order".
 
IngegnIere sono pure io, ma di finanza non ne capisco il 10% di Cren, infatti non sono sicuro neanche di aver capito la domanda. :D

Se mi chiedi di "rappresentare la liquidità", non so nemmeno dove mettere le mani, se mi parli di "funzione che rappresentare lo slippage", mi sembra di capire che tu intendi una funzione fatta per essere poi utilizzata nella stima del rendimento di un sistema simulato.

Se intendi questo allora farei così: inizierei a valutare le caratteristiche peculiari di esecuzione del sistema (Trada in un momento particolare della giornata ? Trada su qualche evento particolare ? Trada su particolari formazioni di prezzo ?), poi andrei a vedere che faccia ha il book in situazioni analoghe e stimerei lo slippage in caso di entrate, poi farei una media secca. Dopodichè valuto il valore che mi è uscito rispetto al profitto medio (post commissioni, post spread) per operazione: se è, che ne so, 1/10 o meno, mi sento relativamente tranquillo, se è 1/4 o giù di lì ho bisogno di un monitoraggio più attento, ecc. Se la situazione è tale da richiedere maggiore precisione poi, posso mettere il sistema virtualmente "a mercato", fare un'istantanea del book ogni volta che "sarei entrato" e con un certo numero di sample costruirmi delle stime leggermente più precise.

Ciò detto, io non sono sicuro neanche che abbiamo la stessa definizione di "slippage". Io per slippage intendo "differenza tra il top of the book ed il prezzo medio di settlement di un market order".


La parte grassettata non mi da molte informazioni ma:


Un ingegnere attraversava la via quando una rana lo chiamo' e gli disse: "Se tu mi baci, io mi trasformero' in una magnifica principessa."
Lui si abbasso', raccolse la rana e la mise in tasca.
La rana gli disse allora :"Se tu mi baci, io mi trasformero' in una magnifica principessa e restero' cosi' per una settimana."
L'ingegnere tiro' fuori la rana dalla tasca, le fece un sorriso e la rimise in tasca. La rana si mise allora a gridare:
"Se tu mi baci, io mi trasformero' in una magnifica principessa, restero' cosi' per una settimana e faro' TUTTO quello che vuoi."
Ancora una volta, l'ingegnere tiro' fuori la rana dalla tasca, le fece un sorriso e la rimise in tasca.
La rana allora gli chiese: "Che cosa c'e'? Ti dico che sono una magnifica principessa, che restero' cosi' per una settimana e che faro' tutto quello che vuoi! Allora perche' tu non mi baci?"
L'ingegnere rispose: "Guardami, io sono un ingegnere. Non ho tempo per avere una relazione. Al contrario, una rana che parla, e' una figata."



può per favore tradurmi con notazione matematica quello che lei intende come "slippage".

Suggerimento, la faccia semplice. Cosa è lo slippage veramente ?

Poi, quando è sicuro me lo spari sotto forma di funzione.

:)
 
Dal lato dei rendimenti (per trade) è:
Slippage = (Rendimento ideale con costi) - (Rendimento reale)
Dal lato dell'esecuzione (per ordine eseguito) è:
Slippage = ABS[(Miglior prezzo al momento dell'esecuzione) - (Prezzo effettivo dell'esecuzione)]
Dal lato del book (slippage che mi aspetto prima di eseguire) è:
Sia Pi la serie ordinata dei prezzi dal migliore al peggiore.
Sia Qi la serie delle quantità corrispondente ai suddetti prezzi
Sia P(x) la funzione del prezzo locale
P(x) = P0 per 0 < x <= Q0, Px = {Pi per Q(i-1) <= x <= Qi} per i da 1 a I.
Slippage = ABS(P0 - Integrale(P(x)dx, da 0 a Q)/Q)

Poi in particolare se uno trada in mercati "movimentati" c'è anche uno slippage dipendente, per dire, dal tempo di esecuzione, ma quello non saprei quantificarlo se non empiricamente, anche se c'è di buono che essendo meno volume-dipendente dovrebbe essere possibile valutarlo in prima approssimazione senza spendere molto.
 
Dal lato dei rendimenti (per trade) è:
Slippage = (Rendimento ideale con costi) - (Rendimento reale)
Dal lato dell'esecuzione (per ordine eseguito) è:
Slippage = ABS[(Miglior prezzo al momento dell'esecuzione) - (Prezzo effettivo dell'esecuzione)]
Dal lato del book (slippage che mi aspetto prima di eseguire) è:
Sia Pi la serie ordinata dei prezzi dal migliore al peggiore.
Sia Qi la serie delle quantità corrispondente ai suddetti prezzi
Sia P(x) la funzione del prezzo locale
P(x) = P0 per 0 < x <= Q0, Px = {Pi per Q(i-1) <= x <= Qi} per i da 1 a I.
Slippage = ABS(P0 - Integrale(P(x)dx, da 0 a Q)/Q)

Poi in particolare se uno trada in mercati "movimentati" c'è anche uno slippage dipendente, per dire, dal tempo di esecuzione, ma quello non saprei quantificarlo se non empiricamente, anche se c'è di buono che essendo volume-indipendente dovrebbe essere possibile valutarlo senza spendere molto.

E come farà a tendere a zero lo sa solo lei.

Allora, l'ha fatta complicata..e questa volta ha ragione PGiulia (solo x questa volta)

Non deve fare assunzioni sullo slippage, dipende dalla voloatilità, dalla liquidità e dagli agenti che insistono sul sottostante che va a colpire.

Le allego, ma lei che è intelligente deve attualizzarlo ai tempi moderni, la bibbia dello slippage.

Se il simulatore che dice PGiulia è efficace (io non lo consco assolutamente), deve simulare e tirar fuori un valore che non tende per nulla a zero e non è per nulla stazionario (ma queste sono mie deduzioni).

Per il TS, ripeto..ne ho viste troppe di quelle equity riferite a quegli anni..non va (altro mio parere personale)

;)

Legga la Bibbia, vale 2cm se si legge con attenzione.

Anzi,andrebbe messo tra i papers in rilievo..ora vedo se si può fare da non moderatore.
 
Dal lato dei rendimenti (per trade) è:
Slippage = (Rendimento ideale con costi) - (Rendimento reale)
Dal lato dell'esecuzione (per ordine eseguito) è:
Slippage = ABS[(Miglior prezzo al momento dell'esecuzione) - (Prezzo effettivo dell'esecuzione)]
Dal lato del book (slippage che mi aspetto prima di eseguire) è:
Sia Pi la serie ordinata dei prezzi dal migliore al peggiore.
Sia Qi la serie delle quantità corrispondente ai suddetti prezzi
Sia P(x) la funzione del prezzo locale
P(x) = P0 per 0 < x <= Q0, Px = {Pi per Q(i-1) <= x <= Qi} per i da 1 a I.
Slippage = ABS(P0 - Integrale(P(x)dx, da 0 a Q)/Q)

Poi in particolare se uno trada in mercati "movimentati" c'è anche uno slippage dipendente, per dire, dal tempo di esecuzione, ma quello non saprei quantificarlo se non empiricamente, anche se c'è di buono che essendo meno volume-dipendente dovrebbe essere possibile valutarlo in prima approssimazione senza spendere molto.

ringrazio per le dritte, ma sono impegnato a mettere tutto online così vedo con i miei occhi, i trade sono registrati da terze parti, i costi sono quelli che sono e così se la strategia è troppo onerosa semplicemente verrà accantonata.

vi terrò aggiornati.
 
Mi sembrerebbe un tantino troppo semplicistico che un hedge fund finisse per usare qualcosa di così semplice: quando penso ad un hedge fund, anche al più scalcinato, penso alla raccolta, all'analisi e all'utilizzo di dati che non sono reperibili per via convenzionale (ovvero: accendo Bloomberg e tiro giù lo storico).

Medie mobili "adattive" sono strumenti che non so quanto uso possano avere al di fuori di una serie di prezzi, anche perchè sono sempre scettico su come la presunta "adattività" è ottenuta :)


Ti rispondo adesso che ho tempo.

L'anno scorso alla fiera di Rimini un grosso broker istituzionale ha presentato un prodotto definito "quantitativo" che si basava su medie mobili con tanto di relativa spiegazione del perchè faceva bene nei periodi ad alta persistenza e volatilità mentre nei "laterali"no....... :rolleyes:

Sulle medie adattive ti do in parte ragione, personalmente non le utilizzo preferendo altri predittori secondo me piu efficaci, ma l'idea di adottare le medie alla volatilità può trovare un miglioramento delle performance rispetto alla medie mobili convenzionali anche se non le rende immuni al problema della latenza e dei falsi segnali soprattutto quando il sottostante non le "aiuta".
 
L'anno scorso alla fiera di Rimini un grosso broker istituzionale ha presentato un prodotto definito "quantitativo" che si basava su medie mobili con tanto di relativa spiegazione...
Ma penso e spero che siamo d'accordo quando affermiamo che ciò che era venduto e pubblicizzato non era una strategia quantitativa per fare soldi sui mercati... bensì una strategia quantitativa per far aprire nuovi conti, per far iscrivere a servizi "premium" più costosi e per generare molti più segnali di ingresso & uscita in modo da far lievitare il numero di operazioni e le commissioni.

Ti sono sufficienti meno di una mezza dozzina di ragazzi freschi di studi quantitativi, un paio di programmatori e un capo con un poco di furbizia per sviluppare a cadenza costante sempre nuove black box da pubblicizzare e vendere come il nuovo Santo Graal.

Anzi, ti direi che il numero di prodotti per generare segnali che puoi inventare e vendere, se hai dei buoni venditori, è praticamente sterminato: se oggi siamo ancora alle medie mobili che cambiano il periodo in funzione della volatilità stimata, direi che siamo potenzialmente seduti soltanto sulla punta di un iceberg di dimensioni inaudite.

Considera che il campo di applicazione e le possibilità dei metodi quantitativi, dal data mining all'analisi delle serie storiche passando per il machine learning e il risk management, sono talmente vasti (e così poco conosciuti al pubblico nei loro grandi limiti) che saranno solo gli appetiti del frequentatore medio di Rimini & c. a determinare quanto rapidamente saranno saccheggiati per far produrre alla clientela il maggior numero possibile di ordini.

L'unica cosa che può salvarci è che, se da un lato è facile trovare fantasmagorici docenti della media mobile che riempiono le sale congressi, dall'altro non è così immediato generare appeal per le lezioni di statistical learning theory di Andrew Ng :D
 
E come farà a tendere a zero lo sa solo lei.

Allora, l'ha fatta complicata..e questa volta ha ragione PGiulia (solo x questa volta)

Non deve fare assunzioni sullo slippage, dipende dalla voloatilità, dalla liquidità e dagli agenti che insistono sul sottostante che va a colpire.

Le allego, ma lei che è intelligente deve attualizzarlo ai tempi moderni, la bibbia dello slippage.

Se il simulatore che dice PGiulia è efficace (io non lo consco assolutamente), deve simulare e tirar fuori un valore che non tende per nulla a zero e non è per nulla stazionario (ma queste sono mie deduzioni).

Per il TS, ripeto..ne ho viste troppe di quelle equity riferite a quegli anni..non va (altro mio parere personale)

;)

Legga la Bibbia, vale 2cm se si legge con attenzione.

Anzi,andrebbe messo tra i papers in rilievo..ora vedo se si può fare da non moderatore.
Guarda, sono assolutamente d'accordo, e ci aggiungo un punto *rilevantissimo* che quel paper evidenzia, ovvero l'efficienza operativa del broker.

Diciamo che in un caso ideale di:
- Size paragonabile ai volumi presenti in "top of book"
- Esecuzione ottimale da parte del broker
- Trading non concentrato in condizioni di mercato "particolari" (es spike, apertura, ecc.)

In tal caso si può sperare di approssimare decentemente uno slippage medio nullo.

Tuttavia condivido assolutamente che queste ipotesi sono molto forti e quindi è sicuramente meglio valutare empiricamente lo slippage, per cui ribadisco il punto di prima, in prima analisi sarebbe meglio valutare lo "spessore" del book campionandolo in simulazione e valutare le altre variabili eseguendo trade a mercato di piccolo volume (nella mia esperienza questo tipo di problemi tendono a presentarsi anche a volumi bassi, anche se ovviamente volumi più alti le amplificano), o almeno questa è la soluzione "bassissimo costo" più efficace che conosco.

Dopodichè ovviamente anche con sistemi già a mercato un monitoraggio costante è d'obbligo, dato che tra l'altro lo slippage tipico cambia con la struttura fine del mercato che spesso cambia parecchio nel tempo.
 
non ero scomparso, ma causa impegni di lavoro solo stamane ho risolto i problemi tecnici per rendere tutto automatico. Io ritengo che per essere molto vicini alle condizioni al contorno in cui vengono fatte le prove della strategia bisogna robotizzare ogni aspetto nel reale. Sopratutto se come avete osservato la mia strategia è molto swing.

Da stamane ho cercato di capire invece quale delle due strutture dei prezzi proposte da IB è più conveniente, ne ho scelta una ma nell'incertezza su quale sia la migliore ho settato il paper ad 1.000.000 $ :D, in modo tale da rendere i costi di transazione meno influenti sul rendimento.

Anche se da prime operazioni di prova ho notato che le commissioni su 30.000$ sono state ca. 2 dollari, con la struttura dei prezzi flat.

Per quanto riguarda lo spread bid-ask è ca. la metà di quanto avevo ipotizzato all'inizio, e cmq si dovrebbe riferire a ca. il 40% del capitale movimentato ogni giorno.

la velocità di esecuzione estremamente rapida (meno di 1 sec per 175.000$) dovrebbe praticamente annullare lo slippage.

Non vedo l'ora di cominciare la prova definitiva.
 
Avevo frainteso, allora.

Quindi ho analizzato risultati esclusivamente out of sample?

In questo caso il risultato (sempre che, giova ripeterlo, non vi siano errori di logica e/o programmazione) è sicuramente interessante, ma anche molto molto sospetto.

Due note a magine, considerali degli spunti o dei suggerimenti:
  1. se usi un linguaggio potente e flessibile come Matlab, non sei necessariamente vincolato a fare un back test con la classica modalità in sample vs. out of sample, bensì puoi condurre il back test con la modalità computazionalmente più onerosa ma anche più flessibile della c.d. "expanding window". Si tratta di costruirti una apposita funzione che svolga al suo interno tutto il processo di ottimizzazione e che restituisca, come unico output, il segnale di ingresso e/o di uscita. Quando hai questa funzione, con un ciclo for() e tre righe di codice per salvarti i risultati delle iterazioni puoi facilmente simulare quello che sarebbe successo se tu, giorno dopo giorno, avessi lanciato la tua ottimizzazione con tutti i dati disponibili fino a quel momento, applicando poi i segnali a partire dal giorno successivo. Sono due anni che non uso più Matlab, per cui non ti saprei aiutare a scrivere esattamente il codice (ma mi sembra strano che i tuoi due Ph.D. in Fisica non se le mangino a colazione queste cose), tuttavia non me lo ricordo così diverso da R, dove questo genere di cose sono estremamente semplici da scrivere;
  2. nessuno te lo ha ancora detto chiaramente, ma il time frame giornaliero per un sistema che lavora su più sottostanti cambiandone in via continuativa le proporzioni... è insostenibile. I costi di transazione per tenere le proporzioni sono massacranti, molto più di quello che puoi stimare e/o ipotizzare. Passare al settimanale è comunque tosto e difficile da replicare. Dal mensile in su, per mia esperienza, è a portata di retail volenteroso.
Secondo me è presto per andare a mercato.

Trovo interessante l'analisi expanding window, ho sviluppato un algoritmo simile, ma con time frame più ampio del daybyday.

Volevo considerare però l'ultima osservazione quella sul costo dell'implementazione di una strategia con time frame giornaliero. (non ho cmq capito quando intendi "retail volenteroso" :D)

In merito al time frame osservo che se è vero che i costi di transazione sono elevati quanto più esso si restringe, è vero anche che se si vuole ottenere dei rendimenti migliori della media o cmq di un benchmark non si può che restringere il time frame. L'HFT nasce da questa esigenza, la volatilità è come una enorme miniera d'oro ma è difficile estrarre il metallo pregiato.

Personalmente ritengo che non ci si può sottrarre alla dittatura del time frame basso o bassissimo.

PS
Cosa stai usando al posto del Matlab?
 
R per i codici e RExcel per i "cruscotti".

ti è mai capitato di utilizzare la Pattern Analysis sui modelli predittivi?

Ho utilizzato questo procedimento ed il risultato è stato estremamente positivo in pratica tale analisi mi ha consentito di osservare come il trading system ottenesse il 90% del rendimento nelle fasi di Vix compreso tra 20 e 33, mentre sotto non il rendimento è nullo, mentre sopra il sistema non funzionava.

Poichè non ho visto in questa sezione parlare di tale procedimento, prendetelo come un suggerimento.

Questa tecnica estremamente robusta può consentire di osservare in che condizioni un modello predittivo funziona e quando non funziona da un punto di vista statistico. E' quel genere di statistica "grossolana" che amo.
 
ti è mai capitato di utilizzare la Pattern Analysis sui modelli predittivi?

Ho utilizzato questo procedimento ed il risultato è stato estremamente positivo in pratica tale analisi mi ha consentito di osservare come il trading system ottenesse il 90% del rendimento nelle fasi di Vix compreso tra 20 e 33, mentre sotto non il rendimento è nullo, mentre sopra il sistema non funzionava.

Poichè non ho visto in questa sezione parlare di tale procedimento, prendetelo come un suggerimento.

Questa tecnica estremamente robusta può consentire di osservare in che condizioni un modello predittivo funziona e quando non funziona da un punto di vista statistico. E' quel genere di statistica "grossolana" che amo.


Robusta una fava.
 
Robusta una fava.

intendo robusta nel senso che pur non dandoti una precisione estrema ti consente di visualizzare alcune correlazioni.

il fatto è che mi fa paura l'idea di stimare con precisione, ho la sensazione che più mi voglio avvicinare alla precisione più mi allontano dal risultato.

ma il mio è appunto solo un pensiero.
 
prime impressioni dal primo trade.

Tra costi di transazione e spread bid e ask se ne vanno 100$ sul capitale transato di 175.000$ con un rendimento atteso di 0,00112*175.000$cioè circa 196$,se ne va cioè ca. il 55% del rendimento atteso.

Domani dovrei avere settato sia la nuova struttura dei prezzi sia simulare un capitale più ampio.

La cosa buona è che almeno la piattaforma funziona.
 
Indietro