-
16-09-16, 17:43 #1
- Data Registrazione
- May 2010
- Messaggi
- 47
DAX 1m 80% profitable e 3,3 di profit factor: dove sbaglio?
buongiorno,
da qualche tempo mi sto cimentando nei TS. Mi "alleno" prendendo parecchio spunto dai meravigliosi post di questo forum.
Ad esempio ho provato a mettere il TRIX "alla APO" (che "vede" la pendenza) con il supertrend.
Ho ottimizzato il tutto sul dax a 1 m (3000barre) e il risultato non sembra affatto male ma ho qualche domanda da porre.
Dal punto di vista statistico, è valido questo backtest?
come potrei migliorare l'efficienza di entrata e uscita, unico valore ancora sotto gli standard di Tiziano Cagalli? (>80%)
il valore ottimizzato migliore di takeprofit è 80 ma sembra basso. Con impostato "80" mi restituiva un profit factor che supera 15: avendo il dubbio che non fosse un dato realistico l'ho portato a 200, ho fatto bene?
Il binomio trix supertrend, credo proprio per la semplicità, funziona anche sullo stoxx (1m) ma peggiora tantissimo a TF più alti. Qualcuno ha suggerimenti per "rifinire" il codice?Ultima modifica di framzero; 16-09-16 alle 17:49
-
16-09-16, 18:27 #2
Il risultato è assolutamente reale perchè il tuo sistema lavora in take profit e quindi quel determinato prezzo lo ha fatto veramente e non importa quando (nel time frame selezionato) poichè non è un Trailing stop che risente della differenza temporale dei prezzi che si trovano sulla stessa barra.
L'unico fatto che non è certo è se il TUO contratto sarebbe stato eseguito, ovvero se messo sul book dal sistema, ha avuto o meno il tempo di essere eseguito.
Per ovviare a questo dubbio meglio inserire un valore di slippage (così si chiama la differenza tra il prezzo inviato e quello eseeguito).
Mettine uno peggiorativo, magari osservando la velocità di contrattazione del book e così sei tranquillo che se dovesse andare diversamente....andrebbe soloo meglio!..se corri dietro a due lepri, non ne prendi nemmeno una.
-
16-09-16, 20:38 #3
- Data Registrazione
- May 2010
- Messaggi
- 47
-
17-09-16, 13:14 #4
1 punto di slippage è realistico su tutti e tre i future.
In pratica scrivendo 1 tick di slippage significa che potresti inviare l'ordine di uscita a Market perdendo così lo spread tra bid e ask che è appunto di 1 tick.
Se il tuo sistema prevede l'entrata "così o peggio" e uscita "così o meglio" (ordine stop in entrata e ordine limite in uscita) allora la valutazione ad 1 tick è valida, lo è un pò meno se entrambe le condizioni sono dello stesso tipo poichè:
- nel caso di ordine limite potresti non essere servito perchè il prezzo viene fatto ma non vengono scambiati contratti sufficienti per essere serviti e quindi potresti, nello scenario reale non essere nemmeno a mercato oppure non essere uscito;
- nel caso di ordine stop hai la certezza di essere sia entrato che uscito ma allora devi inserire uno slippage di 2 tick. Sei tu che vai a colpire e non aspetti di essere eseguito.
Una uscita a target per essere veramente efficace dovrebbe essere calcolata appena entrati nel trade e posizionarsi nel book già al prezzo calcolato.
In pratica la condizione di uscita deve sempre essere vera al prezzo di entrata più il gain. In questo modo appena entri viene inviato l'ordine di uscita che è Limite.
Concludo, si fanno i backtest con le varie simulazioni e poi si prova un periodo di front test (mercato reale ma simulato) e si vede come e se aggiustare. Se il broker non permette un portafoglio simulato allora si prova con 1 azione su un titolo scambiato (qui però c'è il costo delle commissioni ma è un pedaggio che è meglio pagare piuttosto di trovarsi in difficoltà con contratti future di valore alto.)..se corri dietro a due lepri, non ne prendi nemmeno una.
-
19-09-16, 15:45 #5
- Data Registrazione
- May 2010
- Messaggi
- 47
visto che sei tanto disponibile...
Grazie mille per la spiegazione che mi ha chiarito molto. E' tutto oggi, però, che non capisco in che modo posso specificare il tipo di ordine in entrata e uscita con lo script. Sul manuale non vedo riferimenti... O forse mi sfuggono? Bisogna forse passare da un'altra funzione?
Grazie mille dei chiarimenti, sono veramente preziosi.
Non vedo l'ora di testare in front test questo TS.
Francesco
-
19-09-16, 17:50 #6
- Data Registrazione
- May 2010
- Messaggi
- 47
slippage
credo di avere un problema con lo slippage. Imposto 1 ma nel report mi segna 0. Come mai?
-
19-09-16, 18:39 #7
Ciao,
ti rispondo io perchè papà è fuori per qualche giorno: il discorso che fa Tiziano sui tipi di ordine riguarda l'operatività in manuale, che è quella che devi riprodurre il più fedelmente possibile in un TS. Per quanto riguarda gli ordini generati in automatico vengono sempre inviati ordine MARKET in modo da essere sicuro che l'ordine venga sempre eseguito (magari 1 tick o raramente 2 ticks peggio). Ed è proprio per questo motivo che nel backtest è presento lo slippage.
Ciao Ciao
-
19-09-16, 18:40 #8
Ciao,
questo è un piccolo bug che verrà risolto nella prossima release, i calcoli nella versione che usi tengono comunque conto dello slippage che imposti, è solo la visualizzazione nella scheda settings che ti mostra sempre 0.
Grazie della segnalazione.
Ciao Ciao
-
19-09-16, 19:36 #9
- Data Registrazione
- May 2010
- Messaggi
- 47
Ciao!
Grazie mille della risposta.
Domani pubblico il codice che è davvero striminzito... Ma che fa capire che coppia straordinaria formano Trix e Super Trend. Ottimizzando leggermente i periodi e take profit e profit loss mi da ottimi risultati su minidax 1 min, ftse 1 min, stoxx 1 min e stoxx 5 min (slippage 1 e senza traling percent). Dovrei migliorare le statistiche di uscita soprattutto, ma ci lavorerò. Ora il computer sta subendo lo sforzo di un'intera giornata di ottimizzazioni. XD
Grazie davvero per tutto.
Buona serata!
-
19-09-16, 23:53 #10
Ciao Fram, il miglior modo per testare una idea di trading che ha superato il backtest è il front test.
Il backtest è un arma a doppio taglio e si rischia quasi sempre di cadere nella trappola dell' overfitting.
Ci sono diversi modi di procedere per non incorrere in questo errore , alcuni dei quali anche piuttosto complessi e difficili da eseguire in manuale.
a me invece piace fare in questo modo molto semplice ma molto efficace e cioè:
Per allontanare il piu possibile la trappola della sovraottimizzazione dovresti far girare il tuo TS su segmenti IN SAMPLE e OUT SAMPLE dopodichè se le performance non degradano sensibilmente puoi anche decidere di andare a mercato reale. In buona sostanza, supponiamo che tu voglia testare ed ottimizzare il tuo TS sulle ultime 1500 barre, ebbene, questo è il periodo che chiamiamo IN SAMPLE in cui si va alla ricerca dei migliori parametri. Terminata questa fase di ricerca ti vai a selezionare a ritroso un altro segmento OUT SAMPLE di 1500 barre che il Ts non ha mai visto, quello che precede le prime 1500 dell' in sample e su di esso senza toccare niente fai girare il tuo TS e verifica i risultati. Se la equity che ottieni è abbastanza paragonabile a quella del periodo IN SAMPLE allora sei sulla buona strada e sei pronto per testarlo su un terzo periodo di 1500 barre ma questa volta in avanti ed in paper e se anche questa volta il ts supera il test allora potresti pensare di metterlo in real con una buona probabilità di ottenere gli stessi risultati e la sicurezza quantomeno di non averlo overfittato. Se fallisci una delle prime 2 fasi devi tornare indietro al primo punto e cercare altri parametri più stabili o addirittura modificare l'impianto di base
PS: fondamentale è la scelta del periodo IN SAMPLE di apprendimento del TS, esso deve replicare il piu possibile al suo interno i diversi andamenti del mercato e cioè lateralità, fase rialzista, fase ribassista, alta volatilità, bassa volatilità etc..
Spero di essermi spiegato
ApoUltima modifica di Apocalips; 20-09-16 alle 01:04
....non si desidera ciò che è facile ottenere (Ovidio)....