okex 加密货币自动化交易 Python量化 通过api交易的方法(一)

如何通过okex提供的api研究自动化交易或者进行数据分析

加密货币市场风云诡谲,向来有币市一天股市一年的称呼,一天振幅5%是家常便饭,涨跌个25%也不要觉得太过惊讶。
所以如果对自动化交易,量化交易,数据分析感兴趣的,不如研究一下加密货币的市场波动(尤其是期货市场),因为波动幅度大,交易量可观,不失为一种作为研究的好手段。

起源

很早很早之前,在15年的时候知乎日报就有发过一篇文章,作者刚从伯克利毕业的时候被同学的一番话所吸引

跟我们说他之前花一万美金买的一千个比特币最近让他已经赚了 20 倍了,毕业第一年是不是工作无所谓了。Kevin 大谈比特币的通缩本质对于普通人战胜通胀的意义,以及自己坚定要持有到 500 美金 / 每个比特币再抛售的信念。

不知道这个哥们有没有忍到18年初2w美金抛售的日子,他的1万美金应该变成2000万美金了!
该作者当时使用脚本,依靠不同交易所价差过大通过搬砖套利的方式做了几乎在当时看来无风险的交易。
这个作者最后也没有透露自己总共在这个上面挣了多少美金(或者说多少比特币,尤其是是否持有到了今天)
不过最后的最后,15年至少作者的数据还发挥了余热给学弟学妹们做了数据源

一年后(2015 年),大老板 MD 安排我带哈佛 CSE 专业的学生做一个 Industry Project (Course 297r,Applied Computation 297r. Computational Science and Engineering Capstone Project),我想起了比特币的这段经历,于是把之前的数据找出来,给他们研究比特币的交易策略。除了我们做的这种 Pairs Trading 的策略,他们还研究了 Hidden Markov Chain 和其他技术指标交易办法。如果对结果有兴趣的,欢迎查看他们的 Report

总之不论是不是真的投入去交易,用来学习研究总归是有收获的。

先期准备

大家最好懂一点Python,有个能访问api的VPS云主机,其余就没有什么啦

api

api 的文档:https://github.com/okcoin-okex/API-docs-OKEx.com
主要分为合约交易(期货)和币币交易
如果只是为了研究用,建议就多参考比特币的合约交易,因为比特币作为加密货币的价值基石和韭菜们的共识,其活跃度是远高于其他币种的。
我们重点关注API-For-Futures-CN这个文件夹,这个就是中文的合约交易的API,注意官方更新并不及时,有些废弃的参数或者有些返回值不对,可能会遇见各种问题。
鉴于测试过说websocket的方式不稳定,暂时只关注以rest方式提供的API

rest

简单介绍一下就是发送一种网络请求,请求一个特定的url会返回一个结果。再简单点理解,就是发送http的get和post请求就可以了。
有兴趣自行搜索了解restful api的设计思想。

简单的api调用思路

封装一个客户端

client.py

#作为一个基类,负责封装url的拼接,发送get请求,对post请求通过api key进行加密
class OkexBaseClient (object)
#这个类调用基类,定制针对每个api的get或post调用
class OkexClient(OkexBaseClient)

再写一个Python文件调用

basic.py

#这里引入基类
from client import OkexClient
#生成一个实例
client = OkexClient(None, None)
#具体调用一个函数,比如拉取k线
res = client.kline(symbol, '15min', 'this_week')

具体怎么做后面还会继续写,做成一个系列,有兴趣的同学们可以加QQ群858200152交流

猜你喜欢

转载自blog.csdn.net/sinat_18497785/article/details/81481704