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

为何request.security在不同图表时间周期下返回结果不一致?

问题原因与解决办法

核心问题根源

你代码里的逻辑错误在于:你把周线收盘价拉取到当前图表周期后,在当前周期的K线上计算EMA50,而不是直接在周线周期上完成EMA50的计算。

这会导致不同周期的计算逻辑完全走样:

  • 比如在5分钟周期中,一周内会生成数百根K线,每根K线都会重复使用同一个周线收盘价来计算EMA,相当于用大量重复值迭代EMA公式,结果和周线周期(每周仅1根K线)计算的EMA50天差地别。
  • 3个月周期的K线数量极少,映射的周线收盘价次数远少于5分钟周期,最终计算出的EMA50自然会出现超过25%的差值。

修正后的代码

把EMA50的计算直接放到request.security的参数中,让计算逻辑在周线周期内完成,再将结果返回给当前周期:

//@version=6
indicator("Weekly EMA50 Consistency Test", overlay = true)

// --- 直接在周线周期计算EMA(50)并返回 ---
weekly_ema50 = request.security(syminfo.tickerid, "W", ta.ema(close, 50), gaps = barmerge.gaps_off, lookahead = barmerge.lookahead_off)

// --- Create Table ---
var table t = table.new(position.top_right, 1, 1, frame_color = color.new(color.gray, 20), frame_width = 1)

// --- Update on last bar only ---
if barstate.islast
    val_txt = str.tostring(weekly_ema50, format.mintick)
    table.cell(t, 0, 0, val_txt, text_color = color.white, bgcolor = color.new(color.black, 0), text_size = size.large)

效果验证

修改后,无论你切换到5分钟、3个月还是任意图表时间周期,显示的EMA50数值都会和周线图表上直接添加的EMA50指标数值完全一致,不会再出现跨周期的数值差异。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.11 22:44:59