Discussione: Divergenze tra Strategy in Real e Backtest su TS
-
12-10-13, 01:01 #31Senior Member



- Data Registrazione
- Oct 2009
- Messaggi
- 566
-
12-10-13, 01:13 #32Senior Member



- Data Registrazione
- Apr 2010
- Messaggi
- 800
I risultati sono completamente e stranamente diversi...
La stessa Strategia su Beep dava dopo l' ottimizzazione un guadagno netto e una Equity accettabile.... (Ovviamente essendo solo due medie mobili che si intersecano non si puo' pretendere molto), ma il risultato era soddisfacente..
In Visual Trader invece lo stesso incrocio, con le stesse modalita' ha dato dei risultati quasi disastrosi...
Quindi i risultati sono completamente diversi anche se gli Incroci graficamente sono identici...
Ricordo per onore di cronaca che Visual Trader ha parecchi anni dietro le spalle e decine di Patch, all' inizio era anche lui impreciso, poi piano piano sta' diventando molto affidabile...
Per Beep dalle mie prove fatte c'e da lavorarci ancora e patcharlo per bene... i sitstemi prima di metterli in Real io li spremo parecchio..
Attendo fiducioso.... e spero che queste mie valutazioni di prove reali, serva ai programmatori di Playoptions di capire i problemi di questo nuovo programma..Ultima modifica di Thalos; 12-10-13 alle 01:17
--- Trend my Friend ---
-
12-10-13, 01:20 #33
Thalos, rifletti un attimo
Se usi il REF traslando tutto di una barra avrai gli stessi risultati che vedi nel backtest perchè tu forzi il trading system ad entrare all'open della barra corrente che equivale circa alla chiusura della barra precedente sulla quale viene verificata la condizione
Il passaggio cruciale che ti sta sfuggendo è che la verifica con il back test non la devi fare sullo stesso sistema che hai usato per il front test perchè altrimenti continuerai a vedere sempre 2 cose diverse.
In sintesi il paragone lo devi fare in questo modo:
per il back test ------> utilizzi il TS originale
per il front test-------> utilizzi il TS modificato con il REF
a questo punto confronti i risultati e avrai gli stessi livelli di ingresso e uscita salvo piccoli gap del cambio barra.
ApoUltima modifica di Apocalips; 12-10-13 alle 01:38
....non si desidera ciò che è facile ottenere (Ovidio)....
-
12-10-13, 01:37 #34Senior Member



- Data Registrazione
- Apr 2010
- Messaggi
- 800
Ok, perfetto, divido i Trading System in due uno per il BackTest senza il Ref (Originale), e l' altro da mettere sullo Strategy Real con il Ref ...
Spero che diano i risultati uguali o molto simili....--- Trend my Friend ---
-
12-10-13, 02:02 #35Senior Member



