网易首页 > 网易号 > 正文 申请入驻

数字货币回测准备:下载与清洗全量历史数据

0
分享至

01

历史数据:回测到实盘的第一步

我们实现一个完整的量化投资策略,一般要经历历史数据准备、数据清洗、回测建模、实盘交易系统实现这4个步骤。其中,完整、高质量的历史数据,是我们整个流程的第一步。有了足够长时间、数据质量足够好的历史数据,我们才能将自己的想法形成的策略,通过回测在历史数据上进行验证,进而将通过历史回测检验的交易策略应用到实盘。

对于国内的股票、期货市场数据,我们可以通过许多三方的数据接口、数据商获取到高质量的历史数据,而对于数字货币市场,由于某些原因限制,我们很难获取到三方提供的数据。因此,寻找到一个我们可以免费获取的、数据时间足够长的、数据类型足够丰富的历史数据源,是我们研究数字货币策略,从回测到实盘的关键的第一步。

02

历史数据概览

我们为大家找到了完全符合上述要求的免费历史数据源,来自某安,其同时也是主流投资者交易的最多的平台,方便我们对接回测和实盘交易,即我们通过该交易平台历史数据的研究、回测得到的策略,可以直接用于该平台的实盘交易。

可以看到,其提供了丰富的历史数据种类,包括K线数据、成交数据、指数数据、Orderbook数据等,同时数据也覆盖了现货、USDT本位合约、币本位合约的全品类历史标的。不论是研究单一标的,还是研究套利(合约、现货)都可以从该数据源获取适合的数据。

我们看到上图的右侧是有下载按钮的,也就是每一种数据类型,币种类型,我们都可以点击进入对应的下载链接进行下载,我们以K线数据为例,点进K-line界面的USD - M FuturesData右侧的下载图表,实际上进入的是币安存放历史数据的ftp,进入后的数据展示界面如下。

可以看到该界面是按照币种来进行排布的,我们随意点击进入一个币种,以ADAUSDT为例。

ADAUSDT目录下是该币种的各个K线周期,每个K线周期对应的是不同周期下的K线数据。平台提供的K线周期很全,从1分钟K到日K级别的各个周期都有。假如我们点击进入1m/的这个链接,将显示如下页面。

可以看到这个页面下对应的是ADAUSDT合约每一天的1分钟K线数据,其中每天的数据都是以一个zip文件进行了打包。除了数据文件,还有一个日期对应的同名CHECKSUM文件,是在下载后帮忙我们检查下载数据完整性的,有了这个CHECKSUM文件,我们就可以避免在下载过程中出现的数据丢失而导致后续回测中出现数据方面的问题。

除了我们举例看到的ADAUSDT,其他的币种,也是按照同样的方式,在数据FTP上进行排列存放的,我们随机再看一个币种SHIBUSDT,也是同样的格式。

当然,除了按日排布存储的历史数据外,我们还可以下载到按月排布的历史数据,即某个币种某一个月的历史数据,统一存放在一个zip文件中。平台提供了多种存储形式,供我们选择。按月排布的历史数据,其优点是我们下载过程中所需要下载处理的文件数量显著变少,而其缺点是数据每月月末才更新当月数据,某些需要滚动回测调优参数的策略,月度数据会稍显滞后。

以上我们看到的数据展示,都可以点击页面的数据链接直接下载。比如我们点击上图的最后一行1000SHIBUSDT-1m-2022-01.zip,就可以将SHIBUSDT在2022年1月的1分钟K线下载下来。如果我们仅仅获取某个币种很短一段时间的历史数据,上述手工下载的方式是可行的,但如果我们需要大规模回测多币种、多周期的历史数据,显然我们需要的是全自动的、更高效的数据下载方式。

03

如何调用API下载历史数据

幸运的是,我们可以调用历史数据下载的API接口,来完成大规模、批量下载历史数据的工作。根据上述截图可以发现,该历史数据在ftp上的文件分布呈现出很强的规律性,即以monthly、daily区分月度、日度数据,以klines等标签区分数据是k线数据或成交数据或Orderbook数据,接下来再以币种、K线周期划分不同的数据集。

因此,我们只需要调用API接口,按照文件夹的排布规模,下载对应所需的数据即可。我们以下载所有USDT本位合约的K线数据为例。首先,我们调用get_all_symbols接口获取所有的USDT本位合约的名称。由于USDT本位合约还有BUSD为货币基准的币种合约,为减少下载数据量,我们仅选取USDT为货币基准的U本位合约。

