Pine Script如何获取当日收盘价作为常量用于历史序列计算
Pine Script 固定跨标的当日收盘价用于全历史序列计算的实现方案
你要的效果可以直接通过固定获取目标标的最新收盘价实现,不需要用画线类的变通方案,也不会受series类型的运行机制限制,参考代码如下(完全匹配你给出的ETHUSD图表取BTC当日收盘价的示例场景):
//@version=5 indicator("ETH价格/固定BTC当日收盘价", overlay = false) // 取BTCUSDT的最新日收盘价作为固定常量,标的代码可根据你用的交易所调整 btc_today_close = request.security("BINANCE:BTCUSDT", "D", close, barmerge.gaps_on, barmerge.lookahead_on) fixed_btc_close = ta.valuewhen(true, btc_today_close, 0) // 计算并绘制ETH价格与固定BTC收盘价的比值 plot(close / fixed_btc_close, title = "价格比值")
核心逻辑说明
- 如果你是要取当前图表标的的当日收盘价做计算,把
request.security的第一个参数换成syminfo.tickerid即可。 - 时间周期参数
"D"代表取日级收盘价,你可以按需调整,比如要取小时级就改成"60"。 ta.valuewhen(true, xxx, 0)会固定提取最新一次的目标值,保证所有历史K线做计算时,调用的都是同一个固定收盘价,不会出现series值随K线位置动态变化的问题。- 不需要跨周期取数的场景也可以用更简洁的写法直接取图表最后一根K线的收盘价:
fixed_close = close[bar_index - last_bar_index]。
内容的提问来源于stack exchange,提问作者Finni
相关产品推荐
相关产品推荐

