// @version=5
strategy(title=”Higher Timeframe EMA (HTF EMA)”, shorttitle=”EMA+”,
overlay=true,
calc_on_every_tick = true,
initial_capital=10000,
default_qty_value=1, // the cash amount to trade with each order. Such as 1 currency per order
pyramiding=1)
// *********Get user input*********
timeframe = input.timeframe(title=”EMA Timeframe”, defval=”5″)
length = input.int(title=”EMA Length”, defval=50)
colour = input.bool(title=”Color EMA”, defval=true)
smooth = input.bool(title=”Smooth”, defval=true)
// *********TimeFrame to Trade*********
i_startTime = input.time(title=”Start Filter”, defval=timestamp(“01 Jan 2000 00:00 +0000″), group=”Time Filter”, tooltip=”Start date & time to begin searching for setups”)
i_endTime = input.time(title=”End Filter”, defval=timestamp(“01 Jan 2024 19:30 +0000″), group=”Time Filter”, tooltip=”End date & time to stop searching for setups”)
f_dateFilter = (time >= i_startTime and time <= i_endTime) // Check datefilter assignment
// *********Calculate EMA*********
ema = ta.ema(close, length)
emaStep = request.security(syminfo.tickerid, timeframe, ema[barstate.isrealtime ? 1 : 0])[barstate.isrealtime ? 0 : 1] //To avoid re-painting issues,
emaSmooth = request.security(syminfo.tickerid, timeframe, ema[barstate.isrealtime ? 1 : 0], gaps=barmerge.gaps_on)[barstate.isrealtime ? 0 : 1] //To avoid re-painting issues,
// *********Long Conditions: Price crosses above EMA*********
buy_Condition =(close>=emaStep)and(strategy.position_size==0)
// *********Long Exit Conditions: Price crosses below EMA, or price is below the previous bar’s low, or stop loss percent is reached*********
exit_Buy_condition = (close <= emaStep) or (close >= (strategy.position_avg_price+24)) or (low <= (strategy.position_avg_price-6))
// *********Short Conditions*********
short_Condition = (close <= emaStep)
// *********Short Exit Conditions*********
exit_Short_condition = (close >= emaStep) or (close <= (strategy.position_avg_price-24)) or (high >= (strategy.position_avg_price+6))
// ***************************Long Positions***************************
if (buy_Condition and f_dateFilter)
strategy.entry(id=”Long”, direction=strategy.long)
if (exit_Buy_condition)
strategy.close(id=”Long”, comment=”LongExit”)
// ***************************Short Positions***************************
if (short_Condition and f_dateFilter)
strategy.entry(id=”Short”, direction=strategy.short)
if (exit_Short_condition)
strategy.close(id=”Short”, comment=”ShortExit”)
// Draw EMA
plot(smooth ? emaSmooth : emaStep, color=colour ? (close > emaStep ? color.green : color.red) : color.black, linewidth=2, title=”HTF EMA”)