-
07-10-14, 21:06 #1
- Data Registrazione
- Dec 2009
- Messaggi
- 813
Ottimizzare gli ingressi OverSpread per rischiare la metà e guadagnare il doppio!
Molti penseranno che è una provocazione eppure questo è il risultato del backtest effettuato direttamente su beetrader con dati di mercato reali, come potete vedere dagli screen allegati nel primo caso ottengo un utile di 400€ con 8+8 trades mentre nell'altro caso raddoppio letteralmente il guadagno portandolo a 800€ e lo faccio con sole 3+2 trades, questo risultato l'ho ottenuto semplicemente filtrando i segnali di ingresso dati dallo Z-score totale.
Questo è lo screen ottenuto con ingressi a +/- 2 Z-Score (il crossing dello Z-score è evidenziato sull'indicatore con istogrammi rossi/verdi)
Questo l'equity standard dei due titoli
Questo è invece lo screen ottenuto con ingressi sempre a +/- 2 Z-Score ma questa volta la convalida del segnale di ingresso arriva dal TRIX (indicatore di momentum) che deve concorde con la direzione dello Z-Score (osservando gli ingressi standard sull'indicatore Z-score totale si vede molto bene l'effetto filtrante che ci evita ingressi short kamikaze)
Questa e la relativa equity (100% delle trade andate a segno)
Dite che mi sono complicato la vita per niente o vale la pena lavorarci ancora?
-
08-10-14, 10:11 #2
Quello che stai facendo tu NON è overSpread ma stai facendo trading su due sottostanti che magari hai trovato con la cointegrazione utilizzando però, e qui è la differenza,
lo scarto dalla media del loro singolo close
e non lo scarto dalla media del loro rapporto
Per chi odia la statistica :
Tu ed un tuo amico siete saliti su un autobus che andava a Rovigo, ma poi tu sei sceso e a Rovigo ci vai con la tua macchina e ogni volta che ti va, ti fermi a prendere un caffè.
Sempre a Rovigo arrivi ma non è la stessa cosa e magari manchi l'appuntamento con il tuo amico...se corri dietro a due lepri, non ne prendi nemmeno una.
-
08-10-14, 10:53 #3
- Data Registrazione
- Dec 2009
- Messaggi
- 813
Ciao Tiziano, la formula utilizzata calcola lo Z-score ottenuto dalla differenza dei due singoli Z-score, difatti se osservi il primo caso gli ingressi long/short partono contemporaneamente mentre nel secondo ritardo il trade in assenza di conferme al trend, forse non era chiaro nel mio post ma tutto il sistema è basato proprio su questo concetto! Copio la formula per maggiore chiarezza:
SET DiffZscore = GetGlobalVar(@IDA) - GetGlobalVar(@IDB) SET ZsTotal = ZScore(DiffZscore, @periods)
In questo post http://www.playoptions.it/vbforum/sh...lobalVar/page2 ho evidenziato i problemi dovuti ad errori di approssimazione che introduce questa formula ed eventuali rimedi (che ancora non ho trovato) in proposito se qualcuno volesse dare il suo contributo ringrazio in anticipo!Ultima modifica di CIVT; 08-10-14 alle 11:28
-
08-10-14, 11:50 #4
Ciao CIVT, da quello che leggo in questo tuo post e anche nell' altro, mi sembra di capire che stai interpretando non correttamente il grafico dello z-score totale che poi è il motore e l'essenza dell' overspread.
Esso non è ottenuto dalla differenza degli z-score dei 2 singoli asset ma si riferisce sostanzialmente allo z-score dello spread, ovvero, come ti ha risposto Tiziano, allo scarto dalla media del rapporto dei singoli close.
Se vuoi riprodurre in easy script queso grafico non devi fare alto che calcolare lo z-score dello spread.
Apo....non si desidera ciò che è facile ottenere (Ovidio)....
-
08-10-14, 12:16 #5
- Data Registrazione
- Dec 2009
- Messaggi
- 813
Grazie Apo, sei sempre gentilissimo, questo ho provato a calcolarlo in prima battuta usando come vettore dello Z-Score a 250 a periodi la differenza dei due CLOSE ma l'errore che introduco è ancora elevato forse per il discorso dell'indicizzazione che faceva MAX?...in questo caso siamo a ZS=2.1 quando dovrebbe essere 2.7
Copio anche il codice easy-script per eventuali correzioni
Codice per la variabile esterna del primo asset (lo stesso vale per il secondo asset ovviamente con @IDA(2))
INPUTS: @price(CLOSE), @lowMark(-2), @highMark(2), @IDA(1) SET ZS = CLOSE SetGlobalVar(@IDA, ZS) set PLOT1 = ZS set plot2 = @lowMark set plot3 = @highMark
Codice per il calcolo dello Z-Score totale
INPUTS: @ZsLow(-2), @ZsHigh(2), @zero(0.0001), @periods(250), @IDA(1), @IDB(2) set PLOT1 = ZScore(GetGlobalVar(@IDA) - GetGlobalVar(@IDB), @periods) set plot2 = @ZsLow set plot3 = @ZsHigh SET PLOT4 = @zero
Ultima modifica di CIVT; 08-10-14 alle 13:41