Pine Script中能否从低时间框架接收蜡烛收盘触发的警报?
在小时K线周期下实现15分钟蜡烛收盘时的条件通知
这个需求完全可行,核心是通过request.security()在小时周期脚本中捕获15分钟蜡烛的收盘信号,结合你的成交量Delta条件触发通知。
你之前的问题原因
直接在request.security_lower_tf中调用timeframe.change("15")逻辑不成立——timeframe.change()是基于当前图表周期(小时线)的函数,放到更低周期的上下文里会导致状态判断混乱,跟踪数组大小的方式也容易因周期同步问题引发脚本异常。
正确实现方法
- 在15分钟周期上下文里判断收盘状态:用
barstate.isconfirmed(或ta.barstate.islastconfirmedhistory)来标记15分钟蜡烛是否已经收盘。 - 同步获取15分钟周期的成交量Delta:把成交量Delta的计算逻辑放到
request.security()的第三个参数中,确保计算的是15分钟周期的数据。 - 触发条件通知:在小时周期脚本中,当捕获到15分钟收盘信号且Delta满足条件时,调用
alert()触发通知。
示例代码
//@version=5 indicator("15分钟收盘Delta通知", overlay=false) // 从15分钟周期获取收盘状态和成交量Delta [is15mClosed, volDelta] = request.security(syminfo.tickerid, "15", [ barstate.isconfirmed, ta.volume - ta.volume[1] // 替换成你实际的成交量Delta计算逻辑 ]) // 当15分钟蜡烛收盘且Delta满足条件时触发通知 if (is15mClosed and volDelta > 500) // 替换为你的具体条件阈值 alert("15分钟蜡烛收盘,成交量Delta达标!", alert.freq_once_per_bar_close)
关键注意事项
- 确保
alert()的频率设置为alert.freq_once_per_bar_close,避免同一15分钟收盘信号重复触发通知。 - 所有依赖15分钟周期的计算(比如成交量Delta)必须封装在
request.security()的参数内,不要在外部用当前周期数据拼接计算。 - 在TradingView的alert设置中,选择对应的通知渠道(弹窗、邮件、APP推送等),并确保脚本的alert权限开启。
内容的提问来源于stack exchange,提问作者redbluefan
相关产品推荐
相关产品推荐