- Data Registrazione
- Oct 2009
- Messaggi
- 566
Quindi Apo, per il seguente script dunque il codice è:
per il backtest (evidenzio inverde sottolineato le 4 righe che sono differenti tra lo script per il backtets e il real time, cioè quelle dove devo applicare il REF)
Buy scripts
# Definiamo le variabili
INPUTS: @price(CLOSE), @BandPeriods(20, 10, 30, 1), @BigDev(1.6, 1, 3, 0.1), @SmalDev(0.83, 0.3, 0.9, 0.03), @matype(SIMPLE), @SLperiods(7)
SET BigTop = BollingerBandsTop(@price, @BandPeriods, @BigDev, @matype)
SET BigBottom = BollingerBandsBottom(@price, @BandPeriods, @BigDev, @matype)
SET SmallTop = BollingerBandsTop(@price, @BandPeriods, @SmalDev, @matype)
SET SmallBottom = BollingerBandsBottom(@price, @BandPeriods, @SmalDev, @matype)
SET SignalLine = LR(@price, @SLperiods)
# Primo Buy
CROSSOVER(SignalLine, BigBottom)
Sell Scripts
# Definiamo le variabili
SET BigTop = BollingerBandsTop(@price, @BandPeriods, @BigDev, @matype)
SET BigBottom = BollingerBandsBottom(@price, @BandPeriods, @BigDev, @matype)
SET SmallTop = BollingerBandsTop(@price, @BandPeriods, @SmalDev, @matype)
SET SmallBottom = BollingerBandsBottom(@price, @BandPeriods, @SmalDev, @matype)
SET SignalLine = LR(@price, @SLperiods)
# Primo Sell
CROSSOVER(BigTop,SignalLine)
Exit long script
# Definiamo le variabili
SET BigTop = BollingerBandsTop(@price, @BandPeriods, @BigDev, @matype)
SET BigBottom = BollingerBandsBottom(@price, @BandPeriods, @BigDev, @matype)
SET SmallTop = BollingerBandsTop(@price, @BandPeriods, @SmalDev, @matype)
SET SmallBottom = BollingerBandsBottom(@price, @BandPeriods, @SmalDev, @matype)
SET SignalLine = LR(@price, @SLperiods)
# Primo ExitLong
CROSSOVER(SmallBottom,SignalLine)
Exit short script
# Definiamo le variabili
SET BigTop = BollingerBandsTop(@price, @BandPeriods, @BigDev, @matype)
SET BigBottom = BollingerBandsBottom(@price, @BandPeriods, @BigDev, @matype)
SET SmallTop = BollingerBandsTop(@price, @BandPeriods, @SmalDev, @matype)
SET SmallBottom = BollingerBandsBottom(@price, @BandPeriods, @SmalDev, @matype)
SET SignalLine = LR(@price, @SLperiods)
# Primo ExitShort
CROSSOVER(SmallTop,SignalLine)
Per la strategia in real time, aggiungo il REF sostituendo alla riga: CROSSOVER(SmallTop,SignalLine),
la riga seguente: CROSSOVER(REF(SignalLine, 1), REF(BigBottom, 1)), ovvero (in tutto sono 4 sostituzioni che evidenzio perché le riporto in verde sottolineato):
Buy scripts
# Definiamo le variabili
INPUTS: @price(CLOSE), @BandPeriods(20, 10, 30, 1), @BigDev(1.6, 1, 3, 0.1), @SmalDev(0.83, 0.3, 0.9, 0.03), @matype(SIMPLE), @SLperiods(7)
SET BigTop = BollingerBandsTop(@price, @BandPeriods, @BigDev, @matype)
SET BigBottom = BollingerBandsBottom(@price, @BandPeriods, @BigDev, @matype)
SET SmallTop = BollingerBandsTop(@price, @BandPeriods, @SmalDev, @matype)
SET SmallBottom = BollingerBandsBottom(@price, @BandPeriods, @SmalDev, @matype)
SET SignalLine = LR(@price, @SLperiods)
# Primo Buy
CROSSOVER(REF(SignalLine, 1), REF(BigBottom, 1))
Sell Scripts
# Definiamo le variabili
SET BigTop = BollingerBandsTop(@price, @BandPeriods, @BigDev, @matype)
SET BigBottom = BollingerBandsBottom(@price, @BandPeriods, @BigDev, @matype)
SET SmallTop = BollingerBandsTop(@price, @BandPeriods, @SmalDev, @matype)
SET SmallBottom = BollingerBandsBottom(@price, @BandPeriods, @SmalDev, @matype)
SET SignalLine = LR(@price, @SLperiods)
# Primo Sell
CROSSOVER(REF(SignalLine, 1), REF(BigBottom, 1))
Exit long script
# Definiamo le variabili
SET BigTop = BollingerBandsTop(@price, @BandPeriods, @BigDev, @matype)
SET BigBottom = BollingerBandsBottom(@price, @BandPeriods, @BigDev, @matype)
SET SmallTop = BollingerBandsTop(@price, @BandPeriods, @SmalDev, @matype)
SET SmallBottom = BollingerBandsBottom(@price, @BandPeriods, @SmalDev, @matype)
SET SignalLine = LR(@price, @SLperiods)
# Primo ExitLong
CROSSOVER(REF(SignalLine, 1), REF(BigBottom, 1))
Exit short script
# Definiamo le variabili
SET BigTop = BollingerBandsTop(@price, @BandPeriods, @BigDev, @matype)
SET BigBottom = BollingerBandsBottom(@price, @BandPeriods, @BigDev, @matype)
SET SmallTop = BollingerBandsTop(@price, @BandPeriods, @SmalDev, @matype)
SET SmallBottom = BollingerBandsBottom(@price, @BandPeriods, @SmalDev, @matype)
SET SignalLine = LR(@price, @SLperiods)
# Primo ExitShort
CROSSOVER(REF(SignalLine, 1), REF(BigBottom, 1))
E I DUE SCRIPTS DEVONO ESSERE APPLICATI APPUNTO SEPARATAMENTE: IL PRIMO LO USO SOLO PER IL BACKTEST MENTRE IL SECONDO LO USO SOLO PER IL REAL TIME.
Ok Apo , attendo conferme, se naturalmente ti è possibile.
Intanto grazie per i tuoi suggerimenti dato che stò provando la stessa frustrazione di Thalos dovuto alla differenza tra il backtest e il real time.Ultima modifica di TFiutoT384; 12-10-13 alle 02:17
-
12-10-13, 10:43 #36Senior Member




- Data Registrazione
- Jan 2011
- Località
- Genova
- Messaggi
- 1,306
non trovate scomodo dover dichiarare le stesse variabili per 4 volte in ogni script come si usava nel vecchio Metastock?
oltre a doverle scrivere 4 volte bisogna poi ricordarsi di replicare per 4 anche eventuali modifiche sui 4 script, così giusto per dire
-
12-10-13, 13:06 #37
L'utilizzo di ref va bene ma non vanno bene gli argomenti del CROSSOVER in cui hai confuso i segnali del Bobao.
Se Tiziano mi autorizza pubblico il codice del Bobao completo ovvero quello che prevede tutte le regole di entrata e di uscita sulle varie bande.
ciao....non si desidera ciò che è facile ottenere (Ovidio)....
-
12-10-13, 14:01 #38Senior Member



- Data Registrazione
- Oct 2009
- Messaggi
- 566
Grazie Apo e sicuramente il corretto listato del BOBAO servirà più avanti perché credo che funzioni bene se ben ottimizzato ma per ora mi fermo: usare due script diversisui vari listati a seconda che si operi in backtest o in real time ha creato confusione.
Qui servirebbe davverò un video di spiegazione come quelli fatti per Fiuto pro.
Inoltre non posso importare uno storico, per cui un TS a 5 o 15 minuti testato su pochi giorni non mi da alcun TS realmente applicabile rischiando di lavorare a dei TS che poi su storici di maggiore durata rischiano di saltare e attualmente non vedo una data di rilascio di questa funzione per cui potrebbero passare mesi prima di operare su storici affidabili. Quindi mi metto in stand-by e attendo di vedere quando almeno ci sarà lo storico importabile.
A proposito, complimenti per il tuo TS supertrend+ema: funziona discretamente anche su altri sottostanti anche se l'ho usato solo con lo sop loss senza trailing stop o percent (sempre a 5 minuti e con solo due giorni di storico per cui la prudenza è d'obbligo). Penso che in reale dovrò utilizzare anche ref per replicare il backtest.Ultima modifica di TFiutoT384; 12-10-13 alle 14:27
-
12-10-13, 14:36 #39
-
12-10-13, 14:37 #40

Rispondi Citando

