0
votes

Below is a modified copy of a trading view script. The original had both Buy and Sell signals incorporated in the same script. I wanted to create two copies of this. One for Buy signals, one for sell signals. My reason for this was that I wanted more control over the alerts that were being fired off.

So... the code below is my copy, which just include the Buy signal stuff. On the chart it seems to work fine. My big issue however is that the alerts don't seem to get triggered at all.

If anyone can help that would be great. Many thanks

//@version=4
strategy(title="My Short Timescale Buy Strategy", overlay = true)

// Inputs
a = input(1,     title = "Key Vaule. 'This changes the sensitivity'")
c = input(10,    title = "ATR Period")
h = input(false, title = "Signals from Heikin Ashi Candles")

xATR  = atr(c)
nLoss = a * xATR

src = h ? security(heikinashi(syminfo.tickerid), timeframe.period, close, lookahead = false) : close

xATRTrailingStop = 0.0
xATRTrailingStop := iff(src > nz(xATRTrailingStop[1], 0) and src[1] > nz(xATRTrailingStop[1], 0), max(nz(xATRTrailingStop[1]), src - nLoss),
   iff(src < nz(xATRTrailingStop[1], 0) and src[1] < nz(xATRTrailingStop[1], 0), min(nz(xATRTrailingStop[1]), src + nLoss), 
   iff(src > nz(xATRTrailingStop[1], 0), src - nLoss, src + nLoss)))

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

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

ema   = ema(src,1) 
above = crossover(ema, xATRTrailingStop)
below = crossover(xATRTrailingStop, ema)

buy  = src > xATRTrailingStop and above 


barbuy  = src > xATRTrailingStop 

plotshape(buy,  title = "Buy1",  text = 'Buy',  style = shape.labelup,   location = location.belowbar, color= color.green, textcolor = color.white, transp = 0, size = size.tiny)

barcolor(barbuy  ? color.green : na)

alertcondition(buy,  "UT Long5",  "UT Long6")

startDate = input(title="Start Date", type=input.integer,
 defval=1, minval=1, maxval=31)
startMonth = input(title="Start Month", type=input.integer,
 defval=1, minval=1, maxval=12)
startYear = input(title="Start Year", type=input.integer,
 defval=2021, minval=1800, maxval=2100)

endDate = input(title="End Date", type=input.integer,
 defval=1, minval=1, maxval=31)
endMonth = input(title="End Month", type=input.integer,
 defval=7, minval=1, maxval=12)
endYear = input(title="End Year", type=input.integer,
 defval=2023, minval=1800, maxval=2100)

inDateRange = (time >= timestamp(syminfo.timezone, startYear,
     startMonth, startDate, 0, 0)) and
 (time < timestamp(syminfo.timezone, endYear, endMonth, endDate, 0, 0))

if (inDateRange and barbuy)
strategy.entry("buy9", strategy.long, when = src > xATRTrailingStop and above )