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

Pine Script Security函数获取4小时Ichimoku数据跨周期显示异常

问题排查与修复方案

问题根源

你代码中3处错误导致切换周期时数值变动:

  • 周期参数配置错误:你需要获取4小时周期数据,但security()函数内传入的是日线周期标识符'D',数据源本身就不符合要求。
  • K线对齐规则不固定:未给security()指定合并规则,默认逻辑在不同图表周期下的K线对齐逻辑不一致,导致取值差异。
  • 偏移逻辑错误:代码中直接加[25]是对当前图表周期的K线做偏移,切换周期后单根K线的时间跨度变化,偏移对应的实际时间长度自然会变。

修复后代码

//@version=4
study(title="test1", overlay=true)

conversionPeriods = input(9, minval=1, title="Conversion Line Length")
basePeriods = input(26, minval=1, title="Base Line Length")
displacement = input(26, minval=1, title="Displacement")

get_ichimoku_4h(len) => 
    security(syminfo.tickerid, "240", avg(lowest(len), highest(len)), barmerge.lookahead_off)

tenkanSen_M240 = get_ichimoku_4h(conversionPeriods)
kijunSen_M240 = get_ichimoku_4h(basePeriods)
senkoSpanA_M240 = security(syminfo.tickerid, "240", avg(tenkanSen_M240, kijunSen_M240)[25], barmerge.lookahead_off)

plot(senkoSpanA_M240, title="senkoSpanA_M240")

修复说明

  • 把security()的周期参数改为"240",对应4小时周期,保证数据源正确。
  • 新增barmerge.lookahead_off参数,固定K线对齐规则,同时避免未来函数误差。
  • 把偏移逻辑放在security()内部,偏移的是4小时周期的K线,不管当前图表切换到什么周期,取值逻辑都固定。

修复后数值将完全和4小时周期的对应数值保持一致,不会随当前图表周期切换发生变化。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 02:39:01