如何在Pine Script中每秒调用含警报的函数?security方法无效
在Pine Script中实现每秒触发警报的方法
你之前用request.security的方法之所以只在K线起始触发,是因为request.security仅在指定周期的新K线生成时执行传入的函数。即便用1S周期,若主图表周期不是1S,或脚本未在实时价格更新时执行,也没法达到每秒触发的预期效果。
要在实时模式下实现每秒触发警报,可以通过跟踪当前时间的秒数变化来实现,代码示例如下:
//@version=5 indicator("每秒触发警报", overlay=true) // 仅在实时行情中运行 if barstate.isrealtime // 提取当前时间的秒数 currentSecond = time / 1000 % 60 // 用var变量保存上一次触发的秒数,避免每次重置 var int lastTriggeredSecond = na // 当秒数发生变化时触发警报 if currentSecond != lastTriggeredSecond alert("1s alert", alert.freq_once_per_bar_close) // 更新上一次触发的秒数记录 lastTriggeredSecond := currentSecond
关键注意点:
- 必须在警报设置中开启允许实时警报(触发条件选择实时相关选项)。
- 脚本仅在实时行情下运行,回测阶段不会触发警报。
- Pine Script的执行依赖价格变动或K线更新,如果市场无价格波动,脚本不会主动运行,此时即便秒数变化也无法触发警报,这是平台机制限制。
内容的提问来源于stack exchange,提问作者Moiz Hassan
相关产品推荐
相关产品推荐

