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

如何用当日收盘价归一化Close序列?含特定日期归一化需求

收盘价序列归一化问题

核心需求

原本绘制收盘价序列的代码:

plot(close)

希望实现用当日最新收盘价对整个Close序列归一化,让序列最新值固定为1,方便不同证券横向对比。手动指定当日收盘价(比如165)的代码可实现,但每日收盘价变动,无法硬编码:

// 若当日(最新)收盘价为165,则将整个序列除以165
plot(close/165)

尝试用close[0]的方式无效,因为close[0]是当前K线的收盘价,而非当日最新收盘价:

// 无法实现需求:close[0]指当前K线的收盘价,而非当日(最新)收盘价
plot(close/close[0])

问题1:用当日最新收盘价归一化Close序列

在Pine Script中,可通过security()函数获取当日最新收盘价(不受当前图表周期影响),实现动态归一化:

// 获取当前标的当日最新收盘价(指定日周期"D")
daily_latest = request.security(syminfo.tickerid, "D", close)[0]
// 执行归一化
normalized_close = close / daily_latest
plot(normalized_close, title="当日收盘价归一化序列")

或者用barstate.islast锁定最后一根K线的收盘价作为基准:

// 用var变量存储当日最新收盘价,仅在最后一根K线更新
var float daily_latest = na
if barstate.islast
    daily_latest = close

// 处理初始空值,避免计算错误
normalized_close = na(daily_latest) ? close : close / daily_latest
plot(normalized_close, title="当日收盘价归一化序列")

问题2:按特定日期(如每年首个交易日)归一化

通过判断年份切换标记首个交易日,用var变量持久化存储基准收盘价,实现年度归一化:

// 判断是否为当年第一个交易日
is_first_trading_day = year != year[1]

// 存储每年首个交易日的收盘价,仅在年份切换时更新
var float yearly_base_close = na
if is_first_trading_day
    yearly_base_close = close

// 执行归一化,处理初始年份空值
normalized_yearly = na(yearly_base_close) ? close : close / yearly_base_close
plot(normalized_yearly, title="每年首个交易日归一化序列")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 21:35:00