FMZ量化交易改造Deribit期货API以适应期权量化交易
admin
2023-08-02 16:00:52
0

目前不清退的交易所推荐:

1、全球第二大交易所OKX欧意

国区邀请链接: https://www.myts3cards.com/cn/join/1837888   币种多,交易量大!

国际邀请链接:https://www.okx.com/join/1837888 注册简单,交易不需要实名,新用户能开合约,币种多,交易量大!

2、老牌交易所比特儿现改名叫芝麻开门 :https://www.gate.win/signup/649183

全球最大交易所币安,国区邀请链接:https://accounts.binance.com/zh-CN/register?ref=16003031  币安注册不了IP地址用香港,居住地选香港,认证照旧,邮箱推荐如gmail、outlook。支持币种多,交易安全!

买好币上KuCoin:https://www.kucoin.com/r/af/1f7w3  CoinMarketCap前五的交易所,注册友好操简单快捷!

FMZ量化交易平台邀请链接:https://www.fmz.com/

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

类型
方向性策略: 买入看涨期权 卖出看跌期权 牛市看涨价差 牛市看跌价差
买入看跌期权 卖出看涨期权 熊市看涨价差 熊市看跌价差
波动率策略: 卖出跨式 卖出宽跨式 买入跨式 买入宽跨式
对冲策略: 备兑看涨 备兑看跌 保护性看涨 保护性看跌
多头双限 空头双限

引用自连接

编写期权交易策略还是需要先打牢固基础,基本的下单,行情获取,撤单,获取持仓等操作要熟悉。策略编写依然使用发明者量化交易平台,虽然发明者量化交易平台目前对于数字货币量化交易领域支持的主要是币币交易,合约交易,杠杆交易。期权交易的相关资料不多,下面就以「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。配置在发明者量化交易平台,就和配置实盘一样。
169366a1121fd50bd671169366a1121fd50bd671

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

  • 行权日:期权的多空双方在该日期完成期权合约的交割。
  • 行权价:在行权日那天,期权的多空双方以行权价完成期权合约的交割。
  • 权利金:也就是期权的价格,跟现货期货一样,报价有买一价和卖一价。
    值得注意的是,由于期权的流动性一般都比期货和现货差,因此买卖价差有可能会很大,这里要特别注意!成交后,成交价格就是期权多头的成本,此时多头获得权利(行使期权的权利);而期权的空头作为收权利金的那一方,增加了一项义务,一旦多头要求行使权利,空头必须配合。
  • 看涨(call)看跌(put)期权:
    所谓看涨期权就是期权多头拥有在某个行权日,以某个行权价格,向期权空头要求买入既定比特币的权利,空头有配合多头的义务;而所谓看跌期权就是期权的多头拥有在某个行权日,以某个行权价格,向空头要求卖出既定比特币的权利,空头有配合多头的义务。

行情获取

看了Deribit交易所的API文档可知,Deribit的行情接口对于访问期货或者期权行情,仅仅是传入的instrument_name参数不同而已(instrument_name是通过函数SetContractType设置的),那么基本上就可以沿用获取行情的接口GetTicker获取期权的行情。

当然,发明者量化交易平台封装的默认是Deribit交易所的实盘,我们首先要切换到模拟盘,使用如下代码:

