Trading su indici. Idea.

EbenezerScrooge

Nuovo Utente
Registrato
6/7/14
Messaggi
646
Punti reazioni
23
Basta con 'ste monete.

Dunque. L'idea è semplice che di più non si può. Backtestata da agosto 2004 ad oggi. Funziona così: mi prendo le 100 componenti più grosse di SP500 e giorno per giorno mi definisco due quantità:

X1 = numero di titoli (tra quei 100) che hanno aperto al rialzo rispetto alla chiusura di ieri.
X2 = media del ritorno percentuale tra l'apertura di oggi e la chiusura di ieri.

A questo punto fisso due soglie Th1 e Th2.

Se X1 > Th1 e X2 > Th2 entro long e chiudo 5 giorni dopo. Fine.

Va' che robina carina...

Untitled.jpg

In rosso c'è quello che avremmo entrando long tutti i giorni su SP500.

Da notare che funziona anche coi dati della precontrattazione se ci preoccupiamo dello slippage dell'ingresso, ma credo sia superfluo considerato che con un datafeed decente le 100 aperture si possono avere in mezzo secondo.
Altre controindicazioni che mi sfuggono?
 
Ultima modifica:
Basta con 'ste monete.

Dunque. L'idea è semplice che di più non si può. Backtestata da agosto 2004 ad oggi. Funziona così: mi prendo le 100 componenti più grosse di SP500 e giorno per giorno mi definisco due quantità:

X1 = numero di titoli (tra quei 100) che hanno aperto al rialzo rispetto alla chiusura di ieri.
X2 = media del ritorno percentuale tra l'apertura di oggi e la chiusura di ieri.

A questo punto fisso due soglie Th1 e Th2.

Se X1 > Th1 e X2 > Th2 entro long e chiudo 5 giorni dopo. Fine.

Va' che robina carina...

Vedi l'allegato 2664872

In rosso c'è quello che avremmo entrando long tutti i giorni su SP500.

Da notare che funziona anche coi dati della precontrattazione se ci preoccupiamo dello spippage dell'ingresso, ma credo sia superfluo considerato che con un datafeed decente le 100 aperture si possono avere in mezzo secondo.
Altre controindicazioni che mi sfuggono?

L'unica controindicazione che vedo è che l'apertura di un mercato è un momento molto sfuggente e cmq mai fare l'operazione at market in open perchè non è tanto lo slippage che ti fotte quanto lo spread. Lo spread ha andamento discendente dall Open al Close ed in Open ti becchi spread Bid-Ask elevatissimi in %. Il mio unico consiglio è eventualmente fare slittare l'Open alle ore 10:00 (16:00 in Italia) cioè mezz'ora dopo l'apertura dei mercati. In tal caso gli assestamenti sono già avvenuti e gli spread sono umani.
Poi l'Open di Wall Street è qualcosa di impressionante talmente è la pressione dietro che ha aggiustamenti paurosi nel primo minuto di contrattazione.
 
Strategia molto semplice, ma non testabile coi normali database retail....immagino che tu abbia già risolto il problema del Survivorship bias....



How do we prevent survivorship bias? It is easier said then done. In order to create a survivorship bias free data set of the S&P 500, we have to first know all of the historical constituents of the S&P 500 across our desired timeframe. Once we know all the constituents we can piece together a dataset using the historical price data of all the constituents during the time period they were in the S&P 500.

Unfortunately their are a few road blocks that make this data collection more difficult than one might expect. First of all, obtaining historical constituent data for the S&P 500 is hard. Current constituents can be scraped from Wikipedia, but finding historical constituents is nearly impossible without purchasing data. Second, once you know the historical constituents, finding pricing data can be difficult as well. Companies in the S&P 500 are periodically being renamed, being acquired, and some even going bankrupt. Free data sources like Yahoo Finance usually do not have data on de-listed stocks; historical ticker name changes are also not well documented.



