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

如何利用input.float修改Pine Script中request.security的时区为UTC-4

解决Pine Script v5中request.security自定义时区日线问题

要让request.security使用指定时区(而非默认UTC)的日线数据,核心是构造带时区标识的时间框架字符串,替代默认的'D'参数。以下是具体修改方案:

关键修改逻辑

  • 将输入的小时偏移量转换为标准时区字符串(如UTC-4)
  • 拼接成带时区的日线时间框架(如D|UTC-4)
  • 替换request.security中的时间框架参数

修改后的完整代码

//Modified by CAM
//@version=5
indicator(title="MTF High/Low", shorttitle="High/Low", overlay=true)

//DEFINE TimeFrame
TOOLTIP01 = "Enter timezone offset (+ or -) based of UTC"
hoursOffsetInput = input.float(0.0, "Timezone offset (in hours)", minval = -12.0, maxval = 14.0, step = 0.5, tooltip = TOOLTIP01)

// 构造带时区的自定义日线时间框架
tzStr = "UTC" + (hoursOffsetInput > 0 ? "+" : "") + str.tostring(hoursOffsetInput)
tzStr = str.replace(tzStr, ".0", "") // 移除整数偏移后的.0后缀
customDailyTF = "D|" + tzStr

// DAILY
activeD = input(true, title="Show On Chart D")
// 使用自定义时区的日线时间框架
pricehighD = request.security(syminfo.tickerid, customDailyTF, high[1], gaps=barmerge.gaps_off, lookahead=barmerge.lookahead_on)
pricelowD = request.security(syminfo.tickerid, customDailyTF, low[1], gaps=barmerge.gaps_off, lookahead=barmerge.lookahead_on)

// Daily Plots
plot(activeD and pricehighD ? pricehighD : na, title="Previous Daily High", style=plot.style_steplinebr, linewidth=1, color=color.white)
plot(activeD and pricelowD ? pricelowD : na, title="Previous Daily Low", style=plot.style_steplinebr, linewidth=1, color=color.white)

代码说明

  • 时区字符串处理:将输入的hoursOffsetInput(如-4.0)转换为UTC-4格式,确保符合Pine Script的时区标识规则
  • 自定义时间框架:customDailyTF变量生成D|UTC-4这类带时区的时间框架,让request.security按照指定时区划分日线周期
  • 保留原有逻辑:保留了原脚本的开关控制、绘图样式等设置,仅修改时间框架部分

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 12:25:19