ciao a tutti
mi servirebbe u aiuto a capire come corregge questo sistema di trading basato su OBV
dapprima ho creato questo indicatore per reverce trading :
/////////////////////////
ccishort= cci>100
ccilong= cci<-100
timeok= time>130000 and time < 220000
onbalashort= OBV(close)[1]> BollingerUp[20](obv)[1] and OBV(close)< BollingerUp[20](obv) and obv(close)>0
onbalalong = OBV(close)[1]< Bollingerdown[20](obv)[1] and OBV(close)> Bollingerdown[20](obv) and obv(close)<0
if ccishort and onbalashort and timeok then
signal=-1
elsif ccilong and onbalalong and timeok then
signal=1
else
signal=0
endif
return signal
////////////////////////////////
quindi il sistema che entra short con segnale -1 e viceversa per il lato long
condizione presente nell’indicatore è che per segnali short l OBV deve essere POSITIVO e viceversa deve essere NEGATIVO per il long
tuttavia quest ultimo passaggio viene ignorato durante l’esecuzione in backtest del sistema di trading
vi posto il codice
se qualcuno può aiutarmi a capire dove sbaglio e/o se mi sfugge qualcosa
ccishort= cci>100
ccilong= cci<-100
timeok= time>130000 and time < 220000
onbalashort= OBV(close)[1]> BollingerUp[20](obv)[1] and OBV(close)< BollingerUp[20](obv) and obv(close)>0
onbalalong = OBV(close)[1]< Bollingerdown[20](obv)[1] and OBV(close)> Bollingerdown[20](obv) and obv(close)<0
if not onmarket and ccishort and onbalashort and timeok then
sellshort 1 contract at market
stoppe= obv(close)[1]
endif
if shortonmarket and POSITIONPERF<0 and obv(close)> stoppe then
exitshort at market
endif
if shortonmarket and POSITIONPERF >0 and obv crosses under Average[20](obv)then
exitshort at market
endif
scusate ma non riesco ad inserire il codice prt nella finestra dedicata
allego un immagine di un backtest
grazie
stefano
Devi indicare su quale strumento e timeframe l’hai provato, indicando la data e ora delle entrate sbagliate.
Con la foto non riesco a ricostruire niente e apparentemente sembra funzioni.
Testato su Nasdaq 1 euro a punto con timeframe 15 minuti
le entrate segnate in rosso non dovrebbero esserci
considera che ho solo creato sul sistema le entrate short
l’indicatore correlato al sistema è l’ultimo in basso.
Praticamente nel l’indicatore segna lo spike per l’ingresso corretto (+1 long, -1 short) mentre nel sistema ignore il filtro OBV(close)>0 per lo short ma non so perché …
infatti se modifichi il codice dell’indicatore togliendo per lo short obv(close)>0 vengono segnati anche gli ingressi che vedi in foto.
A me pare funzioni bene.
Aggiungi questa riga alla fine del codice per vedere quando questa condizione è vera o falsa:
graph obv(close)>0
Stasera ci guardò e ti dico
grazie intanto
ho capito il problema è che il sistema riconosce sempre positivo il valore di obv anche quando in effetti dall’indicatore abbiamo valori inferiori allo zero,
come si potrebbe aggirare questa cosa?
Su quale strumento e timeframe l’hai utilizzato il codice che hai postato?
Quante unità avevi sul grafico?
Mi sembra 2000 unità su 15 minuti Nasdaq 1 euro
Il problema è solo che NON hai messo nessun BUY, quindi non può entrare Long 🙂