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

TradingView Pine Script V5无绘图问题求助:V1转V5加多时间框架

问题排查与修复方案

核心问题分析

  • 自定义函数无返回值:Quotient函数仅完成内部计算,但未返回结果,导致调用后返回na,后续依赖此函数的redline、aqualine等变量均为无效值,无法正常绘图。
  • 循环变量未更新:HP、Filt、Pk用var声明初始为na,但代码仅计算了临时变量HP_temp、Filt_temp、Pk_temp,未将临时值赋值给原变量,导致后续计算持续使用na,所有指标值最终无效。
  • 状态变量错误使用var:priceup、redup等需要逐K线更新的状态变量,被错误用var声明,仅初始化一次,无法随行情变化。
  • 冗余无效代码:单独的HP_temp行无实际作用,属于冗余代码。

修复后的完整代码

//@version=5
indicator("GG EhlersEOT V5", shorttitle="GG Ehlers V5", 
overlay=false, timeframe="", timeframe_gaps=true)

period = input(20, "Period")
q1 = input(0.8, "Q1")
q2 = input(0.4, "Q2")
src = input(close, "Source")

var float HP = na
var float Filt = na
var float Pk = na

Quotient(LPPeriod, K) =>
    pi = 3.1415926
    angle = 0.707 * 2 * pi / 100
    alpha1 = (math.cos(angle) + math.sin(angle) - 1) / math.cos(angle)
    a1 = math.exp(-1.414 * pi / LPPeriod)
    b1 = 2 * a1 * math.cos(1.414 * pi / LPPeriod)
    c2 = b1
    c3 = -a1 * a1
    c1 = 1 - c2 - c3
    
    // 完成滤波计算并更新全局变量
    HP_temp = math.pow((1 - alpha1 / 2), 2) * (close - 2 * close[1] + close[2]) + 2 * (1 - alpha1) * HP[1] - math.pow((1 - alpha1), 2) * HP[2]
    Filt_temp = c1 * (HP_temp + HP_temp[1]) / 2 + c2 * Filt[1] + c3 * Filt[2]
    Pk_temp = math.abs(Filt_temp) > 0.991 * Pk[1] ? math.abs(Filt_temp) : 0.991 * Pk[1]
    q_val = (Filt_temp + K) / (K * Filt_temp + 1)
    
    HP := HP_temp
    Filt := Filt_temp
    Pk := Pk_temp
    q_val // 返回计算后的q值

// 计算指标线数值
redline = Quotient(period, q1) + 2
aqualine = Quotient(period, q2) + 2
avgline = redline - aqualine
eotslope = redline - redline[1]

// 逐K线更新状态判断
priceup = src > src[1]
pricedown = src < src[1]
redup = redline > redline[1]
reddown = redline < redline[1]
c = priceup and reddown ? color.red : pricedown and redup ? color.blue : color.black

// 绘制指标
plot(avgline, color=color.yellow)
plot(eotslope, color=c)
plot(redline, color=color.red)
plot(aqualine, color=color.aqua)
hline(0)

关键修复说明

  1. 给Quotient函数添加返回值,并将临时计算结果赋值给全局变量HP、Filt、Pk,保证循环计算的连续性。
  2. 移除priceup、redup等状态变量的var声明,让它们随每根K线动态更新。
  3. 删除冗余的无效代码行,将计算逻辑整合到函数内部,确保变量更新逻辑正确。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 11:05:41