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

如何在PineScript中声明条件的考量周期?周度双指标验证

PineScript实现周内双条件检查逻辑

核心实现思路

  • 利用ta.change(timeframe.weekly)识别每周的起始节点,重置周期内的条件追踪标记
  • 分别维护两个布尔变量,记录本周内RSI是否曾突破20、MACD是否曾突破25
  • 每周切换时,若上周两个条件均满足,则将IndexValue加1

完整代码示例

//@version=5
indicator("周内双条件索引计算", overlay=false)

// 计算基础指标
rsiValue = ta.rsi(close, 14)
[macdLine, signalLine, _] = ta.macd(close, 12, 26, 9)

// 标记新一周的开始
newWeek = ta.change(timeframe.weekly)

// 声明跨周期保留的条件状态变量
var bool rsiAbove20ThisWeek = false
var bool macdAbove25ThisWeek = false

// 更新本周内的条件满足状态
rsiAbove20ThisWeek := newWeek ? rsiValue > 20 : rsiAbove20ThisWeek or rsiValue > 20
macdAbove25ThisWeek := newWeek ? macdLine > 25 : macdAbove25ThisWeek or macdLine > 25

// 计算索引值
var int IndexValue = 0
// 跳过第一根K线的初始检查,避免误触发
if newWeek and bar_index > 0
    if rsiAbove20ThisWeek and macdAbove25ThisWeek
        IndexValue += 1

// 可视化输出索引值
plot(IndexValue, title="Index Value", color=color.blue, linewidth=2)

代码细节说明

  • var关键字:让变量在K线迭代中保留状态,不会每次都被重置,只有每周开始时才更新初始值
  • 条件更新逻辑:每周第一天用当前K线的指标值初始化状态,之后只要有任意一根K线满足条件,就将状态设为true并保持到周末
  • 索引更新时机:在新一周开始时检查上一周的状态,确保每一周只会触发一次索引累加

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 22:48:51