币安资金费率套利详细流程

好久没更新了,今天来聊一聊稳定套利类型的策略:资金费率套利。

什么是资金费

永续合约是数字货币市场特有的一类期货,它是永远不会到期交割的期货。而资金费是跟随永续合约产生的特有的名词。 因为永续合约没有到期或交割,所以需要通过“资金费用机制”来让合约价格锚定现货价格。

永续合约每8小时为一期,每期结束时进行结算,永续合约每天结算3期(次)。即00:00-8:00为一期,结算时间为8:00;8:00-16:00为一期,结算时间为16:00;16:00-次日00:00为一期,结算时间为00:00。以上时间均为GMT+8时间。

结算时,用户应当收取还是支付资金费用,由本期的资金费率以及该用户的持仓情况决定。当资金费率为正值时,多仓将支付资金费用,空仓将收取资金费用;当资金费率为负值时,多仓将收取资金费用,空仓将支付资金费用。

介绍完资金费的概念,我们再来看资金费的计算方式。

首先,资金费率有一个重要的特征:延时性。 即当期的资金费率,由上一期的数据进行计算而得,在本期开始时已经确定,期内不会改变,并应用于本期结束时的资金费用结算。 而与此同时,交易所一般还会计算一个下一期的预测资金费率,这个预测资金费率一般每分钟更新, 本期最后一次计算的预测资金费率,就是下一期的资金费率。

比如, 8:00-16:00这一期的资金费率,是通过上一期00:00-8:00的数据计算而得,在8:00的时候已经确定,在16:00进行结算时使用。同时,8:00-16:00这段时间内,每分钟会计算一个预测资金费率,预测的是16:00-次日00:00这一期的资金费率,并将最后一次计算的预测资金费率,作为16:00-次日00:00这一期的资金费率。

其次,资金费的计算,与两个变量相关,一是综合利率,二是溢价。我们可以这样来理解,以正资金费率为例,综合利率决定资金费率的底,溢价决定资金费率的顶。当资金费率为正,且永续合约相对于现货的溢价很小时,资金费率等于综合利率,目前大部分平台的值都是0.01%;而当永续合约相对于现货的溢价超过一定比率时,资金费率是由溢价率作为输入的公式计算出来的,我们不需要去完整的理解这个公式,只需要有大致的概念,资金费与溢价率高度相关,溢价越大,资金费率相应的也越高。

之所以不需要去理解这个公式,是因为资金费率、下一期预测资金费率,我们都可以在交易所的K线界面看到,同时API中也有相关计算好的字段,能够很容易的读取到相应数值。

永续合约有两类,一类是币本位合约,以交易的币种作为保证金、盈亏计价,另一类是U本位合约,以USDT作为保证金和盈亏计价。不论是U本位,还是币本位,只要是永续合约,都有资金费率存在。我们也可以通过交易所的合约信息,查询到两类永续合约分别的实时资金费率、预测资金费率。

资金费策略原理

资金费率有一个显著的特征:其正负分布是极度有偏的,我们以最近大热的狗狗币(doge/usdt)为例,可以看到的是,资金费>0的次数远远多于资金费<0的次数,也就是说,在大部分行情下,永续合约的空头都在赚取永续合约多头的资金费。

看到这里,严谨的朋友可能会问,那么是否是因为你举了狗狗币这个最近多头大热的例子,所造成的幸存者偏差?其实多头、空头在更长时间赚取资金费率的几率应该是大致相等的呢?

我们以币安交易所U本位永续合约BTCUSDT为例,绘制出过去3年BTC U本位永续合约所有时间的资金费,可以看到,仍然和近期的狗狗币那样,大部分时间资金费率都是正值,只有在深度熊市(例如2020年3月),资金费率才会短暂的打到负值。