Creating a Survivorship Bias-Free S&P 500 Dataset with Python * Teddy Koker
 
L'unica controindicazione che vedo è che l'apertura di un mercato è un momento molto sfuggente e cmq mai fare l'operazione at market in open perchè non è tanto lo slippage che ti fotte quanto lo spread. Lo spread ha andamento discendente dall Open al Close ed in Open ti becchi spread Bid-Ask elevatissimi in %. Il mio unico consiglio è eventualmente fare slittare l'Open alle ore 10:00 (16:00 in Italia) cioè mezz'ora dopo l'apertura dei mercati. In tal caso gli assestamenti sono già avvenuti e gli spread sono umani.
Poi l'Open di Wall Street è qualcosa di impressionante talmente è la pressione dietro che ha aggiustamenti paurosi nel primo minuto di contrattazione.
C'è anche da dire che i futures su sp500 sono molto liquidi. Lo spread bid-ask probabilmente gioca un ruolo marginale. Comunque, hai ragione, sarebbe molto interessante backtestare lo stesso ragionamento però dopo mezz'ora dall'apertura. Attualmente però non ho un datafeed che me lo permette. Ho una semplice licenza gratuita di Alpha Vantage, che per quanto ne so non fornisce dati storici orari o con granularità inferiore.

Strategia molto semplice, ma non testabile coi normali database retail....immagino che tu abbia già risolto il problema del Survivorship bias....



How do we prevent survivorship bias? It is easier said then done. In order to create a survivorship bias free data set of the S&P 500, we have to first know all of the historical constituents of the S&P 500 across our desired timeframe. Once we know all the constituents we can piece together a dataset using the historical price data of all the constituents during the time period they were in the S&P 500.

Unfortunately their are a few road blocks that make this data collection more difficult than one might expect. First of all, obtaining historical constituent data for the S&P 500 is hard. Current constituents can be scraped from Wikipedia, but finding historical constituents is nearly impossible without purchasing data. Second, once you know the historical constituents, finding pricing data can be difficult as well. Companies in the S&P 500 are periodically being renamed, being acquired, and some even going bankrupt. Free data sources like Yahoo Finance usually do not have data on de-listed stocks; historical ticker name changes are also not well documented.



Creating a Survivorship Bias-Free S&P 500 Dataset with Python * Teddy Koker

Questo discorso non fa una piega. Ma credo che non si applichi all'esempio, o comunque marginalmente. Il motivo è che noi non tradiamo le azioni ma l'indice. Cioè che l'azione sia sopravvissuta fino ad ora introduce un bias sull'azione ma a me interessa solo che abbia avuto un peso importante nell'indice. In realtà in questo senso il bias dovrebbe essere al contrario. Cioè se io eseguo il backtest (come ho fatto) con i 100 titoli che oggi sono i più pesanti in SP500 con l'idea di avere una predizione sull'indice in realtà sto sottostimando la performance di 20 anni fa perché 20 anni fa da un lato erano nell'indice ma dall'altro non erano i più pesanti probabilmente. Penso a tutti i titoli tech.
Comunque sì, è qualcosa di cui tenere conto in generale.
 
Interessante

