TradingView(Pine Script)如何通过webhook获取解析后的实际价格
问题原因
{{close}}形式的双大括号占位符是TradingView告警可视化配置面板的专属语法,仅在告警创建弹窗的「消息」输入框内手动填写时,才会被平台自动替换为对应的实时行情数值。- 若将这类占位符直接写在Pine Script的
alert()函数消息参数中,传入的是固定静态字符串,平台不会对字符串内部的占位符做解析替换,因此会原样输出占位符文本。
正确实现方案
方案1:代码内直接拼接行情变量(推荐,适配webhook场景)
直接在Pine Script中调用内置行情变量close,将数值转为字符串后拼接进告警内容即可,无需使用双大括号占位符。
如果需要输出纯文本告警,参考代码:
// 拼接当前收盘价生成告警消息 alertMessage = str.format("BTC SHORT {0}", close) alert(alertMessage, alert.freq_once_per_bar)
触发后输出格式为预期的BTC SHORT 27455.3形式。
如果需要构造JSON格式的webhook请求体,注意Pine Script中str.format函数输出字面量大括号需要写双大括号转义,参考代码:
// 构造标准JSON格式webhook消息 alertJson = str.format('{{"content": "BTC SHORT {0}"}}', close) alert(alertJson, alert.freq_once_per_bar)
方案2:在告警配置面板使用占位符
如果不想在代码中拼接消息内容,可以不在alert()函数中传入自定义消息,创建告警时直接在配置面板的「消息」输入框中填写{"content": "BTC SHORT {{close}}"},此时占位符会被平台正常解析替换。
内容的提问来源于stack exchange,提问作者Andrey Kanava
相关产品推荐
相关产品推荐

