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

UTBOT (ES5min)

Uploaded by

Moj Gan
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)
66 views3 pages

UTBOT (ES5min)

Uploaded by

Moj Gan
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

//@version=5

strategy(title='UT Bot Alerts (QuantNomad) Strategy w/ NinjaView', overlay=true)


acct = input.string(defval="Sim101", title="Account Name")
ticker = input.string(defval="ES JUN24", title="Symbol Ticker")
qty = input.int(defval=1, title="Quantity")

T3 = input(100)//600
// Input for Long Settings
// Input for Long Settings

xPrice3 = close
xe1 = ta.ema(xPrice3, T3)
xe2 = ta.ema(xe1, T3)
xe3 = ta.ema(xe2, T3)
xe4 = ta.ema(xe3, T3)
xe5 = ta.ema(xe4, T3)
xe6 = ta.ema(xe5, T3)

b3 = 0.7
c1 = -b3*b3*b3
c2 = 3*b3*b3+3*b3*b3*b3
c3 = -6*b3*b3-3*b3-3*b3*b3*b3
c4 = 1+3*b3+b3*b3*b3+3*b3*b3
nT3Average = c1 * xe6 + c2 * xe5 + c3 * xe4 + c4 * xe3

//plot(nT3Average, color=color.white, title="T3")

// Buy Signal - Price is below T3 Average


buySignal3 = xPrice3 < nT3Average
sellSignal3 = xPrice3 > nT3Average
// Inputs
a = input(1, title='Key Value. "This changes the sensitivity"')
c = input(50, title='ATR Period')
h = input(true, title='Signals from Heikin Ashi Candles')
riskRewardRatio = input(1, title='Risk Reward Ratio')

xATR = ta.atr(c)
nLoss = a * xATR

src = h ? request.security(ticker.heikinashi(syminfo.tickerid), timeframe.period,


close, lookahead=barmerge.lookahead_off) : close

xATRTrailingStop = 0.0
iff_1 = src > nz(xATRTrailingStop[1], 0) ? src - nLoss : src + nLoss
iff_2 = src < nz(xATRTrailingStop[1], 0) and src[1] < nz(xATRTrailingStop[1], 0) ?
math.min(nz(xATRTrailingStop[1]), src + nLoss) : iff_1
xATRTrailingStop := src > nz(xATRTrailingStop[1], 0) and src[1] >
nz(xATRTrailingStop[1], 0) ? math.max(nz(xATRTrailingStop[1]), src - nLoss) : iff_2

pos = 0
iff_3 = src[1] > nz(xATRTrailingStop[1], 0) and src < nz(xATRTrailingStop[1], 0) ?
-1 : nz(pos[1], 0)
pos := src[1] < nz(xATRTrailingStop[1], 0) and src > nz(xATRTrailingStop[1], 0) ? 1
: iff_3

xcolor = pos == -1 ? color.red : pos == 1 ? color.green : color.blue

ema = ta.ema(src, 1)
above = ta.crossover(ema, xATRTrailingStop)
below = ta.crossunder(ema, xATRTrailingStop)

buy = src > xATRTrailingStop and above


sell = src < xATRTrailingStop and below

barbuy = src > xATRTrailingStop


barsell = src < xATRTrailingStop

plotshape(buy, title='Buy', text='Buy', style=shape.labelup,


location=location.belowbar, color=color.new(color.green, 0),
textcolor=color.new(color.white, 0), size=size.tiny)
plotshape(sell, title='Sell', text='Sell', style=shape.labeldown,
location=location.abovebar, color=color.new(color.red, 0),
textcolor=color.new(color.white, 0), size=size.tiny)

barcolor(barbuy ? color.new(color.green, 90) : na)


barcolor(barsell ? color.new(color.red, 90) : na)

var float entryPrice = na


var float takeProfitLong = na
var float stopLossLong = na
var float takeProfitShort = na
var float stopLossShort = na

