我正试图在警报框中创建一个警报,如下所示:
Test Signal (Nifty Spot price) {{time}}:
{{ticker}} Recommendation {{strategy.order.action}} at CMP: {{close}} with SL:{{plot("StopLoss")}} Target(with 1:1 Risk-to-Reward Ratio): {{plot("Target")}}.但是,最终消息中没有替换StopLoss和Target。
最后一条警报消息如下所示:

我的代码是:
buyTarget = close + ((close - atrLow) * rrRatio)
sellTarget = close - ((atrHigh - close) * rrRatio)
// Trading
var float sl = na
var float tgt = na
h = hour(time('1'), syminfo.timezone)
m = minute(time('1'), syminfo.timezone)
hourVal = h * 100 + m
if (mktAlwaysOn or (hourVal < endOfDay))
// Entry
var string alert_msg = na
if (sureBuyInTrend)
alert_msg := 'Buy: ' + syminfo.ticker + ' , SL: ' + str.tostring(math.floor(atrLow[0])) + ', Target(RR=1:1):' + str.tostring(math.floor(buyTarget)) + '. CMP: ' + str.tostring(close)
strategy.entry("enter long", strategy.long, lotSize, limit=na, stop=na, comment="Enter Long", alert_message=alert_msg)
sl := atrLow
tgt := buyTarget
// alert('Buy:' + syminfo.ticker + ' ,SL:' + str.tostring(math.floor(atrLow[0])) + ', Target:' + str.tostring(math.floor(buyTarget)), alert.freq_once_per_bar)
if (sureSellInTrend)
alert_msg := 'Sell: ' + syminfo.ticker + ' , SL: ' + str.tostring(math.floor(atrHigh[0])) + ', Target(RR=1:1): ' + str.tostring(math.floor(sellTarget)) + '. CMP: ' + str.tostring(close)
strategy.entry("enter short", strategy.short, lotSize, limit=na, stop=na, comment="Enter Short", alert_message=alert_msg)
sl := atrHigh
tgt := sellTarget
// alert('Sell:' + syminfo.ticker + ' ,SL:' + str.tostring(math.floor(atrHigh[0])) + ', Target:' + str.tostring(math.floor(sellTarget)), alert.freq_once_per_bar)
alert(alert_msg, alert.freq_once_per_bar)
// Exit: target or SL
shortExitComment = (close > sl) ? "Short SL hit" : sureBuyInTrend ? "Short target hit" : na
var string exit_msg = na
if (sureSellInTrend or (close < sl) or (close > buyTarget))
exit_msg := (close < sl) ? "Long SL hit. Sorry" : (close > buyTarget) ? 'Long target hit. Enjoy': sureSellInTrend ? 'Next Sell signal came. Exiting' : na
strategy.close("enter long", comment=close < sl ? "Long SL hit" : "Long target hit", alert_message=exit_msg)
if (sureBuyInTrend or (close > sl) or (close < sellTarget))
exit_msg := (close > sl) ? "Short SL hit. Sorry" : (close < sellTarget) ? 'Short target hit. Enjoy': sureBuyInTrend ? 'Next Buy signal came. Exiting' : na
strategy.close("enter short", comment=close > sl ? "Short SL hit" : "Short target hit", alert_message=exit_msg)
else if(not mktAlwaysOn)
// Close all open position at the end if Day
strategy.close_all(comment = "Close all entries", alert_message="Closing all the pending open positions as market close is near. Thanks.")
// Hack for alerts
targetPrice = sureBuyInTrend ? buyTarget : sureSellInTrend ? sellTarget : na
plot(math.round(sl,2), title="StopLoss", display = display.all)
plot(math.round(targetPrice,2), title="Target", display = display.all)所以逻辑非常简单:
对于SL,我正在考虑ATR,并基于此派生buySL和sellSL。对于目标,我们只是考虑R:R = 1:1和加/减的价格。但我所犯的错误却没有出现。
任何帮助都将不胜感激。
发布于 2022-09-24 04:12:12
我用不同的方法解决了这个问题。在strategy.entry中,有一个名为alert_message的论点。我使用它,然后在“警报设置”对话框中引用它如下:
Alert:
{{strategy.order.alert_message}}
Action:
{{strategy.order.action}} @ {{strategy.order.contracts}} filled on {{ticker}}. New strategy position is {{strategy.position_size}}.
Order number: {{strategy.order.id}}代码如下:
// Entry
var string alert_msg = na
if (sureBuyInTrend)
alert_msg := 'Buy: ' + syminfo.ticker + ' , SL: ' + str.tostring(math.floor(atrLow[0])) + ', Target(RR=1:1):' + str.tostring(math.floor(buyTarget)) + '. CMP: ' + str.tostring(close)
strategy.entry("enter long", strategy.long, lotSize, limit=na, stop=na, comment="Enter Long", alert_message=alert_msg)
sl := atrLow
tgt := buyTarget
if (sureSellInTrend)
alert_msg := 'Sell: ' + syminfo.ticker + ' , SL: ' + str.tostring(math.floor(atrHigh[0])) + ', Target(RR=1:1): ' + str.tostring(math.floor(sellTarget)) + '. CMP: ' + str.tostring(close)
strategy.entry("enter short", strategy.short, lotSize, limit=na, stop=na, comment="Enter Short", alert_message=alert_msg)
sl := atrHigh
tgt := sellTargethttps://stackoverflow.com/questions/73809439
复制相似问题