Sie sind auf Seite 1von 2

//@version=4

study(title="bg_Breakers_orderBlocks_detection", shorttitle="Breakers v0.2",


overlay=true)

testStartYear = input(2019, "Backtest Start Year")


testStartMonth = input(10, "Backtest Start Month")
testStartDay = input(10, "Backtest Start Day")
testStartHour = input(0, "Backtest Start Hour")
testStartMin = input(0, "Backtest Start Minute")
testPeriodStart =
timestamp(testStartYear,testStartMonth,testStartDay,testStartHour,testStartMin)
testStopYear = input(2020, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(15, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)
lenH = input(title='Length High', type=input.integer, defval=55, minval=5)
lenL = input(title='Length Low', type=input.integer, defval=55, minval=5)
UseOC= input(false,title="Use Candle Bodies for Highest/Lowest instead of
Wick",type=input.bool)
HighColor = input(title="High Block Color", defval="red", options=["aqua", "black",
"blue", "fuchsia", "gray", "green", "lime", "maroon", "navy", "olive", "orange",
"purple", "red", "silver", "teal", "white", "yellow"])
LowColor = input(title="Low Block Color", defval="green", options=["aqua", "black",
"blue", "fuchsia", "gray", "green", "lime", "maroon", "navy", "olive", "orange",
"purple", "red", "silver", "teal", "white", "yellow"])
HighColorSet = HighColor == "aqua" ? color.aqua : HighColor == "black" ?
color.black : HighColor == "blue" ? color.blue : HighColor == "fuchsia" ?
color.fuchsia : HighColor == "gray" ? color.gray : HighColor == "green" ?
color.green : HighColor == "lime" ? color.lime : HighColor == "maroon" ?
color.maroon : HighColor == "navy" ? color.navy : HighColor == "olive" ?
color.olive : HighColor == "orange" ? #ed3800 : HighColor == "purple" ?
color.purple : HighColor == "red" ? color.red : HighColor == "silver" ?
color.silver : HighColor == "teal" ? #2196f3 : HighColor == "white" ? color.white :
HighColor == "yellow" ? color.yellow : color.black
LowColorSet = LowColor == "aqua" ? color.aqua : LowColor == "black" ? color.black :
LowColor == "blue" ? color.blue : LowColor == "fuchsia" ? color.fuchsia : LowColor
== "gray" ? color.gray : LowColor == "green" ? color.green : LowColor == "lime" ?
color.lime : LowColor == "maroon" ? color.maroon : LowColor == "navy" ?
color.navy : LowColor == "olive" ? color.olive : LowColor == "orange" ? #ed3800 :
LowColor == "purple" ? color.purple : LowColor == "red" ? color.red : LowColor ==
"silver" ? color.silver : LowColor == "teal" ? #2196f3 : LowColor == "white" ?
color.white : LowColor == "yellow" ? color.yellow : color.black

testPeriod() =>
time >= testPeriodStart and time <= testPeriodStop ? true : false

BullCandle(Historic) =>
open[Historic] < close [Historic] ? true : false

fun2(src,len,isHigh,_color) =>
p = nz(src[len])
isFound = true
for i = 0 to len * 2
if isHigh and src[i] > p
isFound := false
if not isHigh and src[i] < p
isFound := false
if isFound and testPeriod()
line.new(bar_index[len], open[len], bar_index, open[len],
extend=extend.right, color=_color)
line.new(bar_index[len], close[len], bar_index, close[len],
extend=extend.right, color=_color)
line.new(bar_index[len], (open[len]+close[len])/2, bar_index, (open[len]
+close[len])/2, extend=extend.right, color=_color, style=line.style_dashed)
1

fun_hbody(len,_color) =>
p = BullCandle(len)?nz(close[len]):nz(open[len])
isFound = true
for i = 0 to len * 2
src = BullCandle(i)?close:open
if src[i] > p
isFound := false
if isFound and testPeriod()
line.new(bar_index[len], open[len], bar_index, open[len],
extend=extend.right, color=_color)
line.new(bar_index[len], close[len], bar_index, close[len],
extend=extend.right, color=_color)
line.new(bar_index[len], (open[len]+close[len])/2, bar_index, (open[len]
+close[len])/2, extend=extend.right, color=_color, style=line.style_dashed)
1

fun_lbody(len,_color) =>
p = BullCandle(len)?nz(open[len]):nz(close[len])
isFound = true
for i = 0 to len * 2
src = BullCandle(i)?open:close
if src[i] < p
isFound := false
if isFound and testPeriod()
line.new(bar_index[len], open[len], bar_index, open[len],
extend=extend.right, color=_color)
line.new(bar_index[len], close[len], bar_index, close[len],
extend=extend.right, color=_color)
line.new(bar_index[len], (open[len]+close[len])/2, bar_index, (open[len]
+close[len])/2, extend=extend.right, color=_color, style=line.style_dashed)
1

test3 = UseOC?fun_hbody(lenH,HighColorSet):fun2(high, lenH, true, HighColorSet)


test4 = UseOC?fun_lbody(lenL,LowColorSet):fun2(low, lenL, false, LowColorSet)

Das könnte Ihnen auch gefallen