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

PineScript跨多时间周期K线形态检测技术咨询

PineScript多周期K线形态检测技术问题解答

以下是针对你提出的5个PineScript技术问题的解答,结合你提供的三白兵形态检测代码展开:


问题1:何种函数可同时在15分钟、5分钟、3分钟时间周期中检测同步出现的K线形态?

使用request.security()函数即可实现。该函数支持跨周期获取指定时间框架的K线数据与计算结果。你可以针对每个目标周期单独调用它,获取对应周期的形态信号,再判断这些信号是否同时触发。

示例逻辑:

// 获取各周期的三白兵形态信号
fifteenMinSignal = request.security(syminfo.tickerid, "15", Three_White_Soldiers)
fiveMinSignal = request.security(syminfo.tickerid, "5", Three_White_Soldiers)
threeMinSignal = request.security(syminfo.tickerid, "3", Three_White_Soldiers)

// 判断三个周期是否同步触发形态
allSyncTriggered = fifteenMinSignal and fiveMinSignal and threeMinSignal

问题2:若5分钟周期触发形态信号,如何编程在对应两根5分钟K线时段内检测3分钟周期的形态?

核心思路是先定位5分钟信号触发的时间区间,再检查该区间内3分钟周期是否出现目标形态:

  1. 用request.security()获取5分钟周期的形态信号,以及该触发信号对应的K线时间区间;
  2. 获取3分钟周期的形态信号与对应K线时间;
  3. 判断3分钟K线是否落在5分钟信号触发的时间区间内,且形态信号为真。

示例代码:

// 获取5分钟周期的形态信号与时间区间
fiveMinSignal = request.security(syminfo.tickerid, "5", Three_White_Soldiers)
fiveMinBarStartTime = request.security(syminfo.tickerid, "5", time)
fiveMinBarEndTime = fiveMinBarStartTime + 5 * 60000 // 5分钟转毫秒

// 获取3分钟周期的形态信号与K线时间
threeMinSignal = request.security(syminfo.tickerid, "3", Three_White_Soldiers)
threeMinBarTime = request.security(syminfo.tickerid, "3", time)

// 检测两根5分钟K线时段内的3分钟形态(当前触发的5分钟K线+前一根)
prevFiveMinStartTime = fiveMinBarStartTime - 5 * 60000
signalInTwoFiveMinBars = fiveMinSignal and (threeMinBarTime >= prevFiveMinStartTime and threeMinBarTime < fiveMinBarEndTime) and threeMinSignal

问题3:可检索的时间周期数量是否存在限制?例如同时检测15min、5min、3min或仅15min与5min?

官方没有明确限制可调用的时间周期数量,但实际使用中会受脚本性能和数据加载压力影响。同时检测15min、5min、3min这三个周期完全可行,但若调用过多不同周期,可能导致脚本运行变慢,尤其是回溯大量历史数据时。建议根据实际需求选择核心周期,避免不必要的周期调用。


问题4:如何编程实现多周期组合逻辑,比如上述三个周期中任意两个触发形态即发出警报?

先分别获取三个周期的形态信号,再用逻辑运算符组合“任意两个为真”的条件,最后绑定警报触发规则:

// 获取各周期形态信号
fifteenMinSignal = request.security(syminfo.tickerid, "15", Three_White_Soldiers)
fiveMinSignal = request.security(syminfo.tickerid, "5", Three_White_Soldiers)
threeMinSignal = request.security(syminfo.tickerid, "3", Three_White_Soldiers)

// 任意两个周期触发的逻辑条件
anyTwoTriggered = (fifteenMinSignal and fiveMinSignal) 
                  or (fifteenMinSignal and threeMinSignal) 
                  or (fiveMinSignal and threeMinSignal)

// 设置警报
alertcondition(anyTwoTriggered, title="多周期形态触发", message="15/5/3分钟周期中至少两个出现三白兵形态")

问题5:request.security函数是否可用于对警报设置的标的,回溯检测15min、5min、3min周期的K线形态?

可以。request.security()默认针对当前标的(即警报设置的标的)获取数据,只需在函数中指定对应周期参数(如"15"、"5"、"3"),就能回溯检测该标的在这些周期中的K线形态。需要注意的是,回溯的历史数据深度受图表加载的历史数据量限制,若需要更久的历史数据,需调整图表的历史数据加载范围。


附:你提供的三白兵形态检测代码

Three_White_Soldiers = (green_candle_2_days_ago and green_candle_1_day_ago and green_candle_today)
and (high_2_days_ago <= close_1_day_ago and high_1_day_ago <= close_today)
and (close_2_days_ago >= open_1_day_ago and close_1_day_ago >= open_today)
and (open_2_days_ago <= low_1_day_ago and open_1_day_ago <= low_today)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 19:40:57