使用akshare,获取A股所有股票交易日后复权历史数据

import time
import akshare as ak
import pandas as pd
stock_codes = ak.stock_zh_a_spot_em()['代码']

data_frames = []
count = 0
for stock_code in stock_codes:
    try:
        stock_data = ak.stock_zh_a_hist(
            symbol=stock_code, period="daily", start_date="20240605", end_date='20240607', adjust="hfq")
        data_frames.append(stock_data)
    except Exception as e:
        print(f"Error fetching data for {stock_code}: {e}")
    if count % 10 == 0:
        time.sleep(0.5)
    count += 1
# 合并所有股票数据
all_stock_data = pd.concat(data_frames)
all_stock_data.to_csv('./stockdata.csv', sep=',', index=False)

股票数据复权

1.为何要复权:由于股票存在配股、分拆、合并和发放股息等事件,会导致股价出现较大的缺口。 若使用不复权的价格处理数据、计算各种指标,将会导致它们失去连续性,且使用不复权价格计算收益也会出现错误。 为了保证数据连贯性,常通过前复权和后复权对价格序列进行调整。

2.前复权:保持当前价格不变,将历史价格进行增减,从而使股价连续。 前复权用来看盘非常方便,能一眼看出股价的历史走势,叠加各种技术指标也比较顺畅,是各种行情软件默认的复权方式。 这种方法虽然很常见,但也有两个缺陷需要注意。

2.1 为了保证当前价格不变,每次股票除权除息,均需要重新调整历史价格,因此其历史价格是时变的。 这会导致在不同时点看到的历史前复权价可能出现差异。

2.2 对于有持续分红的公司来说,前复权价可能出现负值。

3.后复权:保证历史价格不变,在每次股票权益事件发生后,调整当前的股票价格。 后复权价格和真实股票价格可能差别较大,不适合用来看盘。 其优点在于,可以被看作投资者的长期财富增长曲线,反映投资者的真实收益率情况。

4.在量化投资研究中普遍采用后复权数据。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值