LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 区块链资讯 > 改造Deribit期货API以适应期权量化交易

改造Deribit期货API以适应期权量化交易

2019-12-02 发明者量化交易 来源:区块链网络

数字货币期货交易所目前已经有很多家,但是作为期货衍生品,数字货币期权交易,目前市面上的交易所还不多,支持期权交易的有Deribit、BitMEX。在量化交易领域,期权交易也有多种策略,例如搜索到的一些资料中提及的期权策略:

ieTdw6Hh5Q0fOcuWDOeJgolxFPafXxbdgVPRf9xD.png

编写期权交易策略还是需要先打牢固基础,基本的下单,行情获取,撤单,获取持仓等操作要熟悉。策略编写依然使用发明者量化交易平台,虽然发明者量化交易平台目前对于数字货币量化交易领域支持的主要是币币交易,合约交易,杠杆交易。期权交易的相关资料不多,下面就以「Deribit」交易所为例,介绍一下如何使用发明者量化交易平台玩转数字货币期权交易。

Deribit 相关资料

API 文档:?https://docs.deribit.com/v2/?javascript#public-get_last_settlements_by_instrument

模拟盘:?https://docs.deribit.com/v2/?javascript#public-get_last_settlements_by_instrument

可以在模拟盘网站上注册好账号,开启API KEY ,获取到API KEY。配置在发明者量化交易平台,就和配置实盘一样。

tnoAJc4WpYyCrDiblNfMykZyMmYghECjeGZexNkz.png

对于期权交易需要理解的4个基本概念:

ZFPVLzB7hss1GE05Lgwe3NUWJoiuyNAjjU1zU3Kt.png

行权日:期权的多空双方在该日期完成期权合约的交割。

行权价:在行权日那天,期权的多空双方以行权价完成期权合约的交割。

权利金:也就是期权的价格,跟现货期货一样,报价有买一价和卖一价。值得注意的是,由于期权的流动性一般都比期货和现货差,因此买卖价差有可能会很大,这里要特别注意!成交后,成交价格就是期权多头的成本,此时多头获得权利(行使期权的权利);而期权的空头作为收权利金的那一方,增加了一项义务,一旦多头要求行使权利,空头必须配合。

看涨(call)看跌(put)期权:所谓看涨期权就是期权多头拥有在某个行权日,以某个行权价格,向期权空头要求买入既定比特币的权利,空头有配合多头的义务;而所谓看跌期权就是期权的多头拥有在某个行权日,以某个行权价格,向空头要求卖出既定比特币的权利,空头有配合多头的义务。

行情获取

看了Deribit交易所的API文档可知,Deribit的行情接口对于访问期货或者期权行情,仅仅是传入的instrument_name参数不同而已(instrument_name是通过函数SetContractType设置的),那么基本上就可以沿用获取行情的接口GetTicker获取期权的行情。当然,发明者量化交易平台封装的默认是Deribit交易所的实盘,我们首先要切换到模拟盘,使用如下代码:

ClalrCAXxuy3iEun1cGohIQ8ZJ8MGiGFGb9Rnyiw.png

然后我们当前设置为期权合约BTC-27DEC19-7000-P:这个是行权日期为:27DEC19,行权价格为:7000的看跌期权

lZShqyvlsRwFZIcpapLUKV2TBZ1vvgawniPuOA52.png

然后获取,我们写在一起,让代码运行一下,测试获取这个期权合约的行情。

AUw4ABTuPxyuSgqX19G5YsX4Y2wmGr5ARhagykdT.png

使用调试工具可以很方便的测试:

Gy4CWyMqH1nGPGBGReKjc7vu4fm5h9UxfH6yrQmg.png

可以看到和模拟盘上的价格是一致的。

w3TMN2oIyuyIFZPSsFazUOFr6ZFAEYME9pQD22Y7.png

其它的行情接口调用方式是一致的,这里不再赘述,需要注意的是: 期权交易并不是很活跃,盘口有时候会出现没有买单,或者没有卖单的情况,这个时候,发明者量化交易平台底层会检测到0的数值,会报错,可以使用SetErrorFilter("Invalid ticker")忽略这个报错,并且使用GetRawJSON函数获取行情的原始信息封装数据即可,这里我写一个范例实现类似功能:

pf9UkhOFUmwhohqAkt8XC01zmkcbeZg3zttEtqAi.png

调用时写:Log($.GetTicker(exchange))

下单

下单操作十分简单,相比期货交易来说,只有买卖两个方向。同样使用Sell,Buy函数下单。

1XwYJdG6jmXENi8ofhPaGjiGtzhaUYXf4RY3FRAI.png

F870rdlZ5pClrDIHmr36yVQDSWVUszU2uPBqmYe0.png

模拟盘面上也出现了刚才下的订单。

sdviZmnKfI3AS5VHGyz9Wl5uF6piY30HKHDRAUp7.png

并且exchange.GetOrder(id)可以查询到订单信息。

撤单

撤单同样使用的是CancelOrder函数,和期货交易时撤单一样。

s3abpi0AurEkK0VxwVuRYMcY4UdczIu8JaTbFCcN.png

获取账户可用资产

获取账户可用资产则和期货交易时完全一样,直接调用GetAccount函数即可。模拟交易所页面上的显示

4B4qMiR5XkmAYWblIjc74Lxa6uzrDlzMutFf8E3s.png

运行代码获取:

K6OfXwPKuNgioyYTNBQkXoOaIcpptjvQ3EA3iyre.png

获取持仓信息

持仓方面就不能直接使用封装好的GetPosition函数了,因为默认Deribit交易是期货交易,并不是期权交易,只能用这个函数获取期货持仓。所以这个就必须要我们自己动手封装获取期权持仓的函数了。API文档上获取持仓的函数接口:

JFHXh2iKQLGXczbgmLbSOlHzX8sY2JCQxT9xlnK2.png

FBCSkjjXZrsepczTjDn14hBIcKctgD0EeDtJKaFU.png

调用Log($.GetPosition(exchange))即可打印持仓信息。

uUtfObZ1GoO1JVVbbZwo1Fv0R7sNiEdrvIZg5Ywd.png

N9cpf7GM6iIv2XIaDC9z83tIWTvN2HrSbmNgExLl.png

这样,基本操作都可以实现了,剩下的就可以研究期权交易策略了。

—-

编译者/作者:发明者量化交易

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...