于是,我们可以总结一下数字货币永续市场的规律:资金费率常年为正,牛市时期幅度极大,只有在深度熊市,才频繁出现负值。换句话说:在永续合约市场,由于资金费率的存在,空头的长期优势是大于多头的。那么,我们如何既在永续市场做空头赚取资金费,又不承担标的资产的方向性波动?许多老交易员第一时间就能想到:我们在现货市场开多,在永续市场上开空,就能完美做到上述两点。

而我们的这个资金费策略,在获取资金费收益的同时,还期望能赚取市场一部分的价差波动。还是以近期的狗狗币为例,下图的溢价指数k线,可以理解为是永续合约与现货之间的价差。尽管这个价差在大部分时间为正(永续>现货),但在分钟甚至Tick级别上,价差会出现短时间的负值(永续<现货)。我们在价差达到较大正值时建仓(买现货同时卖空永续),而在价差达到较小负值时平仓,就能够赚取到市场中的价差波动。

因此,我们的资金费策略原理,是将收取资金费与赚取价差波动结合起来,当某个币种资金费率高,同时现货合约价差高,我们进场开仓(买现货同时卖空永续),如果现货合约价差不收敛到0以下,我们就在场内持续吃资金费的利润,如果现货合约价差到0以下,我们平仓(卖现货同时买平仓永续)以获取价差收益;同时在平仓之后,继续寻找下一次高资金费率、高价差的进场机会,并如此循环往复。

全自动交易

如果说交割合约的期现套利,由于价差较大、交易周期较长,我们还可以通过手工交易来完成;永续合约的资金费策略,由于其价差小、机会转瞬即逝、对交易成本极其敏感、需要不断切换高资金费、高价差品种等特性,我们只有通过程序全自动执行这一系列低延时+高精度操作。

由于永续合约分成币本位永续合约、USDT本位永续合约两类,我们也根据这两类不同的永续合约,设计了两套不同的交易执行程序,而每一套程序,又包括了开仓逻辑和平仓逻辑。

一、币本位永续

开仓逻辑

  1. 遍历所有币本位永续合约当期资金费率和下期预测资金费率,找到资金费率大于我们设定要求的币种(代表此时做多现货、做空合约,我们能够收取到较高的资金费率)
  2. 实时跟踪该币种的期现价差比率(即币本位永续合约价格减去现货价格的百分比)
  3. 当实时期现价差比率大于设定值,立即买入现货
  4. 现货成交后,将该币种划转至币本位永续账户作为保证金
  5. 在币本位永续合约账户做空等市值的空单
  6. 完成开仓逻辑,更新配置文件中的现货、合约持仓记录、可用资金

平仓逻辑

  1. 遍历所有币本位永续合约持仓币种当期资金费、下期预测资金费率,找到资金费率小于我们要求的币种(代表此时我们已经只能收取极低的资金费率,或是要支付资金费率)
  2. 实时跟踪该币种的期现价差比率(即币本位永续合约价格减去现货价格的百分比)
  3. 当实时期现价差比率小于设定值,立即平仓永续合约空头
  4. 永续合约释放保证金,将该币种释放的保证金划转至现货账户
  5. 现货卖出平仓,完成一轮平仓逻辑,和这一轮开、平的资金流转
  6. 更新配置文件中的现货、合约持仓记录、可用资金

二、USDT本位永续

开仓逻辑

  1. 遍历所有USDT本位全仓永续合约当期资金费率和下期预测资金费率,找到资金费率大于我们设定要求的币种(代表此时做多现货、做空合约,我们能够收取到较高的资金费率)
  2. 实时跟踪该币种的期现价差比率(即USDT本位永续合约价格减去现货价格的百分比)
  3. 当实时期现价差比率大于设定值,立即同时等市值开多现货、开空USDT本位永续合约
  4. 完成开仓逻辑,更新配置文件中的现货、合约持仓记录、可用资金

