【StudyQuant Python量化投资课堂系列3】| CC
前言
如果你想入门量化,了解更多量化投资知识,欢迎点击加入关注我们的「量化投资博客」,欢迎大家加入。
也欢迎大神交流投资,互相学习。个人VX: 82789754
StudyQuant量化投资学院 计划在未来逐步公开以下内容:
- 量化投资学院:「Python量化投资教程」中进行详细的介绍,你也可以直接查看我们实时更新
- Python免费课程 :「零基础Python课程」网易云课堂长期更新
【特别注意】CCXT开源框架 调用K线数据可能有滞后性
ccxt项目介绍
即一个封装了诸多数字货币交易平台的api的开源库。支持python、php、javascrit三种语言,github上可以下载源码。ccxt结构明确,易于使用,所有api被封装成统一格式的接口,返回数据被封装成统一格式的字典,基本省去了api开发时间。
安装 · 使用 · 手册 · 常见问题 · 例子 · 贡献 · 社交
该CCXT库是用来连接和与世界各国cryptocurrency / altcoin交流和支付处理服务贸易。它可以快速访问市场数据,用于存储,分析,可视化,指标开发,算法交易,策略回溯测试,机器人编程,网上商店集成和相关软件工程。
它旨在供编码人员,开发人员,技术熟练的交易员,数据科学家和金融分析师用于构建交易算法。
优势
-
支持许多交易市场,统一API接口
-
为所有交易所完全实施的公共和私人API
-
所有货币,山寨币和符号,价格,订单,交易,代码等...
-
用于交叉交换或跨货币分析和套利的可选标准化数据
-
开箱即用的统一一体化API非常易于集成
-
适用于Node 7.6 +,Python 2和3,PHP 5.4+,Web浏览器
缺点
-
交易所过多, 如果部分交易所接口升级,CCXT不一定能及时更新
-
数据的处理好处 统一接口,统一返回调用K线的数据
-
数据的处理缺点 如果数据处理的不当,就会出现一些问题。 比如 CCXT在调用5分钟的数据的时候, 对K线的筛选规则进行了一定的处理。 那么本次测试中,在使用CCXT调用5分钟K线时, 出现了数据滞后的问题。
CCXT调用K线数据滞后性说明
<pre spellcheck="false" class="md-fences md-end-block ty-contain-cm modeLoaded" lang="python" contenteditable="false" cid="n42" mdtype="fences" style="box-sizing: border-box; overflow: visible; font-family: var(--monospace); font-size: 0.9em; display: block; break-inside: avoid; text-align: left; white-space: normal; background-image: inherit; background-position: inherit; background-size: inherit; background-repeat: inherit; background-attachment: inherit; background-origin: inherit; background-clip: inherit; background-color: rgb(248, 248, 248); position: relative !important; border: 1px solid rgb(231, 234, 237); border-radius: 3px; padding: 8px 1em 6px; margin-bottom: 15px; margin-top: 15px; width: inherit; color: rgb(51, 51, 51); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;"> since = now - limit * 5 * 60 * 1000
df = pd.DataFrame(bitmex.fetch_ohlcv(symbol, timeframe='5m', limit=limit, since=since),
columns=['time', 'open', 'high', 'low', 'close', 'volume'])</pre>
如果数据处理的不当,就会出现一些问题。 比如 CCXT在调用5分钟的数据的时候, 对K线的筛选规则进行了一定的处理。 那么本次测试中,在使用CCXT调用5分钟K线时, 出现了数据滞后的问题。比如在同一时间调用5分钟的K线,官方接口给出了最新 6点40分的K线数据, 然而CCXT只给出了 6点35分的K线数据,整整滞后了5分钟, 如果你使用CCXT的这个接口获取K线来跑量化投资策略,那么,如果您使用的是1分钟以上的周期数据(如5分钟)。 那么,请检查调取出来的K线数据最后一根K线是否准确,如果缺少数据,那你用这个接口跑的策略,都会出现信号滞后的现象 这是一个很严重的问题!!**
无图无真相
CCXT 调取K线数据 滞后1根K线
![](https://img.haomeiwen.com/i10681489/64024f0bac74ae91.png)
BITMEX 官方API 调取K线数据
![](https://img.haomeiwen.com/i10681489/99e16a0cdac9ca76.png)
解决方案
修改CCXT接口底层代码
前言
如果你想入门量化,了解更多量化投资知识,欢迎点击加入关注我们的「量化投资博客」,欢迎大家加入。
也欢迎大神交流投资,互相学习。个人VX: 82789754
更多量化学习资源
扫上方二维码,关注公众账号 量化投资学院 ,获取下列免费资源
-
回复“热点研报”,获取近年热点券商金融工程研究报告
-
回复“Python3”,获取Python免费学习教程
-
回复“Python”,获取免费Python量化投资入门课程