接下来,我们就可以下载所有选中合约的K线数据了,我们选择的是下载全USDT币种、全时间、所有周期的K线数据,因此在对应的配置文件中,设置好对应的时间范围、K线周期范围。

第三步,我们调用API中的数据下载方法,到对应的文件夹名称下获取我们所需的K线数据。此处的代码示例,我们获取的是U本位合约下、按月度发布的全量K线数据,与此同时,我们还下载了对应的checksum文件,为数据解压校验做准备。

第四步,开始运行程序,在运行界面我们可以看到,对于上一次运行已经下载的文件,程序不会重复下载,只会下载增量部分,与此同时,如果该请求时间对应的目录或文件不存在,系统也会发出提示。

第五步,查看下载的文件。以下是我们下载到本地,其中一个币种1INCHUSDT的数据样例。可以说,批量下载就是一个把服务器上的文件结构搬运到本地的过程。

当然,除了USDT本位合约的K线数据,我们还可以下载现货K线数据,以及下载任意资产类别的成交数据等等,例如下载按日度整理的现货的成交数据,可以通过以下代码完成。

04

清洗历史数据准备回测

数据清洗第一步工作:解压缩。

对于下载的数据结果,我们可以看到,不论是1分钟周期,还是其他周期,都是按照月份放在一个个zip压缩文件夹内,如上一小节的本地截图所示。我们当然可以选择手工一个个解压缩,但最快的方式还是调用Python的zipfile工具进行批量的解压缩。

我们以解压全币种1分钟数据为例,打开其中一个币种1INCHUSDT的解压文件,看到的是按月划分的csv数据文件。

数据清洗第二步工作:数据预处理。

我们再打开第一个1INCHUSDT-1m-2020-12.csv的文件,会发现该数据的两个问题,首先是数据没有列名称,部分列数据我们无法推知其含义;其次是数据的时间戳列是用unix时间戳的形式记录的,对于回测不太方便,最好将其转化为普通的日期、时间。除此之外,由于数据是按月划分的,我们最好将其进行汇总,方便回测时能一次读入。

对于第一个列名问题,我们找到官方的说明文档,上面有关于每个列字段含义的说明。我们可以根据上述字段说明对于数据列名进行重命名。

因此,数据预处理部分的工作就是为了解决上述3个问题:列名、时间戳格式、以及数据合并。我们同样使用Python对数据进行预处理,最终得到的回测准备数据格式如下。每个币种一个文件,增加了正确的列名,并在最后两列增加了正确的日期和分钟时间。

本期分享的完整版源码于数量技术宅知识星球独家发布,想要加入的朋友,请添加技术宅微信sljsz01或sljsz05领取星球优惠券。

知识星球量化学院官方指定优惠链接

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
美贸易代表:美国决定不续签美墨加协定

美贸易代表:美国决定不续签美墨加协定

极目新闻
2026-07-02 00:26:37
一旦取消京牌限购,十几年的车牌泡沫或将瞬间彻底崩盘

一旦取消京牌限购,十几年的车牌泡沫或将瞬间彻底崩盘

小怪吃美食
2026-07-02 04:11:02
3年5100万美元!科林斯与活塞达成签约协议 联手坎宁安冲冠

3年5100万美元!科林斯与活塞达成签约协议 联手坎宁安冲冠

罗说NBA
2026-07-01 20:38:09
自己人都绷不住:2026年了,新加坡,你要自信啊!

自己人都绷不住:2026年了,新加坡,你要自信啊!

观察者网
2026-06-30 18:03:27
千万别乱买混动!插混和油混根本不一样,很多人提车就吃大亏

千万别乱买混动!插混和油混根本不一样,很多人提车就吃大亏

沙雕小琳琳
2026-07-01 15:47:19
63岁句号近况曝光!二婚娶小11岁丫蛋低调生女,如今幸福圆满

63岁句号近况曝光!二婚娶小11岁丫蛋低调生女,如今幸福圆满

落雪听梅a
2026-06-29 20:03:38
护士开房,被医院按卖淫开除赔11万!网友:举报人或是男方妻子

护士开房,被医院按卖淫开除赔11万!网友:举报人或是男方妻子

川渝视觉
2026-07-01 19:26:59
命真硬!世界杯疯狂一幕:世界第10第86分钟时0-2,90分钟时已2-2