if buy and buySignal3


entryPrice := src
takeProfitLong := entryPrice + nLoss * riskRewardRatio
stopLossLong := entryPrice - nLoss
takeProfitShort := na
stopLossShort := na

if sell and sellSignal3


entryPrice := src
takeProfitShort := entryPrice - nLoss * riskRewardRatio
stopLossShort := entryPrice + nLoss
takeProfitLong := na
stopLossLong := na

// Strategy order conditions

OCOMarketLong = '{ "alert": "OCO Market Long", "account": "' + str.tostring(acct) +


'", "ticker": "' + str.tostring(ticker) + '", "qty": "' + str.tostring(qty) + '",
"take_profit_price": "' + str.tostring(takeProfitLong) + '", "stop_price": "' +
str.tostring(stopLossLong) + '", "tif": "DAY" }'
OCOMarketShort = '{ "alert": "OCO Market Short", "account": "' + str.tostring(acct)
+ '", "ticker": "' + str.tostring(ticker) + '", "qty": "' + str.tostring(qty) + '",
"take_profit_price": "' + str.tostring(takeProfitShort) + '", "stop_price": "' +
str.tostring(stopLossShort) + '", "tif": "DAY" }'
CloseAll = '{ "alert": "Close All", "account": "' + str.tostring(acct) + '",
"ticker": "' + str.tostring(ticker) + '" }'

strategy.entry("Long", strategy.long, when=buy and buySignal3,


alert_message=OCOMarketLong)
strategy.entry("Short", strategy.short, when=sell and sellSignal3,
alert_message=OCOMarketShort)

// Setting the take profit and stop loss for long trades
strategy.exit("Take Profit/Stop Loss", "Long", stop=stopLossLong,
limit=takeProfitLong,alert_message=CloseAll)

// Setting the take profit and stop loss for short trades
strategy.exit("Take Profit/Stop Loss", "Short", stop=stopLossShort,
limit=takeProfitShort,alert_message=CloseAll)

// Plot trade setup boxes


bgcolor(buy ? color.new(color.green, 90) : na, transp=0, offset=-1)
bgcolor(sell ? color.new(color.red, 90) : na, transp=0, offset=-1)

longCondition = buy and not na(entryPrice)


shortCondition = sell and not na(entryPrice)

var line longTakeProfitLine = na


var line longStopLossLine = na
var line shortTakeProfitLine = na
var line shortStopLossLine = na

if longCondition
longTakeProfitLine := line.new(bar_index, takeProfitLong, bar_index + 1,
takeProfitLong, color=color.green, width=2)
longStopLossLine := line.new(bar_index, stopLossLong, bar_index + 1,
stopLossLong, color=color.red, width=2)
label.new(bar_index + 1, takeProfitLong, str.tostring(takeProfitLong,
"#.#####"), color=color.green, style=label.style_none, textcolor=color.green,
size=size.tiny)
label.new(bar_index + 1, stopLossLong, str.tostring(stopLossLong, "#.#####"),
color=color.red, style=label.style_none, textcolor=color.red, size=size.tiny)

if shortCondition
shortTakeProfitLine := line.new(bar_index, takeProfitShort, bar_index + 1,
takeProfitShort, color=color.green, width=2)
shortStopLossLine := line.new(bar_index, stopLossShort, bar_index + 1,
stopLossShort, color=color.red, width=2)
label.new(bar_index + 1, takeProfitShort, str.tostring(takeProfitShort,
"#.#####"), color=color.green, style=label.style_none, textcolor=color.green,
size=size.tiny)
label.new(bar_index + 1, stopLossShort, str.tostring(stopLossShort, "#.#####"),
color=color.red, style=label.style_none, textcolor=color.red, size=size.tiny)

alertcondition(buy, 'UT Long', 'UT Long')


alertcondition(sell, 'UT Short', 'UT Short')

You might also like