Salve
allego codice di un indicatore creato per prevedere la posizione (Long/Short) ed il prezzo di chiusura della candela giornaliera odierna valido solo su Eur/Usd Mini e relativo scarto dalla chiusura reale
L’indicatore nasce da un modello creato ed analizzato da un software di rete neurale attraverso l’analisi di diversi parametri.
L’indicatore funziona benissimo tanto da provare a tradare in modalità convenzionale con un buon successo su conto reale.
Come da screenshots ho creato anche un indicatore esterno che mi evidenziasse il margine di errore settimanale con numero di candele e percentuale, in media l’indicatore mostra una previsione errata di 1 candela su 5 (circa 20%).
Per comodità sono stati inseriti nr.2 flag per la colorazione di background e l’ inserimento una regressione lineare con bande inferiori e superiori, per una futura strategia automatica.
Ieri , 18/09/2019, ho notato qualcosa di strano:
alle ore 08:00 l’indicatore prevedeva una posizione Long per la candela del 18/09/2019 ed ho aperto una posizione, ma chiusa comunque in profitto;
questa mattina invece mi indica una posizione Short per la stessa candela.
Vi chiedo cortesemente, se possibile, approffitare della vostra esperienze per verificare e risolvere questo bug .
Allego il tutto.
Saluti
//
//+--------------------------------------------------------------+
//| Previsione Chiusura EurUsd Giornaliero |
//| Prorealcode.com by Coscar |
//+--------------------------------------------------------------+
DEFPARAM CALCULATEONLASTBARS=50
If Hour=1 then
GainUp = Dclose(0)-Dclose(1)
MediaUp = Average [2](GainUp)
GainDw = Max(GainUp,ABS(GainUp))
MediaDwIeri = Average [2] (GainDw [1])
GainDwIeri = GainDw[1]
Apertura = DOpen (0)
Media5 = Average[5](Dclose(0))
ChiusuraIeri = Dclose(1)
MinimoIeri = DLow (1)
DPOx = Dclose(0)-Media5/2+1
//Previsione Prezzo Chiusura Candela corrente
Y1 = -0.0433353 + Apertura*0.789109 + Media5*(-0.0116908) + GainUp*0.954934 + MediaUp*(-0.0153857) + DPOx*0.0433544 + MinimoIeri*(-0.019257) + ChiusuraIeri*0.220101 + GainDwIeri*0.0571963 + MediaDwIeri*0.0443629
PrezzoPrevisione=Y1
//Previsione Chiusura Candela Giorno dopo
// da elaborare , non affidabile
//Y2 = 0.00827408 + Apertura*0.992705 + GainUp*0.933295 + GainDwIeri*0.0578514
//PrezzoPrevisione2 = Y2
endif
Perc= ((Close-PrezzoPrevisione))
Pos = Max(High,PrezzoPrevisione)
if Perc>=0 then
R=60
G=179
B=113
else
R=220
G=20
B=60
ENDIF
if PrezzoPrevisione>Dopen(0) then
Rp=60
Gp=179
Bp=113
DRAWTEXT("Long", barindex, (Pos+50*Pipsize),SansSerif,Bold,12) coloured (Rp,Gp,Bp)
BACKGROUNDCOLOR(Rp,Gp,Bp,30)
else
Rp=220
Gp=20
Bp=60
DRAWTEXT("Short", barindex, (Pos+50*Pipsize),SansSerif,Bold,12) coloured (Rp,Gp,Bp)
BACKGROUNDCOLOR(Rp,Gp,Bp,30)
ENDIF
DRAWTEXT("Scarto", barindex, (Pos+30*Pipsize),SansSerif,standard,13) coloured (70,130,180)
DRAWTEXT("#Perc#", barindex, (Pos+25*Pipsize),SansSerif,standard,12) coloured (R,G,B)
DRAWTEXT("Previsione", barindex, (Pos+55*Pipsize),SansSerif,Bold,13) coloured (70,130,180)
DRAWTEXT("#PrezzoPrevisione#", barindex, (Pos+45*Pipsize),SansSerif,Bold,12) coloured (Rp,Gp,Bp)
drawtext("----------",barindex,PrezzoPrevisione,dialog,bold,16) coloured(255,155,0)
giorno = Dayofweek = 1
if giorno then
DRAWvLINE(barindex) coloured (0,100,250)// linea di delimitazione settimanale
endif
//verifica
If PrezzoPrevisione >Dopen(0) then
Value = 1
ELSE
Value = -1
ENDIF
If Dclose(0)>DOpen(0) then
ValueReal = 1
ELSE
ValueReal = -1
ENDIF
p = ABS(value+valuereal)
if p=0 then
X=1
else
x=0
endif
Values = 0
giorno = Dayofweek = 1
IF OpenDayOfWeek >= 0 AND OpenDayOfWeek <= 6 THEN
FOR i = 0 TO 5 DO
IF (X[i]=1) THEN
Values = Values + 1
ELSE
BREAK
ENDIF
NEXT
valore = Values/5*100
if valore>0 then
DRAWELLIPSE(barindex-1, (Low-10*Pipsize), barindex+1, (High+10*Pipsize)) coloured (255,0,0,200)
DRAWTEXT("#Valore#%", barindex, (Low+5*pipsize),SansSerif,Bold,15)
endif
endif
AVg =Average [5](PrezzoPrevisione)
//-------------------------------------------
Return Avg as "Media Previsione",PrezzoPrevisione coloured (0,100,250) style(Point,5) as "Previsione Chiusura"//, Close coloured (119,136,153) style(Point,5) as "Close", Dopen(0) coloured (0,100,250) style(point,5) as "Open"