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

如何实现每日开盘时重置开盘价与当前收盘价的涨跌幅百分比?

问题解决:每日开盘重置的开盘价-收盘价涨跌幅计算

你的代码逻辑存在问题:通过判断daily_open_a != daily_open_a[1]返回0,会导致每个交易日全程输出0(新交易日开盘价必然与前一日不同),无法正确计算盘中涨跌幅。以下是修正方案:

修正思路

  • 用barstate.isnew识别当日第一根K线,此时将涨跌幅重置为0
  • 非新K线时段,用当前收盘价减去当日开盘价,再除以开盘价得到涨跌幅
  • 简化数据请求:当前图表周期的收盘价无需额外调用request.security

修正后的代码

//@version=5
indicator("开盘-收盘涨跌幅", overlay=false)

symbol_a = input.symbol("CME_MINI:ES1!", "标的1")

// 获取当日开盘价(每日更新一次)
daily_open_a = request.security(symbol_a, "D", open)
// 当前收盘价直接使用内置变量close即可
current_close_a = close

// 当日首根K线重置为0,其余时段计算涨跌幅
symbol_a_roc = barstate.isnew ? 0.0 : (current_close_a - daily_open_a) / daily_open_a

plot(symbol_a_roc, title="涨跌幅", color=color.blue)

关键说明

  • barstate.isnew:Pine Script内置变量,当前K线为交易日首根时返回true,实现每日开盘重置逻辑
  • 若需要百分比格式的结果,可将公式改为:(current_close_a - daily_open_a) / daily_open_a * 100

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 03:35:26