OKEX及OKCoin量化交易入门-API入门及实践(Python语言)

OKEX及OKCoin量化交易入门-API入门及实践(Python语言)

这段时间的工作太忙,而研究的内容又是从没接触过的python,以至于花费了很长一段时间。现在回头看学到的知识,在高手面前,自然是不值一提,但是对于许多还未入门的人来说,下面的内容可以有效避免大家走弯路,进入到程序化交易的领域。理解以下讲解的内容,需要有一定的编程基础。如果不懂编程,就买本《python编程-从入门到实践》看一看,搞懂程序运行的逻辑就行,毕竟编程重在实践。

www.okex.com和www.okcoin.com

OKEX的前身是国内的OKCoin平台,由于众所周知的原因,现已移至海外。目前OKCoin旗下主要包括OKEXOKCoin国际站两个平台,这两个平台上的API文档基本上是通用的,因此本次分享的内容以OKEX平台为主,内容包括新建APIpython语言下的API程序调用方法(可用于获取平台现货,期货信息,以及挂单,撤单等常规操作)。

一、首先要找到网站的API(Application Programming Interface,应用程序编程接口)文档,通常都会在官网的主页最上面或最下面的位置。OKEX的API位于页面顶端,进入我的API后,点击新建API,获取apikey和secretkey。(OKEX为您提供了强大的API,您可以根据自身需求建立不同权限的API,并利用API进行自动交易或者提现。API的交易权限让您可以快速的获取当前市场最新行情及时的下单交易、查询自己可用和冻结金额、查询自己当前尚未成交的挂单、买进或卖出、撤单;提现权限可以让您快速提现到您的认证地址。)

API是直接跨过账号密码接管你的账户的,是非常重要的信息,建议大家不要在任何可以联网的设备中保存此类信息

在API接入页面新建API、查看API文档

建立好API key后,进入API文档(该页面下有个API交流群,可以给大家提供帮助,说实话,找了我好久!),就可以查看到OKEX提供API的相关资料。对于使用python的用户,可以访问代码示例-REST API-python页面来获取相关程序信息,(OKEX建议开发者使用REST API进行币币交易或者资产提现等操作。强烈建议开发者使用WebSocket API获取市场行情和买卖深度等信息。)

注:只有3.4 及以上版本的python才可以运行此示例程序,具体原因在readme 文档中有提到。

二、python语言下的API程序调用方法。以上四个后缀为py的文件(Client,httpMD5Util,OkcoinFutureAPI,OkcoinSpotAPI)即为可执行的python程序,它们的文件名已经说明了各自的作用,不过对于新手,看着还是很懵逼。这里我给大家梳理一下这几个程序文件的关系。

Client为主程序,包含用户指令集。在此文件里填入 API key,去除所需执行语句前的“#”符号,即可执行相应语句。

OkcoinFutureAPI,期货API功能项,供主程序调用

OkcoinSpotAPI,现货API功能项,供主程序调用;

httpMD5Util,供现货、期货程序调用。用于进行http请求,以及MD5加密,生成签名。

有关程序具体的运行逻辑,大家可以参考

wb wang:比特币程序化交易入门(2):REST API,里面有详细的解释说明。

三、程序运行错误代码合集。由于网页提供的程序处于多年未更新的状态,已有一些内容与当下的情况并不相符,导致服务器返回错误代码,这时就需要查询错误代码的含义来debug。比如执行以下代码:

print (u' 现货深度 ')
print (okcoinSpot.depth('btc_usd'))

服务器会返回error code:1007。查询此编号代表含义为:没有交易市场信息。这样的返回信息也是让人摸不着头脑,想了很久终于发现原因:在OKEX上,是以usdt为交易对,而不是usd,因此只要把usd改成usdt就能返回正确的结果。

小结:除了上面的usd改为usdt这个问题,在实践中本人也发现了不少其他错误以及新手可能踩到的坑,因此我重新整理了API里的代码并添加了注释,相信对大家会有所帮助。整理不易,若有需求,点赞支持并留言我会分享给大家,感谢!

编辑于 2018-07-01

文章被以下专栏收录