CCXT 是一个支持多交易所的加密货币交易库,它集成了 100 多个交易所的 API。
今天用这个库来获取 BTC 合约的历史数据。
其实不用 CCXT 而使用 requests 直接发送请求也可以获取到数据,但是为了保持后续代码的一致性,还是使用 CCXT 来获取数据。
使用 Anaconda 在界面安装,或者在命令行内输入:
pip install ccxt
DataFrame
:价格数据以 pandas 的 DataFrame
格式的文件进行保存,如果文件存在则说明存在之前获取的价格数据,否则新建一个空的 DataFrame
;DataFrame
为文件。上面这段代码展示了循环获取价格数据,直到结束的过程。
代码片段 1:用来确定获取的数据的起止时间范围,停止时间为当前时间。如果是在之前获取的数据后面追加数据,则开始时间是之前数据的最后一条的时间;如果是从头获取,则开始时间设定为 2019 年 10 月 1 日,这个时间是某安合约板块开通的时间。
代码片段 2:在起止时间范围内,循环获取数据,每次 1000 条,解析后追加到 data 变量中。如果获取的数据条数小于等于 1,则知道数据已经取空了,可以停止。
代码片段3:将新获取的数据和老数据进行合并,生成新的 DataFrame
。group().tail()
这一组语句的目的,是把新旧数据的重复数据进行去重,留下交易量 volume 高的那一条。产生重复的原因是,每次获取 1000 条数据后,简单进行了追加,没有和已有数据进行去重。
检查缺失数据的方法,是按起止时间范围,生成出每一条时间,和 DataFrame
中的每一条时间对比,看是否有差异。
检查重复数据,使用了 DataFrame
的 duplicated() 函数,它能直接找出重复项。
获取的 BTC 价格数据的 DataFrame
像上面这样。
整个代码中的主要部分,是数据循环获取。
需要着重处理的部分,是新旧数据的拼接和去重问题。
其他辅助部分包括加载旧数据和重复缺失检查。
本文位于搭建量化交易体系中的获取「数据」下的「获取币圈数据」部分。
如果需要完整代码文件,可以加我的微信「wuzaoquant」发给你。
股票账户余额
8 月前
微信交易通知
所有脚本列表
10 月前
板块置顶 微信交易通知
数字货币移动平均线交叉
10 月前
微信交易通知
期货移动平均线交叉
10 月前
微信交易通知
股票移动平均线交叉
10 月前
微信交易通知
商品期货委托单
10 月前
微信交易通知
商品期货成交
10 月前
微信交易通知
商品期货持仓
10 月前
微信交易通知
商品期货余额
10 月前
微信交易通知
币安子账户余额
10 月前
微信交易通知
币安账户余额
10 月前
微信交易通知
币安合约仓位
10 月前
微信交易通知
搭建免费的量化交易可视化系统
1 年前
教程
脚本部署指南
10 月前
板块置顶 微信交易通知
如何安装 Miniforge Python 发行版
1 年前
教程