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

请求修复200 SMA高低线指标:支持指定日期与盘后时段

修复Pine Script:交互式日期选择的200MA静态高低线(支持盘后)

问题梳理

需求是在目标日期的次日,显示该日期内200MA的静态高低线,当前代码存在以下问题:

  • 交互式日期选择功能异常,仅能显示最后一次选择日期的线条,切换其他日期时数据不重置
  • 盘后时段未被纳入统计范围
  • 每个K线都创建新线条,导致图表线条堆积

问题根源

  1. 使用var声明的hi/lo是全局持久变量,切换日期时不会自动重置,保留了旧日期的极值
  2. 日期匹配逻辑错误:直接用in_date作为判断条件,仅当K线时间完全等于输入时间戳时才触发,无法覆盖整个目标日期的K线
  3. 时段限制timeAllowed排除了盘后数据,且线条创建逻辑错误,每个K线都生成新线条

修复方案

  1. 移除var关键字,基于日期匹配来重置高低值
  2. 正确判断当前K线是否属于选择的目标日期,统计该日期内200MA的最高/最低值
  3. 仅在目标日期结束后的第一个K线创建静态线条,避免重复生成
  4. 新增盘后支持选项,让用户自主选择是否纳入盘后数据

修复后的完整代码

//@version=5
indicator('200MA 静态高低线', '', true)

// 交互式日期输入
target_date = input.time(timestamp("01 Mar 2024 GMT-6"), "选择目标日期", confirm = true)
// 可选:是否包含盘后数据
include_afterhours = input.bool(true, "包含盘后时段", tooltip="勾选后将统计盘内+盘后的200MA极值")
// 盘内时段(仅当不包含盘后时生效)
regular_session = input.session('0300-1959', "盘内时段", confirm=true)

// 计算200MA
sma200 = ta.sma(close, 200)

// 解析目标日期的年/月/日
target_year = ta.year(target_date)
target_month = ta.month(target_date)
target_day = ta.dayofmonth(target_date)

// 判断当前K线是否属于目标日期
is_target_day = ta.year == target_year and ta.month == target_month and ta.dayofmonth == target_day

// 判断是否在统计时段内(盘内+可选盘后)
is_in_session = include_afterhours ? true : time(timeframe.period, regular_session + ':23456')

// 统计目标日期内的200MA最高/最低值
var float daily_hi = na
var float daily_lo = na

// 每日开盘时重置极值
if ta.change(ta.dayofmonth)
    daily_hi := na
    daily_lo := na

// 目标日期内更新极值
if is_target_day and is_in_session
    daily_hi := na(daily_hi) ? sma200 : math.max(daily_hi, sma200)
    daily_lo := na(daily_lo) ? sma200 : math.min(daily_lo, sma200)

// 在目标日期的次日开盘时绘制静态高低线
if not is_target_day and is_target_day[1] and not na(daily_hi) and not na(daily_lo)
    // 绘制高线
    line.new(bar_index, daily_hi, bar_index + 1, daily_hi, extend=extend.right, color=color.rgb(218, 15, 15), width=1)
    // 绘制低线
    line.new(bar_index, daily_lo, bar_index + 1, daily_lo, extend=extend.right, color=color.rgb(218, 15, 15), width=1)

代码说明

  • 日期匹配:通过解析目标日期的年/月/日,精准匹配当天所有K线,确保统计完整的当日200MA极值
  • 盘后支持:新增开关选项,用户可选择是否纳入盘后数据,默认开启
  • 线条创建逻辑:仅在目标日期结束后的第一个K线绘制一次线条,避免图表堆积
  • 极值重置:每日自动重置极值变量,切换日期时无需手动重置,保证数据准确性

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 21:23:28