OKEX期货数据抓取
程序化交易就是用程序通过API和交易所连接,实现按照设计的意图自动进行比特币买卖或实现其他功能。程序化与量化不完全相同,你也可以实现一些辅助功能,如价格报警、数据统计、自动满仓、定时买入,设定价格买卖等等,利用程序化交易赚钱则是一项更困难的任务。
API全程Application Programming Interface,及应用程序编程接口。你可以在各个交易所的角落里看到API字样,点开就可以看到相应的文档,具体可以实现哪些功能一目了然,如Okcoin API文档。apiKey、secretKey相当于程序的账号密码,并不是所有的连接都需要,如查看历史成交记录、获得ticker、深度数据这些公共信息;而查看账户信息、下单交易等就需要。key一般可以用户中心申请到。key申请到后注意保存,不能泄露。
一般来说推荐okcoin、火币,这两家交易所API功能做的相对较好,深度足够,交易活跃。如果只推荐一个平台,首选okcoin。其余的交易所没有特殊需求不考虑,且不说小平台风险高,API的延时错误也让人苦不堪言。
·REST API,即(Representational State Transfer)的缩写,在REST API 中,如下面所示:
对REST API的请求交互,请参考:https://support.okcoin.com/hc/zh-cn/articles/360000695152
·WebSocket API,WebSocket是HTML5一种新的协议(Protocol)。它实现了客户端与服务器全双工通信,使得数据可以快速地双向传播。通过一次简单的握手就可以建立客户端和服务器连接,服务器根据业务规则可以主动推送信息给客户端。其优点如下:
官方强烈建议开发者使用WebSocket API获取市场行情和买卖深度等信息。
但在2017年10月12日更新了以下两点,作为以后开发首要注意点:
1.OKCoin国际站的WebSocket服务连接地址变更为:wss://real.okcoin.com:10441/websocket;
2.优化了OkCoin国际站WebSocket API。
OKCoin提供了API使用的示例程序,目前支持C#、C++、JAVA、PHP、Python版本,其他语言版本会相继支持。用户编程使用API时,必须要支持SNI①,否则可能出现连接失败。所有示例均支持SNI【SNI(Server Name Indication),是一项用于改善SSL/TLS的技术,在SSLv3/TLSv1中被启用。它允许客户端在发起SSL握手请求时(具体说来,是客户端发出SSL请求中的ClientHello阶段),就提交请求的Host信息,使得服务器能够切换到正确的域并返回相应的证书。】。
OKEX官方github链接已经完成了大多数工作:https://github.com/OKCoin/rest/tree/master/python,我们仅仅需要修改我们想要的结果即可,这里可以选取最简单的BTC、ETH来工作。
其中,程序如下图所示:
后续步骤会在以后更新上表述。