在TradingView非标准K线图表中获取标准K线数据的PineScript问题
在Heikin Ashi图表中通过PineScript获取标准K线数据的解决方案
当TradingView图表切换为Heikin Ashi等非标准蜡烛类型时,脚本默认读取的OHLC数据会是转换后的蜡烛数据。直接使用ticker.standard(syminfo.tickerid)无法获取正确的标准K线数据,因为这仅生成了标准标的标识符,并未主动请求原始数据源。
可行解决方法:使用request.security跨数据源请求
通过request.security函数指定标准ticker和当前时间周期,可直接拉取标的的原始标准K线数据,不受当前图表蜡烛类型影响。示例代码如下:
//@version=5 indicator("标准K线数据获取", overlay=true) // 生成当前标的的标准ticker standard_ticker = ticker.standard(syminfo.tickerid) // 请求标准K线的OHLC数据,时间周期与当前图表保持一致 [std_open, std_high, std_low, std_close] = request.security(standard_ticker, timeframe.period, [open, high, low, close]) // 可视化对比:蓝色为标准K线收盘价,红色为Heikin Ashi收盘价 plot(std_close, color=color.new(color.blue, 0), title="标准K线收盘价", linewidth=2) plot(close, color=color.new(color.red, 0), title="Heikin Ashi收盘价", linewidth=1, style=plot.style_circles)
关键说明
request.security会直接从TradingView原始数据源拉取指定ticker的标准K线数据,完全独立于当前图表的蜡烛类型设置- 第二个参数
timeframe.period确保请求的数据周期与当前图表一致,若需其他周期可直接替换(如"D"代表日线、"H1"代表1小时线) - 测试时可切换到Candles模式,对比
std_close与原生close数据,确认两者完全匹配
内容的提问来源于stack exchange,提问作者sey eeet
相关产品推荐
相关产品推荐

