历史行情下载


下载历史行情数据,用于策略回测。

历史行情下载,基于已经实现的交易所市场API,获取历史行情,通过 ExchangeDB 类的 insert_klines 方法写入数据库。

沪深A股历史行情下载

最新版的掘金只支持 90 天的分钟数据下载

  • Baostock数据下载脚本文件:script/crontab/reboot_sync_a_klines.py
  • 掘金数据下载脚本文件:script/crontab/reboot_sync_gm_a_klines.py

run_codes 可定义要下载的标的

f_start_datetime 定义各个周期最早的开始时间

如无必要,不建议下载全市场历史行情数据,数据又慢又大,建议只下载需要标的周期的历史行情数据。

建议使用 后复权 数据,可每日执行,追加最新数据,不用考虑复权情况。

注意:Baostock 服务,股票的最小周期是 5m,无指标的分钟数据。

港股历史行情下载

  • 富途数据下载脚本文件:script/crontab/reboot_sync_hk_klines.py

使用的是富途的API,注意有标的数量限制,酌情使用。

期货历史行情下载

最新版的掘金只支持 90 天的分钟数据下载

  • 天勤数据下载脚本文件:script/crontab/reboot_sync_futures_klines.py
  • 掘金期货数据下载脚本文件:script/crontab/reboot_sync_gm_futures_klines.py

天勤API,需要专业版才可获取历史行情,可申请免费 15 天试用,在15天试用期内,将所需要的期货历史行情,下载在本地数据库,以便用于后续的策略回测中。

数字货币历史行情下载

  • 币安数据下载脚本文件:script/crontab/reboot_sync_currency_klines.py

使用 Binance USDT 永续合约 API,获取所有标的的历史行情数据。

注意:ExchangeBinance 类,在调用 klines 方法有使用 DB 中已下载的数据,并会将最新的写入数据库

如之前没有下载过历史行情,并在WEB请求过数字货币行情,在执行历史下载,因为最后更新时间是最新的,则不会下载并保存该标的的历史行情

解决办法就是清空相关的表,再执行历史行情下载,并设置定时任务,每日执行下载历史行情数据

QQ群下载并导入历史行情数据

通过QQ群文件,下载历史行情数据,用于本地回测

VNPY 行情数据下载

使用 VNPY 进行回测所依赖的历史行情数据;包括 部分股票与期货合约数据

  • 文件名称:vnpy_mysql_data.zip

使用方法,创建 vnpy 数据库,解压文件并导入(如之前有数据会删除原有数据)

股票
2019年1月1日 1分钟数据
'000001', '000858', '002603', '000002', '002594'

期货
2019年1月1日 1分钟数据
'ag2206', 'al2205', 'au2206', 'bu2206', 'cu2205', 'fu2209', 'hc2210', 'ni2205', 'pb2205', 'rb2210'

数字货币部分行情

数据包括 BTC/USDT、EOS/USDT、ETC/USDT、ETH/USDT

  • 文件名称:chanlun_currency_data.zip

包含的周期:'w', 'd', '4h', '60m', '30m', '15m', '5m', '1m'

期货部分行情

文件名:chanlun_futures_data.zip

数据包括以下合约:

'CFFEX.TS2206', 'SHFE.rb2206', 'CFFEX.IF2205', 'CFFEX.TF2206', 'INE.nr2205', 
'DCE.fb2206', 'DCE.jd2206', 'DCE.b2205', 'DCE.eb2206', 'DCE.lh2205', 'DCE.m2205', 
'DCE.a2205', 'DCE.jm2205', 'SHFE.cu2206', 'CFFEX.T2206', 'SHFE.wr2205', 'DCE.l2205', 
'SHFE.ru2205', 'SHFE.al2205', 'DCE.pp2205', 'DCE.l2206', 'INE.lu2206', 'INE.lu2205', 
'INE.bc2205', 'SHFE.au2205', 'INE.sc2205', 'CFFEX.IC2206', 'SHFE.ni2206', 'INE.sc2206', 
'SHFE.ss2206', 'DCE.p2205', 'DCE.j2206', 'DCE.eg2205', 'SHFE.bu2206', 'SHFE.ru2206', 
'DCE.pg2206', 'DCE.y2205', 'DCE.v2205', 'DCE.j2205', 'DCE.jm2206', 'CFFEX.IH2205', 
'SHFE.ag2205', 'DCE.jd2205', 'DCE.p2206', 'SHFE.pb2206', 'SHFE.bu2205', 'DCE.eg2206', 
'SHFE.pb2205', 'SHFE.hc2206', 'SHFE.ag2206', 'SHFE.ss2205', 'SHFE.ni2205', 'SHFE.sn2205', 
'DCE.i2206', 'SHFE.zn2205', 'DCE.cs2205', 'SHFE.au2206', 'SHFE.sp2206', 'CFFEX.IC2205', 
'SHFE.fu2205', 'SHFE.al2206', 'SHFE.wr2206', 'DCE.bb2205', 'SHFE.sp2205', 'DCE.pg2205', 
'DCE.v2206', 'DCE.rr2206', 'DCE.rr2205', 'DCE.b2206', 'SHFE.zn2206', 'SHFE.fu2206', 
'INE.nr2206', 'CFFEX.IH2206', 'SHFE.cu2205', 'INE.bc2206', 'DCE.fb2205', 'SHFE.rb2205', 
'DCE.pp2206', 'SHFE.sn2206', 'DCE.eb2205', 'DCE.c2205', 'SHFE.hc2205', 'DCE.bb2206', 
'DCE.i2205', 'CFFEX.IF2206', 'KQ.m@DCE.rr', 'KQ.m@DCE.p', 'KQ.m@CZCE.WH', 'KQ.m@CZCE.PM', 
'KQ.m@INE.sc', 'KQ.m@SHFE.hc', 'KQ.m@SHFE.sn', 'KQ.m@CZCE.RI', 'KQ.m@CZCE.UR', 'KQ.m@SHFE.ni', 
'KQ.m@DCE.i', 'KQ.m@CZCE.PK', 'KQ.m@CZCE.RS', 'KQ.m@INE.nr', 'KQ.m@DCE.v', 'KQ.m@SHFE.rb', 
'KQ.m@DCE.eb', 'KQ.m@INE.lu', 'KQ.m@DCE.pg', 'KQ.m@DCE.cs', 'KQ.m@CFFEX.IH', 'KQ.m@DCE.bb', 
'KQ.m@DCE.fb', 'KQ.m@CFFEX.TF', 'KQ.m@DCE.c', 'KQ.m@SHFE.zn', 'KQ.m@DCE.lh', 'KQ.m@SHFE.fu', 
'KQ.m@CZCE.ZC', 'KQ.m@SHFE.ss', 'KQ.m@CZCE.JR', 'KQ.m@SHFE.sp', 'KQ.m@CFFEX.T', 'KQ.m@CZCE.SM', 
'KQ.m@CZCE.SA', 'KQ.m@SHFE.al', 'KQ.m@SHFE.au', 'KQ.m@CFFEX.IC', 'KQ.m@SHFE.pb', 'KQ.m@DCE.b', 
'KQ.m@CZCE.RM', 'KQ.m@DCE.jd', 'KQ.m@CZCE.OI', 'KQ.m@SHFE.bu', 'KQ.m@DCE.m', 'KQ.m@CZCE.FG', 
'KQ.m@CZCE.PF', 'KQ.m@INE.bc', 'KQ.m@SHFE.ag', 'KQ.m@DCE.l', 'KQ.m@DCE.y', 'KQ.m@CZCE.TA', 
'KQ.m@CZCE.CY', 'KQ.m@CZCE.AP', 'KQ.m@CFFEX.IF', 'KQ.m@CZCE.SF', 'KQ.m@SHFE.cu', 'KQ.m@CZCE.CJ', 
'KQ.m@CZCE.CF', 'KQ.m@DCE.a', 'KQ.m@CZCE.LR', 'KQ.m@DCE.pp', 'KQ.m@DCE.j', 'KQ.m@CFFEX.TS', 
'KQ.m@DCE.eg', 'KQ.m@DCE.jm', 'KQ.m@CZCE.MA', 'KQ.m@CZCE.SR', 'KQ.m@SHFE.ru', 'KQ.m@SHFE.wr'

包含的周期以及数据对应的时间段:
'w': {'start': '2000-01-01 00:00:00', 'end': '2022-04-14 00:00:00'},
'd': {'start': '2000-01-01 00:00:00', 'end': '2022-04-14 00:00:00'},
'60m': {'start': '2000-01-01 00:00:00', 'end': '2022-04-14 00:00:00'},
'30m': {'start': '2000-01-01 00:00:00', 'end': '2022-04-14 00:00:00'},
'15m': {'start': '2000-01-01 00:00:00', 'end': '2022-04-14 00:00:00'},
'5m': {'start': '2015-01-01 00:00:00', 'end': '2022-04-14 00:00:00'},
'1m': {'start': '2018-01-01 00:00:00', 'end': '2022-04-14 00:00:00'},