TradingView Pine Script:图表用复权收盘价时如何调用未复权收盘价?
Pine Script:保持图表复权时调用未复权收盘价的方法
我正在编写Pine Script代码,用来计算200日平均成交量乘以同期平均收盘价。当前图表因为其他指标需求,必须使用分红复权收盘价,但我希望这个脚本里的收盘价用未复权收盘价,这样才能准确体现真实交易金额。但脚本默认会跟随图表的复权设置,想请教怎么在保持图表为复权收盘价的同时,让脚本调用未复权收盘价?
测试情况说明
- 图表开启复权收盘价时(右下角显示蓝色“ADJ”标识),1997年6月17日脚本计算值为103,367,该数值基于复权收盘价
- 图表切换为未复权收盘价时,同一天的脚本计算值为278,054,这才是我需要的、反映真实收盘价的数值
解决方案
在Pine Script中,直接使用内置变量close.unadjusted即可获取未复权收盘价,这个变量不受当前图表的复权设置影响,始终返回原始的未调整收盘价数据。
修改后的核心代码示例:
//@version=5 indicator("真实交易金额指标", overlay=false) // 计算200日平均成交量与未复权收盘价的200日均值 avg_volume = ta.sma(volume, 200) avg_unadj_close = ta.sma(close.unadjusted, 200) // 计算目标值:平均成交量 × 未复权平均收盘价 target_value = avg_volume * avg_unadj_close // 绘制指标线 plot(target_value, title="真实交易金额", color=color.new(color.blue, 0))
关键说明
close.unadjusted是Pine Script专门提供的未复权收盘价变量,和默认的close不同,它不会跟随图表的复权设置变化- 替换默认的
close为close.unadjusted后,即使图表保持复权状态,脚本也能计算出基于真实收盘价的结果,满足你的需求
内容的提问来源于stack exchange,提问作者Elie Rozner
相关产品推荐
相关产品推荐