Strategia trend following weekly... Sarei curioso di vedere la significatività dei beta in primis, sia con regressione semplice che magari in logit (prevedendo solo la direzione e non l'entità).
Secondo step, se e solo se X1 è significativo, mi procurerei un db privo di bias da testare. L'economia è cambiata tantissimo negli ultimi anni quindi gli impatti possono essere inattesi.
Last but least servono dati intraday.

É verissimo che in via di apertura i movimenti sono molto bruschi...ma per me, se la statistica confermasse le significatività, la strategia é tradabile...
 
Strategia trend following weekly... Sarei curioso di vedere la significatività dei beta in primis, sia con regressione semplice che magari in logit (prevedendo solo la direzione e non l'entità).
Secondo step, se e solo se X1 è significativo, mi procurerei un db privo di bias da testare. L'economia è cambiata tantissimo negli ultimi anni quindi gli impatti possono essere inattesi.
Last but least servono dati intraday.

É verissimo che in via di apertura i movimenti sono molto bruschi...ma per me, se la statistica confermasse le significatività, la strategia é tradabile...

Per i test di significatività nessun problema, però per il resto direi che non ho modo. Per me questo è un hobby, non manderò mai a mercato questa cosa. E per i dati storici intraday serve un datafeed professionale. Se però conosci un modo facile per reperirli sono tutt'orecchi.
 
Per i test di significatività nessun problema, però per il resto direi che non ho modo. Per me questo è un hobby, non manderò mai a mercato questa cosa. E per i dati storici intraday serve un datafeed professionale. Se però conosci un modo facile per reperirli sono tutt'orecchi.

Purtroppo non ho molto da suggerire sui dati intraday. L'unica fonte di dati utilizzabili è dukascopy che fornisce dati intraday ( ad 1 minuto) sugli ultimi tre anni. Credo che su Timeframe differenti la time series sia anche più lunga...

Detto ciò, dovesse funzionare, può sempre essere sfruttato in qualche modo.
 
Purtroppo non ho molto da suggerire sui dati intraday. L'unica fonte di dati utilizzabili è dukascopy che fornisce dati intraday ( ad 1 minuto) sugli ultimi tre anni. Credo che su Timeframe differenti la time series sia anche più lunga...

Detto ciò, dovesse funzionare, può sempre essere sfruttato in qualche modo.

Il modo migliore è continuare a monitorarlo sui dati futuri senza cambiare set di titoli. Dal poco che lo tengo d'occhio sta facendo faville. Comunque grazie mille per la dritta su dukascopy. Mi informo al più presto.
 
Il modo migliore è continuare a monitorarlo sui dati futuri senza cambiare set di titoli. Dal poco che lo tengo d'occhio sta facendo faville. Comunque grazie mille per la dritta su dukascopy. Mi informo al più presto.

A titolo informativo, anche per gli altri utenti, un modo per recuperare la composizione storica dell'indice s&p500, dal 2011 circa, è utilizzare i constituents dell'ETF iShares che pubblica la composizione su base giornaliera con tanto di storico.

Ciao!
 
Purtroppo sembra che questo dukascopy fornisca dati storici intraday solo per le valute. In effetti sembrava troppo bello averli gratis su sp500...
 
Purtroppo sembra che questo dukascopy fornisca dati storici intraday solo per le valute. In effetti sembrava troppo bello averli gratis su sp500...

Io invece ho provato su Apple in quanto i dati intraday che abbiamo sul server spesso non sono immediatamente manipolabili per i test e quindi speravo in una sorta di csv e devo dire che mi ha dato i dati al minuto ed arriva al tick per Apple. Però ho fatto solo una prova.
 
Io invece ho provato su Apple in quanto i dati intraday che abbiamo sul server spesso non sono immediatamente manipolabili per i test e quindi speravo in una sorta di csv e devo dire che mi ha dato i dati al minuto ed arriva al tick per Apple. Però ho fatto solo una prova.

Sull'indice intero hai modo?
 
prova qui

poi prova anche a non eseguire il venerdi
 
Ciao, una curiosità,

da cosa deriva "tengo 5 giorni"?

Hai provato come varia il profitto accorciando l'holding period?
Cioè con Hold = 1 o 2....

Chiedo perchè se il segnale dipende da cosa è successo tra la CLOSE del gg prima e l'OPEN di oggi, logica vorrebbe che estrinsecasse i maggiori effetti nella prima (al max le prime due) giornata operativa....
 
x1 è chiusura del giorno prima minore apertura di oggi del singolo titolo?

x2 è (apertura meno chiusura) diviso chiusura?

cos'è th1?
cos'è th2?
non ho capito e mi sento un po' stupido
 
Indietro