Pinescript如何绘制前一交易日VWAP收盘值的当日全时段水平线
实现方案
Pine Script内置的vwap()函数默认会在每个交易日开盘时自动重置计算,我们可以通过检测交易日边界、存储前一日收盘时的VWAP值,再在当日固定绘制该值的水平线即可满足需求。
完整修改后代码
//@version=5 indicator(title="前一交易日收盘VWAP水平线", overlay=true) // 计算当日实时VWAP vwapValue = ta.vwap(close, volume) // 定义变量存储前一交易日收盘VWAP,var关键字保证变量值在K线切换时不会被重置 var float prevDayVwapClose = na // 检测是否为新交易日的第一根K线 isNewDay = ta.change(time("D")) // 新交易日开盘时,将前一日最后一个VWAP值赋值给存储变量 if isNewDay prevDayVwapClose := vwapValue[1] // 绘制当日全程的前一日收盘VWAP水平线 plot(series=prevDayVwapClose, color=color.new(color.orange, 0), linewidth=2, title="前一日收盘VWAP") // 可选:保留原有的当日实时VWAP绘制 // plot(series=vwapValue, color=color.teal, linewidth=2, trackprice=true, title="当日实时VWAP")
关键逻辑说明
- 使用
var关键字声明prevDayVwapClose变量,保证该变量的值不会随每根K线刷新被重置,只会在指定的条件下更新 ta.change(time("D"))用来检测当前K线是否是当日的第一根K线,交易日切换时该值返回true- 新交易日触发时,
vwapValue[1]取的是前一交易日最后一根K线对应的VWAP值,也就是前一日收盘时的VWAP,存入变量后当日全程保持该值不变,绘制出来就是贯穿当日整个交易时段的水平线
自定义调整项
- 可以修改
plot函数中的color参数调整水平线颜色 - 如果不需要保留原有当日实时VWAP的绘制,注释掉对应代码行即可
- 若需要在非股票品种(比如加密货币7*24小时交易)使用,可将
time("D")的时间周期调整为你需要的结算周期,比如time("24h", "00:00")指定按UTC0点作为日结算边界
内容的提问来源于stack exchange,提问作者Viking
相关产品推荐
相关产品推荐