命真硬!世界杯疯狂一幕:世界第10第86分钟时0-2,90分钟时已2-2

风过乡
2026-07-02 06:15:25
王曼昱为何0-3惨败佐藤瞳? 赛后马琳毫不客气说出原因,说得很实在

王曼昱为何0-3惨败佐藤瞳? 赛后马琳毫不客气说出原因,说得很实在

林子说事
2026-07-01 16:35:59
詹姆斯下家赔率更新!76人飙升至第4位 勇士领跑优势大幅缩小

詹姆斯下家赔率更新!76人飙升至第4位 勇士领跑优势大幅缩小

罗说NBA
2026-07-02 09:19:28
1950 年,四川地主拿出朱德欠条,朱总司令:马上把他接到北京来

1950 年,四川地主拿出朱德欠条,朱总司令:马上把他接到北京来

纪实文录
2025-06-21 14:47:10
都变形了!老詹打了23年职业篮球的脚都变鞋挤变形了!

都变形了!老詹打了23年职业篮球的脚都变鞋挤变形了!

篮球大图
2026-07-01 13:21:38
奥迪A6L暴跌20万!创20年历史最低,豪华信仰崩塌?

奥迪A6L暴跌20万!创20年历史最低,豪华信仰崩塌?

音乐时光的娱乐
2026-06-30 19:46:32
优必选全尺寸超仿生机器人11.98万元起:仅限成年人购买

优必选全尺寸超仿生机器人11.98万元起:仅限成年人购买

PChome电脑之家
2026-06-30 18:07:08
WTT美国大满贯!0-2到3-2逆转,孙颖莎+王楚钦苦战5局,惊险晋级

WTT美国大满贯!0-2到3-2逆转,孙颖莎+王楚钦苦战5局,惊险晋级

足球评论大家谈
2026-07-02 06:47:18
为哈梅内伊复仇仍是首要任务?伊朗专家会议中63名成员呼吁暗杀特朗普和内塔尼亚胡

为哈梅内伊复仇仍是首要任务?伊朗专家会议中63名成员呼吁暗杀特朗普和内塔尼亚胡

红星新闻
2026-07-01 17:22:11
莫言:一个人最大的愚蠢,是习惯性反驳|不涉及利益,闭嘴是修养

莫言:一个人最大的愚蠢,是习惯性反驳|不涉及利益,闭嘴是修养

杏花烟雨江南的碧园
2026-06-30 11:15:03
挪威2-1晋级,哈兰德女友感谢中国球迷:来自中国的每一句加油,我们都有收到!

挪威2-1晋级,哈兰德女友感谢中国球迷:来自中国的每一句加油,我们都有收到!

草莓解说体育
2026-07-02 09:12:39
再拿3100万!他15年没进过全明星,却狂赚3.3亿,创造80年NBA纪录

再拿3100万!他15年没进过全明星,却狂赚3.3亿,创造80年NBA纪录

大西体育
2026-07-02 09:19:07
六旬男子邀女子到家吃饭强抱对方被行拘,女方起诉索赔超9000元!法院认定构成性骚扰,判了

六旬男子邀女子到家吃饭强抱对方被行拘,女方起诉索赔超9000元!法院认定构成性骚扰,判了

红星新闻
2026-07-01 14:22:57
2026-07-02 10:52:49
数量技术宅 incentive-icons
数量技术宅
爱好数据分析量化投资的技术宅
280文章数 212关注度
往期回顾 全部

科技要闻

可灵AI上市前夜,快手想给它融30亿美元

头条要闻

"狗咖"倒闭数十只哈士奇疑遭弃 女店主自称有400只狗

头条要闻

"狗咖"倒闭数十只哈士奇疑遭弃 女店主自称有400只狗

体育要闻

世界杯硬核球迷,把自己变成了雕像

娱乐要闻

霍震霆回应霍启山娜然结婚传闻

财经要闻

千亿茶市场无赢家:澜沧巨亏 八马停"蹄"

汽车要闻

1.5T混动/综合续航约2000KM 全新一代红旗H7来了

态度原创

教育
家居
健康
时尚
房产

教育要闻

教育部部署做好2026年中小学、幼儿园暑期安全工作

家居要闻

传奇筑 日常诗

年糕汤圆别油炸,水煮清蒸更健康

月入3万,时代红利砸向文科生

房产要闻

海南楼市新政:公积金最高可贷192万!

无障碍浏览 进入关怀版