Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //@version=4
- strategy("3 Candle Compression Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
- // Pull prices from 4h timeframe
- highprice = security("BITMEX:XBTUSD", '240', high)
- lowprice = security("BITMEX:XBTUSD", '240', low)
- openprice = security("BITMEX:XBTUSD", '240', open)
- closeprice = security("BITMEX:XBTUSD", '240', close)
- highpricep = security("BITMEX:XBTUSD", '240', high[1])
- lowpricep = security("BITMEX:XBTUSD", '240', low[1])
- openpricep = security("BITMEX:XBTUSD", '240', open[1])
- closepricep = security("BITMEX:XBTUSD", '240', close[1])
- // Define range
- insidecandle = highprice < highprice[1] and lowprice > lowprice[1]
- insidecandlep = highpricep < highpricep[1] and lowpricep > lowpricep[1]
- rangecompression = insidecandle and insidecandlep
- //Time condition
- isMon = dayofweek(time('D')) == dayofweek.monday
- isTue = dayofweek(time('D')) == dayofweek.tuesday
- isWed = dayofweek(time('D')) == dayofweek.wednesday
- isThu = dayofweek(time('D')) == dayofweek.thursday
- isFri = dayofweek(time('D')) == dayofweek.friday
- tradingsession = isMon or isTue or isWed or isThu or isFri
- // Long and Short structure
- longhigh_cond = highprice
- longhighprice = 0.0
- longhighprice := rangecompression ? longhigh_cond : longhighprice[1]
- shortlow_cond = lowprice
- shortlowprice = 0.0
- shortlowprice := rangecompression ? shortlow_cond : shortlowprice[1]
- // Long/Short conditions
- breakout = crossover(close, longhighprice)
- breakdown = crossunder(close, shortlowprice)
- bullprice = close > longhighprice
- bearprice = close < shortlowprice
- paintgreen = bullprice
- paintyellow = longhighprice > close and close > shortlowprice
- paintred = bearprice
- plot(longhighprice, color = color.green, linewidth=3)
- plot(shortlowprice, color = color.red, linewidth=3)
- barcolor(paintgreen ? color.green : na)
- barcolor(paintyellow ? color.yellow : na)
- barcolor(paintred ? color.red : na)
- ///////// STOP LOSS /////////
- // Pull prices from 1D timeframe
- highpricesl = security("BITMEX:XBTUSD", '1440', high)
- lowpricesl = security("BITMEX:XBTUSD", '1440', low)
- openpricesl = security("BITMEX:XBTUSD", '1440', open)
- closepricesl = security("BITMEX:XBTUSD", '1440', close)
- highpricepsl = security("BITMEX:XBTUSD", '1440', high[1])
- lowpricepsl = security("BITMEX:XBTUSD", '1440', low[1])
- openpricepsl = security("BITMEX:XBTUSD", '1440', open[1])
- closepricepsl = security("BITMEX:XBTUSD", '1440', close[1])
- // Define range for stoploss
- insidecandlesl = highpricesl < highpricesl[1] and lowpricesl > lowpricesl[1]
- insidecandlepsl = highpricepsl < highpricepsl[1] and lowpricepsl > lowpricepsl[1]
- rangecompressionsl = insidecandlesl and insidecandlepsl
- // Long stoploss and short stoploss
- longhigh_condsl = highpricesl
- longhighpricesl = 0.0
- longhighpricesl := insidecandlesl ? longhigh_condsl : longhighpricesl[1]
- shortlow_condsl = lowpricesl
- shortlowpricesl = 0.0
- shortlowpricesl := insidecandlesl ? shortlow_condsl : shortlowpricesl[1]
- //plotshape(bullpricesl, color=color.red, style=shape.xcross, location=location.abovebar, size=size.small)
- //plotshape(bearpricesl, color=color.green, style=shape.arrowup, location=location.belowbar, size=size.large)
- // CREATE ORDERS
- // Long order
- strategy.entry("long", strategy.long, when = breakout and tradingsession)
- // Stoploss Long
- breakoutsl = crossover(close, longhighpricesl)
- bullpricesl = close > longhighprice and crossunder(close, shortlowpricesl) or close < shortlowprice
- strategy.close("long", when = bullpricesl)
- // Short order
- strategy.entry("short", strategy.short, when = breakdown and tradingsession)
- // Stoploss short
- breakdownsl = crossover(close, shortlowpricesl)
- bearpricesl = close < shortlowprice and crossover(close, longhighpricesl) or close > longhighprice
- strategy.close("short", when = bearpricesl)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement