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

动态计算指定周期收盘价平均值并绘制水平线的Pine Script问询

问题修正与实现代码

你需要的是仅针对Day0、Day5、Day10、Day15、Day20、Day30这些特定时间点的收盘价计算动态平均值,并随着新数据点的出现更新水平线。原代码存在以下问题:

  • 累加了所有K线的收盘价,而非仅目标时间点的收盘价
  • 重复创建标签和线条,导致界面混乱
  • 时间点范围与需求不符

以下是修正后的代码:

//@version=5
indicator("动态目标日收盘价均值", shorttitle="ACP", overlay=true)

// 定义需要计算的目标天数(以Day0为起点)
target_days = [0, 5, 10, 15, 20, 30]
// 用数组存储目标天数对应的收盘价
var float[] close_values = array.new_float()
// 用数组存储绘制的线条和标签对象,避免重复创建
var line[] avg_lines = array.new_line()
var label[] avg_labels = array.new_label()

// 初始化Day0的收盘价
if bar_index == 0
    array.push(close_values, close)

// 当到达目标天数时,记录收盘价
for day in target_days
    if bar_index == day and day != 0  // Day0已初始化,跳过重复添加
        array.push(close_values, close)

// 计算当前已收集到的目标点的平均值
current_avg = array.size(close_values) > 0 ? array.avg(close_values) : na

// 绘制并更新动态水平线和标签
if not na(current_avg)
    // 移除旧的线条和标签(如果存在)
    if array.size(avg_lines) > 0
        line.delete(array.get(avg_lines, 0))
        label.delete(array.get(avg_labels, 0))
    // 创建新的水平线,向右延伸
    new_line = line.new(bar_index, current_avg, bar_index + 1, current_avg, width=2, color=color.new(color.blue, 0), style=line.style_solid, extend=extend.right)
    // 创建标签显示当前均值和已收集的天数
    label_text = str.tostring(current_avg, "#.##") + " (" + str.tostring(array.size(close_values)) + "个点)"
    new_label = label.new(bar_index, current_avg + syminfo.mintick * 5, label_text, xloc=xloc.bar_index, yloc=yloc.abovebar, color=color.blue, style=label.style_label_left, size=size.small)
    // 将新对象存入数组
    array.push(avg_lines, new_line)
    array.push(avg_labels, new_label)

// 标记目标天数的位置
for day in target_days
    if bar_index == day
        label.new(bar_index, low - syminfo.mintick * 5, "Day" + str.tostring(day), xloc=xloc.bar_index, yloc=yloc.belowbar, color=color.gray, style=label.style_none, size=size.small)

关键说明:

  • 仅在bar_index等于目标天数时,才将该K线的收盘价加入计算数组
  • 每次有新的目标点加入时,重新计算平均值并更新水平线和标签,避免重复绘制
  • 水平线会随着新数据点的加入自动更新价格,始终显示当前已收集目标点的平均收盘价
  • 保留了目标天数的标记,方便查看关键时间点

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 04:10:28