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

TradingView Pine Script:如何检测过去X日内买入条件是否满足?

TradingView筛选器:检测过去X日内买入条件是否满足

你的代码存在两个核心问题:

  • 错误判断K线颜色:你用c == color.green来判断K线颜色,但c是收盘价,不是K线的颜色值。TradingView里判断阳/阴K线需要通过收盘价和开盘价的对比。
  • 时间逻辑错误:当前代码仅判断当前K线是否在过去10天内且满足买入条件,但筛选器需要的是过去X日内是否出现过至少一次满足条件的K线,而非当前K线同时满足。

修正后的代码示例(以过去10天为例)

//@version=5
indicator("买入条件筛选器", overlay=true)

// 定义X天的时间范围(毫秒)
X_DAYS = 10
time_window = timenow - X_DAYS * 24 * 60 * 60 * 1000

// 正确判断K线颜色:红K=收盘价<开盘价,绿K=收盘价>开盘价
red_bar = close < open
green_bar = close > open

// 定义买入条件:连续两根红K后出现一根绿K
buyCondition = red_bar[2] and red_bar[1] and green_bar

// 检测过去X日内是否出现过买入条件
buyInLastXDays = ta.barssince(buyCondition) != bar_index and time[ta.barssince(buyCondition)] >= time_window

// 筛选器输出(用于TradingView筛选器时,返回布尔值)
screener() => buyInLastXDays

代码说明

  1. K线颜色判断:用close < open和close > open替代颜色值对比,这是判断K线涨跌的标准方式。
  2. 时间范围检测:
    • 计算过去X天的时间戳阈值time_window。
    • 用ta.barssince(buyCondition)获取距离最近一次满足买入条件的K线的间隔数。
    • 检查该K线的时间是否在time_window之后,以此确认是否在过去X日内出现过买入信号。
  3. 筛选器返回值:screener()函数直接返回buyInLastXDays布尔值,用于TradingView筛选器中筛选符合条件的标的。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 20:48:23