回测系统1一键批量下载etf历史数据

一.效果如下:

回测系统1一键批量下载etf历史数据

回测系统1一键批量下载etf历史数据

二.具体实现

import akshare as ak
import time
from config.base import base_config
from config.path import DATA_DIR
def download_data(symbol):
    print(symbol)
    code = symbol[:6]
    # 回测最好用后复权数据,前复权会有负数的问题
    df = ak.fund_etf_hist_em(symbol=code, period="daily", start_date="20000101",
                             end_date=time.strftime('%Y%m%d'), adjust="hfq")
    cols = {'日期': 'date', '开盘': 'open', '收盘': 'close', '最高': 'high', '最低': 'low', '成交量': 'volume',
            '换手率': 'turn_over', '成交额': 'amount'}
    df.rename(columns=cols, inplace=True)
    df['date'] = df['date'].str.replace('-', '')
    # 只取cols这几列数据
    df = df[list(cols.values())]
    df['symbol'] = symbol
    print(df)
    parent_path = base_config.mkdir_path(DATA_DIR, 'etfs')
    csv_path = base_config.join_path(parent_path, f'{symbol}.csv')
    with open(csv_path, 'w') as f:
        df.to_csv(f, index=False)
    print(df)
if __name__ == '__main__':
    symbols = [
        '511220.SH',  # 城投债
        '512010.SH',  # 医药
        '518880.SH',  # 黄金
        '163415.SZ',  # 兴全商业
        '159928.SZ',  # 消费
        '161903.SZ',  # 万家行业优选
        '513100.SH'  # 纳指
    ]  # 证券池列表
    for symbol in symbols:
        download_data(symbol)

发布者:股市刺客,转载请注明出处:https://www.95sca.cn/archives/268148
站内所有文章皆来自网络转载或读者投稿,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!

(0)
股市刺客的头像股市刺客
上一篇 3小时前
下一篇 3小时前

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注