Professional Documents
Culture Documents
//Inputs
showBB = input.bool(false, "Show Bollinger Bands")
showTrade = input.bool(false, 'Show TP/SL')
src = input(close)
length = input.int(41, minval=1)
mult = input.float(2.0, minval=0.001, maxval=50)
//Formulas
basis = ta.sma(src, length)
dev = ta.stdev(src, length)
dev2 = mult * dev
//Style
colorBasis = src >= basis ? color.blue : color.orange
//Plots
pBasis = plot(showBB ? basis : na, linewidth=2, color=colorBasis)
pUpper1 = plot(showBB ? upper1 : na, color=color.new(color.blue, 0),
style=plot.style_circles)
pUpper2 = plot(showBB ? upper2 : na, color=color.new(color.blue, 0))
pLower1 = plot(showBB ? lower1 : na, color=color.new(color.orange, 0),
style=plot.style_circles)
pLower2 = plot(showBB ? lower2 : na, color=color.new(color.orange, 0))
//Fills
fill(pBasis, pUpper2, color =showBB ? color.new(color.blue, 80) : na)
fill(pUpper1, pUpper2, color=showBB ? color.new(color.blue, 80) : na)
fill(pBasis, pLower2, color =showBB ? color.new(color.orange, 80) : na)
fill(pLower1, pLower2, color=showBB ? color.new(color.orange, 80) : na)
// Using the input stop/ limit percent, we can convert to ticks and use the ticks
to level functions.
// This can be used to calculate the take profit and stop levels.
float sl = css.ticksToStopLevel (css.percentToTicks (percentStop))
float tp = css.ticksToTpLevel (css.percentToTicks (percentTP))
exitPrice = strategy.closedtrades.exit_price(strategy.closedtrades-1)
bias = math.sign(strategy.position_size)
avg = strategy.position_avg_price
//STRATEGY PLOTS {
avgerage = plot(showTrade ? avg : na, "ENTRY", not enter ?
color.new(color.white, 0) : na, 2, plot.style_linebr)
slp = plot(showTrade ? sl : na, "STOP LOSS", not enter ?
color.new(color.red, 60) : na, 4, plot.style_linebr)
tpp = plot(showTrade ? tp : na, "TAKE PROFIT", not enter ?
color.new(color.green, 60) : na, 4, plot.style_linebr)
// Create entries based on the cross conditions for both trades biases.
if longCondition and inDateRange
strategy.close("SHORT", "SX" , alert_message=i_alert_txt_exit_short)
strategy.entry("LONG", strategy.long, alert_message=i_alert_txt_entry_long)