Ciao a tutti, ho trovato questo indicatore spulciando il forum ed ho provato a mettere su un trading system, stranamente pero’ non opera nell’ultimo giorno (oggi) nel back test, qualche idea? Qualcuno sa come migliorarlo?
DEFPARAM CumulateOrders = False
DEFPARAM FLATBEFORE = 080000
DEFPARAM FLATAFTER = 210000
daysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0
WHB=6
WHS=6
BIB=6
BIS=6
PPKKS=0.994
PPKKB=0.994
//////////////////////////////////////////////////////////////////////
// MODIFIED UNIVERSAL OSCILLATOR 1
whitenoiseB= (Close - Close[WHS])
if barindex>BIS then
a11= exp(-1.414 * 3.14159 / BIS)
b11= 2*a11 * Cos(1.414*180 /BIS)
c22= b11
c33= -a11 * a11
c11= 1 - c22 - c33
filtB= c11 * (whitenoiseB + whitenoiseB[1])/2+ c22*filtB[1] + c33*filtB[1]
filt11 = filtB
if ABS(filt11)>pkB[1] then
pkB = ABS(filt11)
else
pkB = PPKKS * pkB[1]
endif
if pkB=0 then
denomB = -1
else
denomB = pkB
endif
if denomB = -1 then
resultB = resultB[1]
else
resultB = filt11/pkB
endif
endif
// MODIFIED UNIVERSAL OSCILLATOR 2
whitenoise= (Close - Close[WHB])
if barindex>BIB then
// super smoother filter
a1= (-1.414 * 3.14159 / BIB)
b1= 2*a1 * Cos(1.414*180 /BIB)
c2= b1
c3= -a1 * a1
c1= 1 - c2 - c3
filt= c1 * (whitenoise + whitenoise[1])/2+ c2*filt[1] + c3*filt[1]
filt1 = filt
if ABS(filt1)>pk[1] then
pk = ABS(filt1)
else
pk = PPKKB * pk[1]
endif
if pk=0 then
denom = -1
else
denom = pk
endif
if denom = -1 then
resultS = resultS[1]
else
resultS = filt1/pk
endif
endif
//////////////////////////////////////////////////////////////////////
//PATNER UP 1
PrUp01 = results < var1
PrUp01 = PrUp01 and results crosses over resultb
//PATNER DOWN 1
PrDw01 = results > var2
PrDw01 = PrDw01 and results crosses under resultb
/////////////
tuecondizioniLong= PrUp01
tuecondizionishort=PrDw01
// Condizioni per entrare su posizioni long
IF NOT LongOnMarket AND TueCondizionilong and not daysForbiddenEntry THEN
BUY 1 CONTRACTS AT MARKET
ENDIF
// Condizioni per entrare su posizioni short
IF NOT ShortOnMarket AND TueCondizionishort and not daysForbiddenEntry THEN
SELLSHORT 1 CONTRACTS AT MARKET
ENDIF
// Stop e target: Inserisci qui i tuoi stop di protezione e profit target
SET TARGET PPROFIT profitto
SET STOP PLOSS stopp
//VARIABILI VAR1=15.5 VAR2=-0.5 PROFITTO= 65 STOPP= 45
L’idea sarebbe basata su questi dati che quell’indicatore da:
L’entrata short o long è in corrispondenza delle frecce blu che da l’indicatore, l’uscita dovrebbe essere in corrispondenza del massimo o minimo del CCI.
@robertogozzi e
@nicolas scusate se vi disturbo, sapreste aiutarmi?
l’indicatore è questo:
// SCALPING DAX INIDCATOR, USABLE ON ANY TOOL, SET UP TIME FRAME 1 MINUTE.
// PRC CONTRIBUTE_ ALE_15/12/2017
//DEFPARAM CALCULATEONLASTBARS=50000
//WHB=6
//WHS=6
//BIB=6
//BIS=6
//PPKKS=0.994
//PPKKB=0.994
//RES=3
//SUP=3
// GRAPHIC VARIABLES
PIP = 1*Pipsize //ARROW DISTANCE
LIN = 20 //LENGTH OF SEGMENT OF SUPPORT OR RESISTENCE
RESISTENCE = RES*Pipsize //DISTANCE OF THE SEGMENT OF THE RESISTENCE
SUPPORT = SUP*Pipsize //DISTANCE OF THE SEGMENT OF THE SUPPORT
// ENABLED PARNER 1-0 / ON-OFF
ONCE PrEnabled01 = P01 // SWITCH INDICATOR P01,P02 ETC ..
//////////////////////////////////////////////////////////////////////
// MODIFIED UNIVERSAL OSCILLATOR 1
whitenoiseB= (Close – Close[WHS])
if barindex>BIS then
a11= exp(-1.414 * 3.14159 / BIS)
b11= 2*a11 * Cos(1.414*180 /BIS)
c22= b11
c33= -a11 * a11
c11= 1 – c22 – c33
filtB= c11 * (whitenoiseB + whitenoiseB[1])/2+ c22*filtB[1] + c33*filtB[1]
filt11 = filtB
if ABS(filt11)>pkB[1] then
pkB = ABS(filt11)
else
pkB = PPKKS * pkB[1]
endif
if pkB=0 then
denomB = -1
else
denomB = pkB
endif
if denomB = -1 then
resultB = resultB[1]
else
resultB = filt11/pkB
endif
endif
// MODIFIED UNIVERSAL OSCILLATOR 2
whitenoise= (Close – Close[WHB])
if barindex>BIB then
// super smoother filter
a1= (-1.414 * 3.14159 / BIB)
b1= 2*a1 * Cos(1.414*180 /BIB)
c2= b1
c3= -a1 * a1
c1= 1 – c2 – c3
filt= c1 * (whitenoise + whitenoise[1])/2+ c2*filt[1] + c3*filt[1]
filt1 = filt
if ABS(filt1)>pk[1] then
pk = ABS(filt1)
else
pk = PPKKB * pk[1]
endif
if pk=0 then
denom = -1
else
denom = pk
endif
if denom = -1 then
resultS = resultS[1]
else
resultS = filt1/pk
endif
endif
//////////////////////////////////////////////////////////////////////
//PATNER UP 1
PrUp01 = results <-0.5
PrUp01 = PrUp01 and results crosses over resultb
PrUp01 = (PrUp01 and PrEnabled01)
//PATNER DOWN 1
PrDw01 = results >0.5
PrDw01 = PrDw01 and results crosses under resultb
PrDw01 = (PrDw01 and PrEnabled01)
//////////////////////////////////////////////////////////////////////
// COLORS OF THE ARROW AND SEGMENT
IF PrUp01 THEN
R=0
G=128
B=255
ELSIF PrDw01 THEN
R=0
G=128
B=255
endif
if TIME >=80000 and time <=210000 THEN
if PrUp01 then
DRAWARROWUP(barindex,LOW-PIP)coloured(R,G,B)
DRAWSEGMENT(barindex,LOW-SUPPORT,barindex-LIN, LOW-SUPPORT )coloured(R,G,B)
elsif PrDw01 then
DRAWARROWDOWN(barindex,HIGH+PIP)coloured(R,G,B)
DRAWSEGMENT(barindex,HIGH+RESISTENCE,barindex-LIN, HIGH+RESISTENCE)coloured(R,G,B)
endif
ENDIF
RETURN
> Per chiarezza dei messaggi sul Forum di Prorealcode, separate le parti del vostro codice usando il pulsante per l’inserimento del testo del codice. <<
Ci sono già discussioni in corso su una strategia con questo indicatore, guidato dal suo autore ALE, in questo argomento:
https://www.prorealcode.com/topic/scalping-indicator/