Как сделать, чтобы оповещения были только long. pine-script
у меня есть стратегия для tradingview написанная на pine-script v3. На данный момент она открывает long сделку, дожидается short сделки, а после опять открывает long. Можно ли сделать так, чтобы short сделок не было т.к. открылась long и не дожидаясь short, могла открыться еще одна long сделка.
//@version=3
strategy(title = "Strategy 2.1", shorttitle = "Strategy 2.1", overlay = true,
pyramiding = 0, default_qty_type = strategy.percent_of_equity, default_qty_value = 10, calc_on_every_tick=false)
useRes = input(defval = true, title = "Использовать альтернативное разрешение?")
intRes = input(defval = 3, title = "Умножение для альтернативного умножения")
stratRes = ismonthly? tostring(interval*intRes,"###M") : isweekly? tostring(interval*intRes,"###W") : isdaily? tostring(interval*intRes,"###D") : isintraday ? tostring(interval*intRes,"####") : '60'
basisType = input(defval = "SMMA", title = "Тип MA: ", options=["SMМA"])
basisLen = input(defval = 8, title = "Период MA", minval = 1)
offsetSigma = input(defval = 6, title = "Смещение для LSMA / Sigma", minval = 0)
offsetALMA = input(defval = 0.85, title = "Смещение для ALMA", minval = 0, step = 0.01)
scolor = input(false, title="Показывать цветные линии для указания тренда?")
delayOffset = input(defval = 0, title = "Задержка открытия/закрытия MA (отмена предсказания)", minval = 0, step = 1)
tradeType = input("BOTH", title="Какие сделки отслеживать: ", options=["LONG", "SHORT", "BOTH", "None"])
green100 = #008000FF
lime100 = #00FF00FF
red100 = #FF0000FF
blue100 = #0000FFFF
aqua100 = #00FFFFFF
darkred100 = #8B0000FF
gray100 = #808080FF
variant(type, src, len, offSig, offALMA) =>
//тут происходят все вычисления
type=="EMA"?v2 : type=="DEMA"?v3 : v1
reso(exp, use, res) => use ? security(tickerid, res, exp, gaps=barmerge.gaps_off, lookahead=barmerge.lookahead_on) : exp
closeSeries = variant(basisType, close[delayOffset], basisLen, offsetSigma, offsetALMA)
openSeries = variant(basisType, open[delayOffset], basisLen, offsetSigma, offsetALMA)
closeSeriesAlt = reso(closeSeries, useRes, stratRes)
openSeriesAlt = reso(openSeries, useRes, stratRes)
trendColour = (closeSeriesAlt > openSeriesAlt) ? green : red
bcolour = (closeSeries > openSeriesAlt) ? lime100 : red100
barcolor(scolor?bcolour:na, title = "Bar Colours")
closeP=plot(closeSeriesAlt, title = "Close Series", color = trendColour, linewidth = 2, style = line, transp = 20)
openP=plot(openSeriesAlt, title = "Open Series", color = trendColour, linewidth = 2, style = line, transp = 20)
fill(closeP,openP,color=trendColour,transp=80)
xlong = crossover(closeSeriesAlt, openSeriesAlt)
xshort = crossunder(closeSeriesAlt, openSeriesAlt)
longCond = xlong // альтернатива: longCond[1]? false : (xlong or xlong[1]) and close>closeSeriesAlt and close>=open
shortCond = xshort // альтернатива: shortCond[1]? false : (xshort or xshort[1]) and close<closeSeriesAlt and close<=open
slPoints = input(defval = 0, title = "Initial Stop Loss Points (zero to disable)", minval = 0)
tpPoints = input(defval = 0, title = "Initial Target Profit Points (zero for disable)", minval = 0)
ebar = input(defval = 10000, title="Number of Bars for Back Testing", minval=0)
dummy = input(false, title="- SET to ZERO for Daily or Longer Timeframes" )
tdays = (timenow-time)/60000.0 // число в минутах с последнего бара
tdays := ismonthly? tdays/1440.0/5.0/4.3/interval : isweekly? tdays/1440.0/5.0/interval : isdaily? tdays/1440.0/interval : tdays/interval // number of bars since last bar
TP = tpPoints>0?tpPoints:na
SL = slPoints>0?slPoints:na
if ((ebar==0 or tdays<=ebar) and tradeType!="NONE")
strategy.entry("long", strategy.long, when=longCond==true and tradeType!="SHORT")
strategy.entry("short", strategy.short, when=shortCond==true and tradeType!="LONG")
strategy.close("long", when = shortCond==true and tradeType=="LONG")
strategy.close("short", when = longCond==true and tradeType=="SHORT")
strategy.exit("XL", from_entry = "long", profit = TP, loss = SL)
strategy.exit("XS", from_entry = "short", profit = TP, loss = SL)