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

如何在Pine Script中实现时间帧倍数自动计算逻辑

在Pine Script中实现自动适配高时间帧的逻辑

当然可以实现这个需求,核心是利用Pine Script内置的时间帧变量获取当前图表周期的分钟数,再通过你的公式计算出主/副高时间帧,最后调用对应周期的数据。

核心实现要点

  • 获取当前周期分钟数:使用timeframe.mins变量,它会直接返回当前图表时间帧的总分钟数(例如1小时对应60,日线对应1440)。
  • 计算目标周期:按照你的规则,主时间帧 = 当前分钟数 × 120,副时间帧 = 当前分钟数 × 20。
  • 调用高周期数据:通过request.security()函数,传入计算得到的分钟数(转为字符串格式),即可获取对应周期的指标数据。

完整示例代码

//@version=5
indicator("自动适配高时间帧策略示例", overlay=true)

// 获取当前时间帧的总分钟数
current_tf_mins = timeframe.mins

// 计算主、副时间帧的分钟数
main_tf_mins = current_tf_mins * 120
secondary_tf_mins = current_tf_mins * 20

// 定义指标示例(以20周期SMA为例)
sma_len = 20
current_sma = ta.sma(close, sma_len)
// 调用主时间帧SMA数据
main_tf_sma = request.security(tostring(main_tf_mins), timeframe.period, ta.sma(close, sma_len))
// 调用副时间帧SMA数据
secondary_tf_sma = request.security(tostring(secondary_tf_mins), timeframe.period, ta.sma(close, sma_len))

// 绘制指标线
plot(current_sma, color=color.blue, title="当前时间帧SMA")
plot(main_tf_sma, color=color.red, title="主时间帧SMA")
plot(secondary_tf_sma, color=color.green, title="副时间帧SMA")

// 显示时间帧信息(用于验证)
var label info = label.new(bar_index, high, "", color=color.orange, textcolor=color.white, style=label.style_label_down)
if barstate.islast
    label.set_text(info, str.format("当前时间帧: {0}分钟\n主时间帧: {1}分钟\n副时间帧: {2}分钟", current_tf_mins, main_tf_mins, secondary_tf_mins))

代码解释

  • timeframe.mins:自动适配所有时间帧,无需手动判断是小时、日线还是其他周期,确保计算准确。
  • request.security():第一个参数传入字符串格式的分钟数(如"7200"对应5天),就能拉取对应周期的指标值,完全匹配你的回测规则。
  • 最后的标签会在图表最后一根K线显示当前和计算出的时间帧参数,方便你快速验证计算结果是否符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 01:02:10