平仓逻辑

  1. 遍历所有USDT本位永续合约持仓币种当期资金费、下期预测资金费率,找到资金费率小于我们要求的币种(代表此时我们已经只能收取极低的资金费率,或是要支付资金费率)
  2. 实时跟踪该币种的期现价差比率(即USDT本位永续合约价格减去现货价格的百分比)
  3. 当实时期现价差比率小于设定值,立即同时对现货、USDT本位永续合约进行平仓
  4. 完成平仓逻辑,更新配置文件中的现货、合约持仓记录、可用资金

三、附加功能

以上描述的逻辑,是基础的开、平仓的实现逻辑,与此同时,无论是币本位永续,还是USDT本位永续,我们都为程序设计了以下的附加功能:

  1. 考虑到资金容量的问题,程序支持分批交易和拆单,减小对特别是小市值币种的市场冲击
  2. 期现价差比率,我们在跟踪过程中采用的是保守的算法,比如准备开仓时,我们的期现比率价差,用的是现货的卖5价与期货的买5价之间的比率价差;而在准备平仓时,我们反过来,用的是现货的买5价和期货的卖5价之间的比率价差
  3. 策略的关键参数包括资金费率的进出场阈值、期现价差的进出场阈值、分批交易的金额,都设计成外接的配置文件,可以灵活调整
  4. 对于报单未成交问题,专门处理了报单、撤单、追单逻辑,确保套利头寸双边成交。
  5. 整个资金费率策略,包含了资金费率轮动的大逻辑。在一轮一轮的开、平仓过程中,我们不断地在高资金费的币种建仓,吃资金费,等到该币种资金费率降低,再平仓切换下一个高资金费币种,继续吃高资金费,由此逻辑不断进行轮动,从而增强收益。

如何执行自动交易

量化合作共赢: chenxiao_17301

第四步,运行策略,走你!

在策略运行前,最后一步的准备工作,是在账户中放入足够的usdt。对于币本位永续,我们只需要在币币账户存入相应数额的usdt,程序会在交易过程中,自动完成划转功能;而对于U本位永续,我们需要在币币账户、U本位永续全仓账户存入足额的usdt(建议初始币币和U本资金1:1配置)。

然后我们就可以开启策略了,开启之后需要做什么?似乎什么也不需要做,静静等待策略自动交易就好。过去一个月,似乎实盘成绩还不错。

在Python中进行(Binance)量化交易通常需要使用一些专门的库,如`ccxt`、`binance_api` 或者 `python-binance`等,它们提供了对Binance API的简单封装。以下是基本步骤: 1. **装依赖**: 首先,确保已经装了`pip`包管理器,然后使用命令行装所需的库: ``` pip install ccxt binance ``` 2. **创建API密钥**: 注册Binance账户并申请交易API密钥和秘密。将这些信息全地存储起来,因为它们会被用于连接到Binance服务器。 3. **初始化连接**: 使用`ccxt`库,可以这样创建一个Binance交易所的实例: ```python from ccxt.binance import Binance exchange = Binance({ 'apiKey': 'your_api_key', 'secret': 'your_secret_key', 'enableRateLimit': True, # 为了处理速率限制 }) ``` 4. **市场数据获取**: 获取价格信息、订单簿数据等: ```python symbol = 'BTC/USDT' ticker_info = exchange.fetch_ticker(symbol) ``` 5. **编写策略**: 根据您的交易策略,可能会涉及到买入、卖出、限价单、市价单等操作。例如,执行一个简单的订单: ```python order = exchange.create_order( symbol, 'LIMIT', # 买或卖类型 'BUY', # 购买或出售 '0.01', # 数量 'best_bid') # 限价依据 ``` 6. **监控与回调**: 可能会需要设置回调函数来处理订单状态变化或其他事件。 7. **模拟交易或实时交易**: 使用`paper_trade=True`进行回测,或者直接`execute()`进行实盘交易。注意在生产环境中启用实盘交易前务必测试好。 ```python order = exchange.create_order( symbol, 'LIMIT', 'BUY', '0.01', 'best_bid', {'paper_trade': False} # 生产环境设为False ) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值