10

数字货币的python量化交易(五)--最专业的期现套利讲解

 3 years ago
source link: https://zhuanlan.zhihu.com/p/349391751
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

数字货币的python量化交易(五)--最专业的期现套利讲解

专注数字货币的程序化交易

在文章之前,我还是想强调一下:

1,交易数字货币,最大的风险是平台跑路(亲身经历了fcoin的跑路,小百万人民币就直接归零了)

2,第二个风险就是美金汇率下跌(2020年上半年,用人民币买入usdt要7块钱,到2021年用usdt只能换回6.4块)

v2-4ac7d1d84ed91eeba5471c75c0bd5cdb_720w.jpg

在不考虑以上两个风险和操作失误的可能后,期现套利基本上可以算是无风险套利了。

先上个Okex的注册链接,本文以okex为例说明:

====================

期现套利,本身的逻辑就是因为期货和现货有价差,但在期货交割的时候,是以现货的价格交割,从而产生套利的机会。

用数学来描述就是(以币本位交易):

1,假设现货价格当前为x元,买入数量为m个,总资金量为x*m;

2,期货价格为x*a元,杠杆倍数是y,每张合约的面值是k,总的可做空数量为m*(x*a)*y/k,假设做空的仓位比例为j,则做空数量为m*(x*a)*y*j/k;

3,在合约交割时,以价格x*b的价格交割(合约按x*b交割,也就是把合约平仓掉,同时把所有的现货按x*b卖掉)。

那么,收益p=交割的资金-实始资金=[m+(k/(x*b)-k/(x*a))*m*(x*a)*y*j/k]*x*b-x*m

=m*x*(b+(a-b)*y*j-1)

=m*x*(b*(1-y*j)+(a*y*j-1))

为了让交割的时候,以最终价格无关,所以需要使(1-y*j)=0,也就是y*j=1,意思就是如果杠杆倍数是y=10,做空的比例就是1/10,此时的收益p=m*x*(a-1),所以交割的收益率:

p1=a-1

也就是期货价格相对现货价格的溢价了。

验证完毕。

===================================

回到okex上,如下为2021/2/5早上9:33分时的价格,当季合约是3/26交割,期货价格是38886.72,现货指数是37224.71,所以当前如果买入现货,在10倍杠杆的情况下,做空十分之一的仓位,那么收益率p1=38886.72/37224.71-1=4.46%(不考虑手续费的情况下)。

具体操作如下:

1,在交易中,选择“币币交易”

2,输入买入价格和买入数量,点“买入BTC",即可买入现货。这里我按37051.7usdt的价格买入0.10795725的btc,交割额就是4000usdt。

3,在交易中选择“交割合约”,然后选择“币本位保证金合约(当季)”,然后选择BTCUSDT当季0326的合约,再点“资金划转”,如下图,我把“币币账号”的btc都划转到“交割合约账号”了。

4,注意,右上角一定要把账号模式设置为“全仓”,杠杆倍数设为“10.00X",交易单位设成“张”。

5,输入交易的价格,显示可开416张,我们按1/10来开就是41.6张,四舍五入下,选择开42张(只能取整数),点“卖出开空”,成交了就可以了。

6,合约开空单成功后,要特别注意,开仓成功后,保证金率应该约为100%,预估强平价要么很大,要么显示为0(即在这种方式,永远不会暴仓,其实没有永远了,下个月就交割了^_^)。

7,在这次交易中,我的开仓均价为38737.14usdt,现货买入价格为37051.7usdt,所以在交割的时候,我把合约平掉,然后把所有的现货卖掉,我的收益率p1=38737.14/37051.7-1=4.54%,按投入4000usdt*4.54%=181.6usdt,预计3月到期的时候,我应该会180美金左右的收益。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK