Fractal + Kase Dev Stop
Fractal triangles in the screenshot are yellow and blue.
3.8 spread. £/$ Daily. 01/11/17-29/01/19 (randomly chosen dates)
200% return, 32% Drawdown.
Shouldersize = 5 randomly chosen. Please adjust these and the Dev Stop for different markets.
Kase Dev Stop code: https://www.prorealcode.com/prorealtime-indicators/kase-dev-stop-v3
// Definition of code parameters
DEFPARAM CumulateOrders = False // Cumulating positions deactivated
//Shouldersize = 3 //size of shoulders
ShoulderSize = 5
r = ShoulderSize*2
once SwingH = 0
once SwingL = 0
once FractalD = 0
For i = 0 to r Do
If high[ShoulderSize] > high[i] or i = ShoulderSize Then
SwingH = SwingH + 1
EndIf
If low[ShoulderSize] < low[i] or i = ShoulderSize Then
SwingL = SwingL + 1
EndIf
Next
If SwingH = (r+1) and (FractalD = 0 or FractalD = -1) Then
FractalH = high[ShoulderSize]
FractalD = 1
EndIf
If SwingL = (r+1) and (FractalD = 0 or FractalD = 1) Then
FractalL = low[ShoulderSize]
FractalD = -1
EndIf
SwingH = 0
SwingL = 0
// Conditions to enter long positions
If SwingL = (r+1) and (FractalD = 0 or FractalD = -1) Then
FractalL = low[ShoulderSize]
Endif
If FractalD = -1 and FractalL then
Buy 10 Perpoint at Market
Endif
// Conditions to exit long positions
ignored, ignored, ignored, Dev,ignored, ignored = CALL "Kase Dev Stop Lisse+SAR+4.5/6"
c1 = (close CROSSES UNDER Dev)
IF c1 THEN
SELL AT MARKET
ENDIF
//-------------------------//
// Conditions to enter short positions
If SwingH = (r+1) and (FractalD = 0 or FractalD = 1) Then
FractalH = high[ShoulderSize]
Endif
If FractalD = 1 and FractalH then
Sellshort 10 Perpoint at Market
Endif
// Conditions to exit short positions
ignored, ignored, ignored, Dev, ignored, ignored = CALL "Kase Dev Stop Lisse+SAR+4.5/6"
c2 = (close CROSSES OVER Dev)
IF c2 THEN
EXITSHORT AT MARKET
ENDIF
//Voici le code en version SAR : plus WITH DEV STOP 4.5 + 6.0
//Settings
n=30
p1=1.0
p2=2.2
p3=3.6
p4=4.5
p5=6.0
difference=0
Hg=highest[2](high)
Lw=lowest[2](low)
DTR=max(max(Hg-Lw,abs(Hg-close[2])),abs(Lw-close[2]))
aDTR=average[n](DTR)
for i=0 to n-1 do
difference=difference+square(DTR[i]-aDTR)
next
difference=difference/n
sdev=sqrt(difference)
dev0=close-aDTR
dev1=close-aDTR-p1*sdev
dev2=close-aDTR-p2*sdev
dev3=close-aDTR-p3*sdev
dev4=close-aDTR-p4*sdev
dev5=close-aDTR-p5*sdev
if dev0<dev0[1] and close>dev5[1] then
dev0=dev0[1]
endif
if dev1<dev1[1] and close>dev5[1] then
dev1=dev1[1]
endif
if dev2<dev2[1] and close>dev5[1] then
dev2=dev2[1]
endif
if dev3<dev3[1] and close>dev5[1] then
dev3=dev3[1]
endif
if dev4<dev4[1] and close>dev5[1] then
dev4=dev4[1]
endif
if dev5<dev5[1] and close>dev5[1] then
dev5=dev5[1]
endif
dev6=close+aDTR
dev7=close+aDTR+p1*sdev
dev8=close+aDTR+p2*sdev
dev9=close+aDTR+p3*sdev
dev10=close+aDTR+p4*sdev
dev11=close+aDTR+p5*sdev
if dev6>dev6[1] and close<dev11[1] then
dev6=dev6[1]
endif
if dev7>dev7[1] and close<dev11[1] then
dev7=dev7[1]
endif
if dev8>dev8[1] and close<dev11[1] then
dev8=dev8[1]
endif
if dev9>dev9[1] and close<dev11[1] then
dev9=dev9[1]
endif
if dev10>dev10[1] and close<dev11[1] then
dev10=dev10[1]
endif
if dev11>dev11[1] and close<dev11[1] then
dev11=dev11[1]
endif
if close>dev11[1] then
flag=-1
else
if close<dev5[1] then
flag=1
endif
endif
if flag=-1 then
ind0=dev0
ind1=dev1
ind2=dev2
ind3=dev3
ind4=dev4
ind5=dev5
//k=1 Blue
r=0
g=191
b=255
else
ind0=dev6
ind1=dev7
ind2=dev8
ind3=dev9
ind4=dev10
ind5=dev11
//k=-1 Orange
r=255
g=128
b=0
endif
//ORIG return ind0 COLOURED BY k,ind1 coloured by k,ind2 coloured by k,ind3 coloured by k//
//ORANGE AND LIGHT BLUE
return ind0 coloured(r,g,b) style(dottedline,2) as "Warning Line", ind1 coloured(r,g,b) style(dottedline,2) as "Dev Stop 1.0",
ind2 coloured(r,g,b) style(dottedline,2) as "Dev Stop 2.2", ind3 coloured(r,g,b) style(line,2) as "Dev Stop 3.6", ind4 coloured(r,g,b)
style(dottedline,2) as "Dev Stop 4.5", ind5 coloured(r,g,b) style(line,2) as "Dev Stop 6.0"