在程序化交易、量化交易中研究策略、设计策略、回测分析时离不开行情数据的支持。市面上的所有数据都收集也不现实,毕竟数据量太大。对于数字货币市场来说,发明者量化交易平台上支持有限的交易所、交易对的回测数据。如果想回测一些暂时不支持数据的交易所、交易对。可以使用自定义数据源来进行回测,但是这个前提是要自己有数据才行。所以就迫切需要一个行情收集程序,并且能持久化保存,最好还能实时获取。 这样可以解决几个需求,例如: 1、可以给多个机器人提供数据源,可以缓解每个机器人访问交易所接口的频率。 2、可以让机器人启动时,获取一个K线BAR数量足够多的K线数据,再也不用担心机器人起始的时候K线BAR数量不足了。 3、可以收集小币种行情数据,用来给发明者量化交易平台回测系统提供自定义数据源,从而使用回测系统回测策略。 计划使用python实现,为什么?因为很方便 ????有了需求,动手! 准备 python的pymongo库 因为要用到数据库,做持久化保存。数据选择使用MongoDB,使用Python语言写收集程序,所以需要这个数据库的驱动库。 在Python上安装pymongo即可。 在托管者所在设备安装MongoDB 例如:MAC安装MongoDB,当然WIN系统安装MongoDB也差不多,网上有很多教程,以在苹果MAC系统安装为例: 下载链接:https://www.mongodb.com/download-center?jmp=nav#community 下载后,解压缩到目录:/usr/local。 配置环境变量 终端输入:open -e .bash_profile,打开文件后,写入:export PATH=${PATH}:/usr/local/MongoDB/bin 保存后,终端使用source .bash_profile使修改生效。 手动配置数据库文件目录和日志目录 创建目录/usr/local/data/db中对应的文件夹。 创建目录/usr/local/data/logs中对应的文件夹。 实现收集器程序 收集器以发明者量化交易平台上的Python机器人策略形式运行。由于本人Python水平有限,只是实现了一个简单的例子,用于展示本文的思路。收集器策略代码: 完整策略地址:链接 使用数据 创建使用数据的策略机器人。 注意:需要勾选上「画线类库」,没有的话可以去复制一个到自己策略库。 可以看到使用数据的策略机器人代码中没有访问任何交易所接口,通过访问数据库获取数据,行情收集器程序没有记录当前BAR的数据,收集的是已经完成状态的K线BAR,如果需要当前BAR实时数据,稍加修改即可。当前的例子代码,只是为了演示,在访问数据库中表内的数据记录时是全部获取,这样随着收集数据时间增长,收集数据越来越多,全部查询出来会一定程度上影响性能,可以设计成只查询比当前数据新的数据,添加到当前数据中。 运行 运行托管者程序 在托管者所在设备,运行起来MongoDB数据库服务 ./mongod -f mongo.conf 收集器运行,收集发明者量化交易平台的模拟盘wexApp的BTC_USDT交易对: 地址:wexApp 使用数据库数据的机器人A: 使用数据库数据的机器人B: wexApp页面: 图中可以看到,不同ID的机器人,共享使用一个数据源的K线数据。 收集任意周期的K线数据 依托于发明者量化交易平台的强大功能,我们可以轻松实现收集任意周期的K线数据。比如,我要收集3分钟K线,交易所没有3分钟K线怎么办?没关系,可以轻松实现。我们修改收集器机器人的配置,K线周期设置为3分钟,发明者量化交易平台会自动合成3分钟K线给收集器程序。 我们使用参数删除表的名称,设置:["records"]删除之前收集的1分钟K线数据表。准备收集3分钟K线数据。启动收集器程序,再启动使用数据的策略机器人。 可以看到画出的K线图表,BAR之间间隔时间就是3分钟了,每根BAR就是3分钟周期的K线柱。下期我们尝试实现自定义数据源的需求实现。感谢阅读 本文来源:发明者量化 —- 编译者/作者:发明者量化 玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。 |
手把手教你实现一个行情收集器
2020-04-30 发明者量化 来源:火星财经
LOADING...
相关阅读:
- 币圈丽姐:自BTC强势破万后近一周策略获利10475USDT2020-08-02
- 辉神解币:8.2比特币趋势分析2020-08-02
- 1万美元的比特币,你再也买不到了2020-08-02
- Upay即将上线苹果商店 金融数字货币潜力无穷2020-08-02
- 郑弘文:8.02强势反弹暴力瀑布1600点后市如何操作?2020-08-02