程序化交易入门(一)

OKEX期货数据抓取

程序化交易入门(1):概述

程序化交易就是用程序通过API和交易所连接,实现按照设计的意图自动进行比特币买卖或实现其他功能。程序化与量化不完全相同,你也可以实现一些辅助功能,如价格报警、数据统计、自动满仓、定时买入,设定价格买卖等等,利用程序化交易赚钱则是一项更困难的任务。

1. 什么是API、apiKey?

API全程Application Programming Interface,及应用程序编程接口。你可以在各个交易所的角落里看到API字样,点开就可以看到相应的文档,具体可以实现哪些功能一目了然,如Okcoin API文档apiKey、secretKey相当于程序的账号密码,并不是所有的连接都需要,如查看历史成交记录、获得ticker、深度数据这些公共信息;而查看账户信息、下单交易等就需要。key一般可以用户中心申请到。key申请到后注意保存,不能泄露。

2. 在哪个交易所进行交易?

一般来说推荐okcoin、火币,这两家交易所API功能做的相对较好,深度足够,交易活跃。如果只推荐一个平台,首选okcoin。其余的交易所没有特殊需求不考虑,且不说小平台风险高,API的延时错误也让人苦不堪言。

3. 接口调用说明?

·REST API,即(Representational State Transfer)的缩写,在REST API 中,如下面所示:

  • 在RESTful架构中,每一个URL代表一种资源;
  • 客户端和服务器之间,传递这种资源的某种表现层;
  • 客户端通过四个HTTP指令,对服务器端资源进行操作,实现“表现层状态转化”。

    对REST API的请求交互,请参考:https://support.okcoin.com/hc/zh-cn/articles/360000695152

·WebSocket API,WebSocket是HTML5一种新的协议(Protocol)。它实现了客户端与服务器全双工通信,使得数据可以快速地双向传播。通过一次简单的握手就可以建立客户端和服务器连接,服务器根据业务规则可以主动推送信息给客户端。其优点如下:

  • 客户端和服务器进行数据传输时,请求头信息比较小,大概2个字节;
  • 客户端和服务器皆可以主动地发送数据给对方;
  • 不需要多次创建TCP请求和销毁,节约宽带和服务器的资源。

     官方强烈建议开发者使用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来工作。

其中,程序如下图所示:

                          

  • Client为主程序,包含用户指令集。在此文件里填入 API key,去除所需执行语句前的“#”符号,即可执行相应语句;
  • OkcoinFutureAPI,期货API功能项,供主程序调用;
  • OkcoinSpotAPI,现货API功能项,供主程序调用;
  • httpMD5Util,供现货、期货程序调用。用于进行http请求,以及MD5加密,生成签名;

后续步骤会在以后更新上表述。

 

没有更多推荐了,返回首页