3月7日的币安被黑事件,让许多人知道了API。具体经过是这样的:每个交易所都提供api,量化投资其实也就是通过这些api来才做账户的买卖的。这些api只能交易,不能提现,所以理论上安全。有的人把api提供给第三方的服务,比如一些搬砖机器人网站。这些网站收集到的api被黑客黑走了,然后黑客根据收集到的api进行了这次的黑客行动。
那么既然API这么有用,我们怎么能不去学习呢?(当然不是做黑客,而是去量化交易。)
量化交易的过程就是获取数据、处理数据、下单。其中获取数据需要交易所API接口。
登录Coinmarketcap.com,选择一个交易所。选择的标准首先是安全性,中心化的交易存在安全隐患,包括黑客和监守自盗。交易量越高人气越旺,深度越大。可以在24小时交易所成交量排名中,选前10的。
大多数主流交易所都有API接口可以获取数据,实施下单。由于最近一些大的交易所被墙,无法登录,我选择OTCBTC的API接口给大家演示。
在币币交易页面右下选择API文档,打开进入Github页面,如下:
先看Public API:
markets ——得到所有的币币交易品种名称
Tickers——得到所有币币交易品种过去24小时的报价
tickers{market}——得到指定币币交易品种过去24小时的报价
order_book——获取指定币币交易品种的订单。
Trades ——最新成交,记录每一笔成交数据,用于高频交易。
Kline——返回k线数据,可以做一些测略回测,趋势或者择时测略。
klines_with_pending_trades——返回待处理数据的K线,目测和Kline基本一致。
URL网址,就是API。打开一个新的网页,先输入OTCBTC的币币网址https://bb.otcbtc.com,再后面在输入你要带入的API接口URL。之后显示为一堆如下:
我们可以使用Chrome的浏览器插件JSONView让数据换行显示,会更加直观。
下面分别详细讲解各个接口:
markets:不用解释了。
tickers{market}:这个大括号里的参数market就是你要查询的交易品种。注意大括号不要输入。
At——当前时间,用Unix格式显示,可以在python中改为常用的时间格式。
buy——最后的主动买入价格
sell——最后的主动卖出价格
low——最低价
high——最高价
last——收盘价
vol——成交量
order_book:asks是主动卖,bids是主动买。
Trades:参数 limit——设定查询最近的成交笔数;
market——选取你要查询的币币交易品种
klines:参数 period——设定K线的时间,单位为分钟,可选1, 5, 15, 30, 60, 120, 240, 360, 720, 1440, 4320, 10080。