如何在非交易日通过Google Finance获取股票的最新收盘价
解决方案
核心思路
无需手动判断对应市场的休市规则,将单个日期查询改为查询包含目标日期、且向前覆盖足够长休市周期的日期区间,取区间内最后一条交易记录即可自动获得目标日期前最近一个交易日的收盘价。
可用公式
目标日期存放在单元格A1时使用
=INDEX(GOOGLEFINANCE("NASDAQ:MSFT","price", A1 - 5, A1 + 1), ROWS(GOOGLEFINANCE("NASDAQ:MSFT","price", A1 -5, A1 + 1)), 2)
- 将
NASDAQ:MSFT替换为你需要查询的标的代码即可适配任意市场的股票,包括以色列股票等非美市场标的 - 公式中
5为向前回溯的天数,默认已经覆盖全球所有市场的常规连续休市场景,如果你需要适配春节、圣诞节等长假期,可以将该数值调整为10或更大。
直接查询当前日期最近交易日收盘价使用
=INDEX(GOOGLEFINANCE("NASDAQ:MSFT","price", TODAY() - 5, TODAY() + 1), ROWS(GOOGLEFINANCE("NASDAQ:MSFT","price", TODAY() -5, TODAY() + 1)), 2)
原理解释
- GOOGLEFINANCE查询日期区间的返回结果默认按日期升序排列,区间内最后一条数据就是目标日期前最近的交易日数据
- 不需要针对不同市场单独设置周末规则,不管是美股的周六周日休市、以色列的周五周六休市,还是临时公共假期都可以自动适配。
内容的提问来源于stack exchange,提问作者yuvalm2
相关产品推荐
相关产品推荐

