//@version=4 strategy(title="Renko Candlesticks", shorttitle="Renko Candlesticks", overlay=true) src = input(title="Source", type=input.source, defval=close) sizingMethodInput = input(title='Brick Sizing Method', defval='% of Price', options=['% of Price', 'Fixed Price Amount', '% of ATR']) sizingAmount = input(title='% of Price / Fixed Price Amount / % of ATR', type=input.float, defval=0.45) atrTF = input(title='ATR Time Frame (if Brick Sizing Method is % of ATR)', type=input.resolution, defval="D") atrLength = input(title="ATR Length (if Brick Sizing Method is % of ATR)", type=input.integer, defval=3, minval=1, maxval=300) sizingMethod = iff(sizingMethodInput == 'Fixed Price Amount', 'fixed', iff(sizingMethodInput == '% of Price', '%price', '%ATR')) atrExpr = atr(atrLength) atrSeries = security(syminfo.tickerid, atrTF, atrExpr) brickSource = 0.0 brickSize = 0.0 brickUp = 0.0 brickLowerSeries = float(na) brickUpperSeries = float(na) if brickSource[1] != 0 brickSource := brickSource[1] brickSize := brickSize[1] brickUp := brickUp[1] brickLowerSeries := brickLowerSeries[1] brickUpperSeries := brickUpperSeries[1] brickUpperSeries if sizingMethod != '%ATR' or atrSeries // for % of ATR, wait for atrSeries length before starting up = src > brickUpperSeries down = src < brickLowerSeries isNewBrick = brickSource == 0 or up or down if isNewBrick brickSource := src if sizingMethod == 'fixed' brickSize := sizingAmount brickSize else brickSize := round((sizingMethod == '%ATR' ? atrSeries : brickSource) * (sizingAmount / 100)) brickSize brickUp := up ? 1 : -1 brickLowerSeries := brickSource - (down ? 1 : 2) * brickSize brickUpperSeries := brickSource + (up ? 1 : 2) * brickSize brickUpperSeries fillColor = brickUp == 1 ? color.green : color.red s=input(title="INTRA DAY TRADE SESSION",type=input.session,defval="0915-1450") st=time(timeframe.period,s) e=input(title="END SESSION",type=input.session,defval="1451-1530") et=time(timeframe.period,e) quant=input(title="Trade Quantity",defval=1) //setting automated alerts required by apibridge lxse="TYPE: LX" + " :SYMBOL: " + syminfo.ticker + " :QTY: " + tostring(quant) + " :TYPE:SE " + " :SYMBOL: " + syminfo.ticker + " :QTY: " + tostring(quant) sxle="TYPE: SX" + " :SYMBOL: " + syminfo.ticker + " :QTY: " + tostring(quant) + " :TYPE:LE " + " :SYMBOL: " + syminfo.ticker + " :QTY: " + tostring(quant) le="TYPE:LE " + " :SYMBOL: " + syminfo.ticker + " :QTY: " + tostring(quant) lx="TYPE:LX " + " :SYMBOL: " + syminfo.ticker + " :QTY: " + tostring(quant) se="TYPE:SE " + " :SYMBOL: " + syminfo.ticker + " :QTY: " + tostring(quant) sx="TYPE:SX " + " :SYMBOL: " + syminfo.ticker + " :QTY: " + tostring(quant) if(brickUp==1 and st and strategy.position_size==0) strategy.entry("BUY",strategy.long,comment=le) if(brickUp==-1 and st and strategy.position_size==0) strategy.entry("SELL",strategy.short,comment=se) if(brickUp==1 and st and strategy.position_size!=0) strategy.entry("BUY",strategy.long,comment=sxle) if(brickUp==-1 and st and strategy.position_size!=0) strategy.entry("SELL",strategy.short,comment=lxse) strategy.close(id="BUY",when=et,comment=lx) strategy.close(id="SELL",when=et,comment=sx) p1 = plot(brickLowerSeries, title="Lower line", color=fillColor, linewidth=2, trackprice=false) p2 = plot(brickUpperSeries, title="Upper line", color=fillColor, linewidth=2, trackprice=false) fill(p1, p2, title="Inner background", color=fillColor, transp=95)