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

技术问询:实现周二起显示基于周一计算的Weekly VWAP

问题解决:从周二开始显示完整周累积的Weekly VWAP

你的代码核心问题是错误修改了vwap_week_plot输入变量,导致周一的累积计算逻辑被干扰,周二之后的VWAP没有包含周一的数据。以下是修正后的代码,确保整周数据正常累积,仅在周一隐藏显示:

//@version=5
indicator(title='Weekly VWAP - Show from Tuesday', shorttitle='VWAP Weekly', overlay=true)

this_week_plot = input.bool(true, "Plot this week only")

vwap_week_plot = input.bool(true, title='Week VWAP', inline="WEEK VWAP")
vwap_week_color = input.color(color.rgb(102,0,102, 0), title='', inline="WEEK VWAP")
src = input(hlc3, title='', inline="WEEK VWAP")

// 周时间戳,用于判断周初
t = time('W')
start_of_week = na(t[1]) or t > t[1]

// 累积整周的成交量加权价格和成交量,包含周一数据
sumSrc = src * volume
sumVol = volume
sumSrc := start_of_week ? sumSrc : sumSrc + sumSrc[1]
sumVol := start_of_week ? sumVol : sumVol + sumVol[1]

// 计算完整的周VWAP
VWAP_Week = sumSrc / sumVol

// 构建显示条件:
// 1. 用户开启了周VWAP显示
// 2. 满足当前周显示要求(或关闭当前周限制时显示所有周)
// 3. 不是周一
show_condition = vwap_week_plot and 
                (this_week_plot ? (year(time) == year(timenow) and weekofyear(time) == weekofyear(timenow)) : true) and
                (dayofweek(time) != dayofweek.monday)

// 仅在满足条件时绘制
plot(show_condition ? VWAP_Week : na, title='VWAP Week', color=vwap_week_color, linewidth=2)

关键修改说明:

  • 保留完整的周数据累积逻辑:sumSrc和sumVol始终从周一开始累积,不会因为周一不显示而中断计算。
  • 用独立的show_condition变量控制显示:结合用户输入的显示开关、当前周限制,以及非周一的条件,避免修改原始输入变量。
  • 确保周二到周五显示的是包含周一数据的完整周VWAP,符合需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 09:15:34