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

Pine Script study函数添加timeframe参数报错如何修复

报错原因

study()是Pine Script的指标声明函数,本身不存在timeframe这个内置参数,直接传入该参数会触发未知参数报错,属于函数参数误用。

解决方案

要实现日线级别(或其他自定义多周期)的指标计算,不需要修改study()函数的参数,使用Pine Script内置的跨周期数据调用函数request.security()拉取目标周期的行情数据,再基于拉取到的数据计算指标即可,操作步骤如下:

  • 保留原有首行的指标声明代码study("SSL Hybrid", overlay=true),删除之前错误添加的timeframe="D"参数
  • 新增周期选择输入项,方便后续灵活调整指标计算的时间周期
  • 调用request.security()拉取目标周期的基础行情数据(开高低收、真实波幅等)
  • 将原有指标计算逻辑中用到的当前周期数据源,替换为拉取到的目标周期数据,即可实现多周期指标计算

代码修改示例

在原有代码基础上补充跨周期逻辑的参考写法:

study("SSL Hybrid", overlay=true)
// 原有输入项保留
show_Baseline = input(title="Show Baseline", type=input.bool, defval=true)
show_SSL1 = input(title="Show SSL1", type=input.bool, defval=false)
show_atr = input(title="Show ATR bands", type=input.bool, defval=true)
// 新增多周期选择输入,默认值为日线
htf_timeframe = input.timeframe(title="指标计算周期", defval="D")

//ATR
atrlen = input(14, "ATR Period")
mult = input(1, "ATR Multi", step=0.1)
smoothing = input(title="ATR Smoothing", defval="WMA", options=["RMA", "SMA", "EMA", "WMA"])

ma_function(source, atrlen) => 
    if smoothing == "RMA"
        rma(source, atrlen)
    else
        if smoothing == "SMA"
            sma(source, atrlen)
        else
            if smoothing == "EMA"
                ema(source, atrlen)
            else
                wma(source, atrlen)

// 拉取目标周期的真实波幅、收盘价数据
tr_htf = request.security(syminfo.tickerid, htf_timeframe, tr(true))
close_htf = request.security(syminfo.tickerid, htf_timeframe, close)

// 基于目标周期数据计算ATR及上下轨
atr_slen = ma_function(tr_htf, atrlen)
upper_band = atr_slen * mult + close_htf
lower_band = close_htf - atr_slen * mult

////BASELINE / SSL1 / SSL2 / EXIT MOVING AVERAGE VALUES
maType = input(title="SSL1 / Baseline Type", type=input.string, defval="HMA", options=["SMA","EMA","DEMA","TEMA","LSMA","WMA","MF","VAMA","TMA","HMA", "JMA", "Kijun v2", "EDSMA","McGinley"])
len = input(title="SSL1 / Baseline Length", defval=60)
// 后续SSL、基线的计算如果需要基于目标周期,同理用request.security拉取对应周期的价格数据传入计算函数即可

注意:如果需要整个SSL Hybrid指标完全基于目标周期计算,只要把所有计算环节用到的行情源(高、低、开、收等)都替换为request.security()拉取到的对应周期变量即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 16:24:29