0% found this document useful (0 votes)
208 views3 pages

Rob Reversal Strat - Official 1

The document contains a Pine Script™ code for the 'Rob Reversal Strategy,' which is a trading strategy that utilizes the Rob Reversal Indicator. It includes session inputs, risk management parameters, and conditions for buy and sell entries based on price movements and EMA indicators. The strategy also incorporates features for managing open positions and closing trades at the end of the trading session.

Uploaded by

mahashaktidas
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
208 views3 pages

Rob Reversal Strat - Official 1

The document contains a Pine Script™ code for the 'Rob Reversal Strategy,' which is a trading strategy that utilizes the Rob Reversal Indicator. It includes session inputs, risk management parameters, and conditions for buy and sell entries based on price movements and EMA indicators. The strategy also incorporates features for managing open positions and closing trades at the end of the trading session.

Uploaded by

mahashaktidas
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 3

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.

0
at https://mozilla.org/MPL/2.0/
// © bdrex95

//@version=5

// Rob Reversal Strategy - Official


// Using Rob Reversal Indicator: Original

strategy("Rob Reversal Strategy: Official", shorttitle="Official Rob Rev Strat",


overlay=true)

//--- Session Input ---


sess = input.session(defval = "0830-1315", title="Trading Session")
t = time(timeframe.period, sess)
sessionOpen = na(t) ? false : true

flat_time = input.session(defval = "1515-1600", title="Close All Open Trades")


ft = time(timeframe.period, flat_time)
flatOpen = na(ft) ? false : true

// Calculate start/end date and time condition


startDate = input.time(timestamp('2018-12-24T00:00:00'),group = "ALL STRATEGY
SETTINGS BELOW")
finishDate = input.time(timestamp('2029-02-26T00:00:00'),group = "ALL STRATEGY
SETTINGS BELOW")
time_cond = time >= startDate and time <= finishDate

emaColor = input.color(color.orange, title="EMA Color")


emaLength = input.int(8, title="EMA Length")

emaInd = ta.ema(close, emaLength)

rr = input(1.0,"Enter RR",group = "TP/SL CONDITION INPUTS HERE")

sellShapeInput = input.string("Arrow", title="Sell Entry Shape", options=["Arrow",


"Triangle"])
buyShapeInput = input.string("Arrow", title="Buy Entry Shape", options=["Arrow",
"Triangle"])

sellShapeOption = switch sellShapeInput


"Arrow" => shape.arrowdown
"Triangle" => shape.triangledown

buyShapeOption = switch buyShapeInput


"Arrow" => shape.arrowup
"Triangle" => shape.triangleup

O = open
C = close
H = high
L = low

sellEntry = (C[1] > O[1]) and (C < O) and (H[1] < H) and (C < H[1]) and (C > L[1])
and (L > L[1]) and (C < emaInd) and sessionOpen and time_cond
buyEntry = (C[1] < O[1]) and (C > O) and (H[1] > H) and (L[1] > L) and (C < H[1])
and (C > L[1]) and (C > emaInd) and sessionOpen and time_cond

sellEntry_index = ta.valuewhen(sellEntry,bar_index,0)
sellEntry_hi = ta.valuewhen(sellEntry,high,0)
sellEntry_low = ta.valuewhen(sellEntry,low,0)
buyEntry_index = ta.valuewhen(buyEntry,bar_index,0)
buyEntry_hi = ta.valuewhen(buyEntry,high,0)
buyEntry_lo = ta.valuewhen(buyEntry,low,0)

plotshape(buyEntry, color = color.green, location = location.belowbar, style =


buyShapeOption, size = size.small)
plotshape(sellEntry, color = color.red, location = location.abovebar, style =
sellShapeOption, size = size.small)
plot(emaInd, color=emaColor)

// Risk Management
entry_price_long = (buyEntry_hi + syminfo.mintick)
entry_price_short = (sellEntry_low - syminfo.mintick)
long_sl_price = (buyEntry_lo-syminfo.mintick)
short_sl_price = (sellEntry_hi + syminfo.mintick)
long_tp_price = ((entry_price_long - long_sl_price)*rr) + entry_price_long
short_tp_price = entry_price_short - ((short_sl_price - entry_price_short)*rr)

long_sl_ticks = (entry_price_long - long_sl_price) / syminfo.mintick


short_sl_ticks = (short_sl_price - entry_price_short) / syminfo.mintick

long_tp_ticks = (long_tp_price - entry_price_long) / syminfo.mintick


short_tp_ticks = (entry_price_short - short_tp_price) / syminfo.mintick

// Positions
if (buyEntry)
strategy.entry("Long", strategy.long,stop = H + syminfo.mintick)
if strategy.position_size > 0
strategy.exit("Long Ex","Long", loss = long_sl_ticks, profit = long_tp_ticks,
comment_loss = "SL Long", comment_profit = "TP Long")

if (sellEntry)
strategy.entry("Short", strategy.short,stop = L - syminfo.mintick)
if strategy.position_size < 0
strategy.exit("Short Ex","Short",loss = short_sl_ticks, profit =
short_tp_ticks, comment_loss = "SL Short", comment_profit = "TP Short")

// Cancel order if close beyond ema


if (C < emaInd)
strategy.cancel("Long")

if (C > emaInd)
strategy.cancel("Short")

// Go flat at close (for futures funded account)


if strategy.position_size > 0 and flatOpen
strategy.close_all(comment = "EOD Flat")
if strategy.position_size < 0 and flatOpen
strategy.close_all(comment = "EOD Flat")

//END

You might also like