如何通过Google Finance/Sheets获取股票1小时、7日及1月涨跌幅
Google Sheets 获取不同周期股票涨跌幅方法
Google Sheets 的 GOOGLEFINANCE 函数没有直接提供1小时、7天、1个月这类自定义周期的涨跌幅参数,需要通过获取对应时间点的价格,手动计算涨跌幅。以下是具体实现方法:
1. 1小时涨跌幅
通过获取当前价格和1小时前的价格计算:
=(GOOGLEFINANCE("NASDAQ:GOOGL", "price") - GOOGLEFINANCE("NASDAQ:GOOGL", "price", NOW()-TIME(1,0,0)))/GOOGLEFINANCE("NASDAQ:GOOGL", "price", NOW()-TIME(1,0,0))
- 逻辑:
NOW()-TIME(1,0,0)生成1小时前的时间戳,对比当前价格与该时间点的价格,计算涨跌幅。 - 注意:非交易时段会返回最近的交易价格,结果可能与交易时段内的实时1小时涨跌幅有差异。
2. 7天涨跌幅
取当前价格与7天前的收盘价计算:
=(GOOGLEFINANCE("NASDAQ:GOOGL", "price") - GOOGLEFINANCE("NASDAQ:GOOGL", "close", TODAY()-7))/GOOGLEFINANCE("NASDAQ:GOOGL", "close", TODAY()-7)
如果需要更精准的历史数据范围,也可以用批量查询后取首尾值:
=(INDEX(GOOGLEFINANCE("NASDAQ:GOOGL", "close", TODAY()-7, TODAY()),2,2)-INDEX(GOOGLEFINANCE("NASDAQ:GOOGL", "close", TODAY()-7, TODAY()),1,2))/INDEX(GOOGLEFINANCE("NASDAQ:GOOGL", "close", TODAY()-7, TODAY()),1,2)
3. 1个月涨跌幅
可以按固定30天计算,或者取上月同日的收盘价:
- 按30天计算:
=(GOOGLEFINANCE("NASDAQ:GOOGL", "price") - GOOGLEFINANCE("NASDAQ:GOOGL", "close", TODAY()-30))/GOOGLEFINANCE("NASDAQ:GOOGL", "close", TODAY()-30)
- 取上月同日收盘价:
=(GOOGLEFINANCE("NASDAQ:GOOGL", "price") - GOOGLEFINANCE("NASDAQ:GOOGL", "close", EDATE(TODAY(),-1)))/GOOGLEFINANCE("NASDAQ:GOOGL", "close", EDATE(TODAY(),-1))
EDATE(TODAY(),-1) 会返回当前日期的上月同日,适合自然月周期的计算。
4. 自定义周期涨跌幅
核心逻辑是指定周期起始点的价格,与当前价格做比例计算:
- 自定义N天:
把公式中的N替换为需要的天数即可:
=(GOOGLEFINANCE("NASDAQ:GOOGL", "price") - GOOGLEFINANCE("NASDAQ:GOOGL", "close", TODAY()-N))/GOOGLEFINANCE("NASDAQ:GOOGL", "close", TODAY()-N)
- 自定义固定时间段:
比如计算2024年1月1日至今的涨跌幅:
=(GOOGLEFINANCE("NASDAQ:GOOGL", "price") - GOOGLEFINANCE("NASDAQ:GOOGL", "close", DATE(2024,1,1)))/GOOGLEFINANCE("NASDAQ:GOOGL", "close", DATE(2024,1,1))
内容的提问来源于stack exchange,提问作者steve238
相关产品推荐
相关产品推荐

