美文网首页
BitMex网格量化交易策略

BitMex网格量化交易策略

作者: 袁嘉威 | 来源:发表于2019-05-28 11:36 被阅读0次

「原理」

利用走势的震荡,在一定区间范围内,按照固定价差设置挂单,低买高卖或高卖低买,实现盈利

1.设定价格区间,价格上线Js、价格下线Jx(当前价格J为上下线中间位置)

2.设定网格数量n,单网格间距a=(Js-Jx)/n

3.设定单格固定挂单合约张数b

以当前价格J为起始点,向上每间距a挂固定空单b,一共挂5单,同理向下每间距a挂多单b,一共挂5单。

当价格上涨或下跌吃掉一个单子后,将挂单进行调整,以当前位置重新定位,依旧是上下分别挂空多5单。

当价格上涨或下跌至网格边缘,即价格接近Js或Jx时,可能存在挂5单超出价格区间的情况,我们规定超出部分不挂单,例如当前价格上涨接近Js了,可能在价格区间内只能挂一个空单了,那就只挂一个空单,但下方依旧是5个多单。

「收益」

1.挂单成交,负手续费0.025%

2.单网格成交利润b*[1/J-1/(J+a)]


「风险&应对」

在设定的价格区间波动是最理想的状态,若价格波动超出网格,应对措施:

1.超出网格范围无挂单

2.超出网格瞬间顺势市价开对冲单

3.当对冲单盈利抹平网格内单子的亏损后,所有持仓全部清仓,系统暂停,直到手动启动


「可能的亏损情况说明」

1.技术风险,以上所讲,实现时存在的延时或bug导致单子并非按照计划进行而造成的损失

2.价格正好在设定的Js或Jx附近来回波动,不断的促发对冲单市价开仓、平仓,亏损对冲单市价开平仓的手续费

第1点慢慢解决,解决第2点最可行的应对措施,就是让对冲单尽快的完成对冲使命然后全部平仓,要尽快完成那就要在最小的波动范围结束战斗,也就是增加对冲单的合约数量,具体对冲单的数值讨论见「举例」


「举例」

设:

当前价格J=8000

价格上线Js=9000、价格下线Jx=7000

设定网格数量n=200,单网格间距a=(9000-7000)/200=10

设定单格固定挂单合约张数b=100


当前价格8000,在8010、8020、8030、8040、8050分别挂100张空单;在7990、7980、7970、7960、7950分别挂100张多单

如果当前价格在7990-8010间波动,不会吃到任何挂单,继续等待

如果价格上涨到8012,8010的100张空单被吃,挂单被吃后瞬间调整挂单,在8020、8030、8040、8050、8060分别挂100张空单;在8000、7990、7980、7970、7960分别挂100张多单

此时

持仓:100张价位为8010的空单

盈利:100/8010*0.025% BTC

如果价格跌回到7999,8000的100张多单被吃,挂单被吃后瞬间调整挂单,在8010、8020、8030、8040、8050分别挂100张空单;在7990、7980、7970、7960、7950分别挂100张多单

此时

持仓:空仓

盈利:100/8010*0.025%+100/8000*0.025%+100*(1/8000-1/8010)BTC(两次挂单的负手续费以及一个网格空单盈利)


如果一直在价格区间[7000,9000]内上下波动,将会持续盈利

现在讨论极限情况,如果从8000一路涨到9000,一共吃到100个空单,每个空单100张,共计10000张空单

此时持仓均价=10000/(100/8010+100/8020+...+100/8990+100/9000)=8499.9≈ 8500

设9000的价位市价开平仓保本点为a

1/9000-1/a≥(1/9000+1/a)*0.075%

a≥9013.5

根据之前说的要尽量在小的波动范围内完成对冲,又起码要大于13.5个点才能把市价开平仓的手续费抹平,我们先设为20点,也就是价格涨到9020要求对冲单盈利能抹平10000张均价为8500的空单损失,设在9000开多单对冲单d张

d*(1/9000-1/9020)-d*(1/9000+1/9020)*0.075%≥10000*(1/8500-1/9020)+10000*1/9020*0.075%

d≥278878

显然太多了,要减少对冲单的张数两个方面可以着手,一个是扩大价格比如在9050再要求对冲单盈利能抹平亏损;一个是缩小网格范围,让网格单边挂满单子数量也不大,同时均价也不会差太多

如果设为50点,也就是价格涨到9050要求对冲单盈利能抹平10000张均价为8500的空单损失,设在9000开多单对冲单d张

d*(1/9000-1/9050)-d*(1/9000+1/9050)*0.075%≥10000*(1/8500-1/9050)+10000*1/9050*0.075%

d≥117909

似乎也太多了


基本上价格对冲单抹平50个点是极限了,最好还是尽量少,风险才小,30相对合理。第二可以采取的方式是缩小网格范围,让网格单边挂满单子数量减小

设:

当前价格J=8000

价格上线Js=8500、价格下线Jx=7500

设定网格数量n=100,单网格间距a=(8500-7500)/100=10

设定单格固定挂单合约张数b=100

如果从8000一路涨到8500,一共吃到50个空单,每个空单100张,共计5000张空单

此时持仓均价=5000/(100/8010+100/8020+...+100/8490+100/8500)=8249.9≈ 8250

设8500的对冲单保本点为30,也就是价格涨到8530要求对冲单盈利能抹平5000张均价为8250的空单损失,设在8500开多单对冲单d张

d*(1/8500-1/8530)-d*(1/8500+1/8530)*0.075%≥5000*(1/8250-1/8530)+5000*1/8530*0.075%

d≥49180

感觉可以,也就是8500市价开5w张多单


极端情况,在8500市价开了5w张对冲多单,但是价格未涨到抹平线8530又跌回网格内,此时需要在8500市价将对冲单平仓

亏损=50000/8500*0.075%*2=0.0088235 BTC

而单网格的盈利=100/8010*0.025%+100/8000*0.025%+100*(1/8000-1/8010)BTC(两次挂单的负手续费以及一个网格空单盈利)=0.00002185 BTC

0.0088235/0.00002185=404

也就是一次对冲单开单了,但是没有完成使命被平掉,开平手续费损失会抹平大约400次网格盈利

只要杜绝对冲单在网格边缘来回波动的情况就可以

实际看了看走势图,基本上不会遇到,基本是对冲单能完成使命的情况,而刚好在我们设置的网格边缘波动概率很小

微信:kv987654321(备注简书)

相关文章

网友评论

      本文标题:BitMex网格量化交易策略

      本文链接:https://www.haomeiwen.com/subject/fxowaqtx.html