You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Pine Script策略脚本中的自定义变量传递到告警脚本

解决方案

之前方案失效的核心原因:你仅将动态JSON写入了订单comment参数,但告警配置时仍使用固定内容,未调用TradingView内置的占位符读取comment的动态值,因此无法拿到自定义变量,可选择以下任意一种方案解决:

方案1:基于订单comment传递变量

  1. 修正策略代码,确保动态JSON拼接正确,示例适配Pine Script v5,v4去掉str.前缀即可:
mySize = 8
LongCondition = crossover(close, high[1])
// 提前拼接好告警用的JSON,方便调试
alert_content = '{"pair":"BTCUSDT","units":"' + str.tostring(mySize) + '","unitsType":"absolute","exchange":"blablabla","apiKey":"blablabla","token":"blablabla","isBuy":true,"isMarket":true}'
if LongCondition
    strategy.entry("Long", strategy.long, qty=mySize, comment=alert_content)
  1. 告警配置时,删除原有固定JSON内容,将告警消息栏替换为仅保留{{strategy.order.comment}}占位符即可,TradingView触发告警时会自动将订单的comment内容填充到消息中。

方案2:使用alert()函数直接推送(更灵活,推荐)

这种方案不需要依赖订单的comment字段,不受comment长度限制,还可单独控制告警触发频率:

  1. 策略代码示例:
mySize = 8
LongCondition = crossover(close, high[1])
if LongCondition
    strategy.entry("Long", strategy.long, qty=mySize, comment="Open")
    // 直接触发告警,freq可根据需求调整:once_per_bar_close 代表每根K线收盘仅触发一次
    alert('{"pair":"BTCUSDT","units":"' + str.tostring(mySize) + '","unitsType":"absolute","exchange":"blablabla","apiKey":"blablabla","token":"blablabla","isBuy":true,"isMarket":true}', alert.freq_once_per_bar_close)
  1. 告警配置时,将告警消息栏替换为仅保留{{message}}占位符即可,会自动读取alert函数中生成的动态内容。

注意事项

  • 拼接JSON时注意引号闭合,避免格式错误导致第三方服务解析失败
  • 告警触发频率需和策略运行逻辑匹配,避免重复发送订单
  • 若使用Pine Script v4版本,将str.tostring改为tostring即可

内容的提问来源于stack exchange,提问作者user17403307

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 03:06:01