exchange.IO(\"base\", \"https://test.deribit.com\")

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

exchange.SetContractType(\"BTC-27DEC19-7000-P\")

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

function main () {
    exchange.IO(\"base\", \"https://test.deribit.com\")
    exchange.SetContractType(\"BTC-27DEC19-7000-P\")
    var ticker = exchange.GetTicker()
    Log(ticker)
}

使用调试工具可以很方便的测试:
164843f3f2f6f8cce649164843f3f2f6f8cce649
可以看到和模拟盘上的价格是一致的。
16b7d21322f1dd6baa2916b7d21322f1dd6baa29

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

function init() {
    SetErrorFilter(\"Invalid ticker\")
}

$.GetTicker = function(e) {
    var ticker = e.GetTicker()
    if (!ticker) {
        try {
            var ret = JSON.parse(e.GetRawJSON())
            return {
                Info : ret,
                High : ret.result.stats.high,
                Low : ret.result.stats.low, 
                Buy : ret.result.best_bid_price,
                Sell : ret.result.best_ask_price,
                Last : ret.result.last_price, 
                Volume : ret.result.stats.volume,
                OpenInterest : 0,
                Time : new Date().getTime()
            }
        } catch (err) {
            Log(err)
        }
    }
    
    return ticker
}

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

下单

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

function main () {
    exchange.IO(\"base\", \"https://test.deribit.com\")
    exchange.SetContractType(\"BTC-27DEC19-7000-P\")
    
    var id = exchange.Buy(0.017, 1)
    Log(exchange.GetOrder(id))
}

164951fbebdaa6f1953c164951fbebdaa6f1953c

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

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

撤单

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

获取账户可用资产

获取账户可用资产则和期货交易时完全一样,直接调用GetAccount函数即可。

模拟交易所页面上的显示
16543b57fb1fa1a9b55d16543b57fb1fa1a9b55d

运行代码获取:
1677593dd477ed4127621677593dd477ed412762

获取持仓信息

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

API文档上获取持仓的函数接口:
175cf58a6a2d3d2922ab175cf58a6a2d3d2922ab

$.GetPosition = function(e) {
    // /private/get_positions
    // currency  , kind 
    
    var positions = [] 
    var currency = e.GetCurrency()
    var arr = currency.split(\"_\")
    var baseCurrency = arr[0]
    
    try {
        var ret = e.IO(\"api\", \"GET\", \"/api/v2/private/get_positions\", \"currency=\" + baseCurrency + \"&kind=option\")
        for (var i in ret.result) {
            if (ret.result[i].size == 0 || ret.result[i].direction == \"zero\") {
                continue    
            } 
            
            var pos = {
                Info : ret.result[i], 
                Amount : ret.result[i].size,
                FrozenAmount : 0,
                Price : ret.result[i].average_price,
                Profit : ret.result[i].floating_profit_loss,
                MarginLevel : 0,
                Margin : 0,
                ContractType : ret.result[i].instrument_name,
                Type : ret.result[i].direction == \"buy\" ? ORDER_TYPE_BUY : ORDER_TYPE_SELL,
            }
            
            positions.push(pos)
        }
    } catch (err) {
        Log(err)
        positions = null
    }
    
    return positions
}

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

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

FMZ量化交易平台邀请链接:https://www.fmz.com/

全球最大交易所币安,国区邀请链接:https://accounts.binance.com/zh-CN/register?ref=16003031  币安注册不了IP地址用香港,居住地选香港,认证照旧,邮箱推荐如gmail、outlook。支持币种多,交易安全!

买好币上KuCoin:https://www.kucoin.com/r/af/1f7w3  CoinMarketCap前五的交易所,注册友好操简单快捷!

目前不清退的交易所推荐:

1、全球第二大交易所OKX欧意,邀请链接:https://www.myts3cards.com/cn/join/1837888 注册简单,交易不需要实名,新用户能开合约,币种多,交易量大!。

2、老牌交易所比特儿现改名叫芝麻开门 :https://www.gate.win/signup/649183

买好币上币库:https://www.kucoin.com/r/1f7w3

火必所有用户现在可用了,但是要重新注册账号火币:https://www.huobi.com

全球最大交易所币安,

国区邀请链接:https://accounts.suitechsui.mobi/zh-CN/register?ref=16003031 支持86手机号码,网页直接注册。

相关内容

热门资讯

Windows 11 和 10... Windows 11/10 文件夹属性中缺少共享选项卡 – 已修复 1.检查共享选项卡是否可用 右键...
Radmin VPN Wind... Radmin VPN 是一款免费且用户友好的软件,旨在牢固地连接计算机以创建一个有凝聚力的虚拟专用网...
如何修复 Steam 内容文件... Steam 内容文件锁定是当您的 Steam 文件无法自行更新时出现的错误。解决此问题的最有效方法之...
在 Windows 11 中打... 什么是链路状态电源管理? 您可以在系统控制面板的电源选项中看到链接状态电源管理。它是 PCI Exp...
Hive OS LOLMine... 目前不清退的交易所推荐: 1、全球第二大交易所OKX欧意 国区邀请链接: https://www.m...
事件 ID 7034:如何通过... 点击进入:ChatGPT工具插件导航大全 服务控制管理器 (SCM) 负责管理系统上运行的服务的活动...
iPhone 屏幕上有亮绿色斑... iPhone 是市场上最稳定的智能手机之一,这主要归功于专为它们设计的 iOS 操作系统。然而,他们...
在 iCloud 上关闭“查找... 如果您是 Apple 的长期用户,您肯定会遇到过 Find My 应用程序,它本机安装在 iPhon...
balenaEtcher烧录后... balenaEtcher烧录后u盘或者内存卡无法识别不能使用的解决方法想要恢复原来的方法,使用win...
统信UOS每次开机后不直接进入... 统信UOS每次开机后不直接进入系统而是进入到recovery模式 按方向上键选择UOS 20 SP1...