Skip to content

Instantly share code, notes, and snippets.

@iCodeForBananas
Created April 4, 2023 19:36
Show Gist options
  • Select an option

  • Save iCodeForBananas/f83f16cb64021a90bcbea453361c8667 to your computer and use it in GitHub Desktop.

Select an option

Save iCodeForBananas/f83f16cb64021a90bcbea453361c8667 to your computer and use it in GitHub Desktop.
//@version=5
strategy("MA Price Cross w/ Continuous Entries Strategy", overlay=true, initial_capital = 5000, default_qty_value = 1, pyramiding = 0)
hmaLength = input(20, 'Trigger MA length (default HMA)', group = 'Trade entry')
smaEnabled = input.bool(false, "Use SMA", group = 'Trade entry')
emaEnabled = input.bool(false, "Use EMA", group = 'Trade entry')
ma = ta.hma(close, hmaLength)
closeTradesEOD = input.bool(false, 'Close trades end of day', group = 'Other settings')
ma := smaEnabled ? ta.sma(close, hmaLength) : ma
ma := emaEnabled ? ta.ema(close, hmaLength) : ma
// Time Range
timeAllowed = input.session("0830-1400", "Allowed hours", group = 'Time filters')
timeIsAllowed = time(timeframe.period, timeAllowed + ":1234567")
FromMonth=input.int(defval=1,title="FromMonth",minval=1,maxval=12, group = 'Time filters')
FromDay=input.int(defval=1,title="FromDay",minval=1,maxval=31, group = 'Time filters')
FromYear=input.int(defval=2020,title="FromYear",minval=2016, group = 'Time filters')
ToMonth=input.int(defval=1,title="ToMonth",minval=1,maxval=12, group = 'Time filters')
ToDay=input.int(defval=1,title="ToDay",minval=1,maxval=31, group = 'Time filters')
ToYear=input.int(defval=9999,title="ToYear",minval=2017, group = 'Time filters')
start=timestamp(FromYear,FromMonth,FromDay,00,00)
finish=timestamp(ToYear,ToMonth,ToDay,23,59)
window()=>time>=start and time<=finish?true:false
// STEP 2:
// See if this bar's time happened on/after start date
afterStartDate = time >= start and time<=finish?true:false
plot(ma, "MA", color = color.purple)
if (ta.crossover(close, ma) and afterStartDate and timeIsAllowed)
strategy.entry("MacdLE", strategy.long, comment="Long entry")
if (ta.crossunder(close, ma) and afterStartDate and timeIsAllowed)
strategy.entry("MacdSE", strategy.short, comment="Short entry")
if(closeTradesEOD and hour>=15)
strategy.close_all("EOD")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment