修复TradingView中Woodie's Pivots指标无法绘图的问题
解决Woodie's Pivot Points Pine Script无法绘图问题
问题诊断
代码无法在图表上显示的核心原因有两个:
- 公式错误:原始代码中Woodie枢轴中值
wpm的计算未除以4,导致数值严重偏离当前价格区间,线条不在图表可视范围内。 - 跨周期数据逻辑问题:使用
ticker.new指定会话后,非日线图表上的todayOpenp获取存在同步问题,进一步导致数值异常。
修正后的完整代码
//@version=5 indicator(title="Woodie's Pivot Points", shorttitle = "WPP", overlay=true, max_lines_count=500, max_labels_count=500) //Inputs PlotWP = input.bool(title = "绘制Woodie枢轴点?", defval=true) resp = input(title="分辨率", defval="D") // 直接使用当前品种ID获取跨周期数据,避免会话冲突 yesterdayHighp = request.security(syminfo.tickerid, resp, high[1], gaps=barmerge.gaps_off, lookahead=barmerge.lookahead_on) yesterdayLowp = request.security(syminfo.tickerid, resp, low[1], gaps=barmerge.gaps_off, lookahead=barmerge.lookahead_on) todayOpenp = request.security(syminfo.tickerid, resp, open, gaps=barmerge.gaps_off, lookahead=barmerge.lookahead_on) // 修正Woodie枢轴点标准计算公式 wpr = yesterdayHighp - yesterdayLowp wpm = (yesterdayHighp + yesterdayLowp + 2 * todayOpenp) / 4 // 关键:添加除以4的步骤 wpr1 = (2 * wpm) - yesterdayLowp wpr2 = wpm + wpr wpr3 = yesterdayHighp + 2 * (wpm - yesterdayLowp) wpr4 = wpr3 + wpr wps1 = (2 * wpm) - yesterdayHighp wps2 = wpm - wpr wps3 = yesterdayLowp - 2 * (yesterdayHighp - wpm) wps4 = wps3 - wpr // 绘图逻辑 plot(PlotWP ? wpm : na, "Woodie枢轴中值", color.black, linewidth = 1, style = plot.style_linebr) plot(PlotWP ? wpr1 : na, "Woodie阻力位1", color.olive, linewidth = 1, style = plot.style_linebr) plot(PlotWP ? wps1 : na, "Woodie支撑位1", color.maroon, linewidth = 1, style = plot.style_linebr) plot(PlotWP ? wpr2 : na, "Woodie阻力位2", color.olive, linewidth = 1, style = plot.style_linebr) plot(PlotWP ? wps2 : na, "Woodie支撑位2", color.maroon, linewidth = 1, style = plot.style_linebr) plot(PlotWP ? wpr3 : na, "Woodie阻力位3", color.olive, linewidth = 1, style = plot.style_linebr) plot(PlotWP ? wps3 : na, "Woodie支撑位3", color.maroon, linewidth = 1, style = plot.style_linebr) plot(PlotWP ? wpr4 : na, "Woodie阻力位4", color.olive, linewidth = 1, style = plot.style_linebr) plot(PlotWP ? wps4 : na, "Woodie支撑位4", color.maroon, linewidth = 1, style = plot.style_linebr)
核心修正说明
- 公式修复:Woodie枢轴点的中值标准公式为
(昨日高点 + 昨日低点 + 2×今日开盘价) ÷ 4,原始代码遗漏了除以4的步骤,导致数值偏离正常价格范围。 - 跨周期数据优化:替换
ticker.new为syminfo.tickerid,避免会话设置引发的数据同步问题,确保跨周期数据获取准确。 - 计算逻辑简化:将阻力位2和支撑位2的计算简化为
wpm ± wpr,符合Woodie枢轴点的标准定义,同时减少冗余计算。
内容的提问来源于stack exchange,提问作者Krishnendu Bhattacharyya
相关产品推荐
相关产品推荐

