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

如何绘制各周期Anchored VWAP终值的水平射线直至价格回踩

多周期Anchored VWAP水平射线绘制方案

需求描述

针对日线、周线、月线周期的每个Anchored VWAP终点绘制水平射线,当价格回踩该水平时终止射线(即裸VWAP)。

当前示例脚本

//@version=5
indicator("nVWAP(s)", overlay=true)

newWeek = ta.change(time("W")) != 0

vwap_w = ta.vwap(open, timeframe.change("1W"))
wvwapClose = ta.valuewhen(newWeek, vwap_w[1], 0)
plot(wvwapClose, color = color.blue)
plot(vwap_w, color = color.blue)

问题说明

当前脚本绘制的线段仅延伸至下一周期,会出现垂直衔接的断层。需要实现:

  • 射线从周期VWAP终点开始水平延伸
  • 当价格回踩对应VWAP水平时,射线终止
  • 避免周期间的垂直衔接问题

预期效果为仅显示未被回踩的射线;周期切换显示功能暂不考虑。

解决方案代码

//@version=5
indicator("Multi-Period Anchored VWAP Rays", overlay=true)

// 选择目标周期
periodInput = input.string("Weekly", "Target Period", options=["Daily", "Weekly", "Monthly"])
timeframeStr = periodInput == "Daily" ? "D" : periodInput == "Weekly" ? "W" : "M"

// 检测新周期起始点
newPeriod = ta.change(time(timeframeStr)) != 0

// 计算对应周期的VWAP
vwapPeriod = ta.vwap(open, timeframe.change(timeframeStr))

// 存储未被回踩的VWAP水平及对应K线位置
var float[] vwapLevels = array.new_float()
var int[] levelBars = array.new_int()

// 新周期开始时,记录上一周期的VWAP终值
if newPeriod
    array.push(vwapLevels, vwapPeriod[1])
    array.push(levelBars, bar_index[1])

// 移除已被价格触碰的VWAP水平
var int i = 0
while i < array.size(vwapLevels)
    level = array.get(vwapLevels, i)
    // 判断价格是否上下影线触碰该水平
    touched = ta.low <= level and ta.high >= level
    if touched
        array.remove(vwapLevels, i)
        array.remove(levelBars, i)
    else
        i += 1

// 绘制未被触碰的水平射线
for i = 0 to array.size(vwapLevels) - 1
    level = array.get(vwapLevels, i)
    startBar = array.get(levelBars, i)
    line.new(startBar, level, bar_index, level, color=color.blue, width=2)

关键逻辑解释

  1. 周期适配:通过输入框切换日线/周线/月线,自动匹配对应时间框架字符串,无需修改代码
  2. VWAP锚定:使用timeframe.change()确保每个周期内的VWAP计算独立,准确获取周期终点值
  3. 水平管理:用数组存储未被回踩的VWAP水平和对应K线索引,实时检查价格触碰状态,触碰则移除该水平
  4. 射线绘制:遍历有效水平,从周期终点K线绘制水平射线到当前K线,彻底解决垂直衔接问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 23:40:24