量化策略应该用市价单吗?巨亏18万美金!
温馨提示:本文最后更新于2024年10月20日 15:59,若内容或图片失效,请在下方留言或联系博主。
什么是市价单?
市价单,指的是无论现在价格如何,对手盘深度(挂单量)怎么样,都要执行完成我的交易。
看起来很好
那么量化策略应该用市价单吗?
什么是深度?
深度指的是一个由众多买单价格和对应的挂单量 以及 众多卖单价格和对应的挂单量组成的挂单列表简称为深度。
大币种参与的做市商和其他量化策略众多,从而每个价格的挂单量都不会低,所以很少出现巨额滑点情况。但是根据我的观察,市场大跌之后,深度会变薄很多。
而小币种,参与者很少,只有几个义务做市商在参与挂单,所以如果你的市价单把义务做市商的挂单量吃完后,剩下的订单都是滑点。
我的答案是分情况:
- 对于BTC、ETH这样的大币种,可以用市价单
- 对于小币种,不应该用市价单,或者有条件的用市价单
为什么对大币种可以用市价单?
因为他们的深度很厚,就算你下单几百万美金滑点也不会特别特别离谱导致巨额亏损。但也要注意风险!
为什么小币种不推荐用市价单?
通常,我们的量化交易策略,会在风控模块,直接调用交易所的API来市价平仓从而达到快速止损
但是有经验的策略开发者,一定不会这么做,如果问他为什么,他会给你看他用市价单导致的巨额滑点亏损
图为使用市价单在深度不好的小币平仓导致巨额滑点亏损2万美金:
看到这些后你还敢随意的使用市价单吗?
那么正确的做法是什么?
- 限制金额,市价单不能无限制下单量使用,必须限制每几秒最大下单金额。或者查询币种挂单量决定下单金额。
- 使用限价单一样可以达到市价单的效果。比如当前价格是100,如果你要买入那么你限价单价格报价101,他会直接吃掉到101的价格的挂单量后停止继续交易,也就是最大1%滑点。
如果想要快速平仓,又怕巨额滑点应该怎么办?
我的做法:
循环检查仓位,设置一个最大滑点值,一般设置0.2%,有仓位就下一个IOC订单,直到仓位被清空。
比如当前价格100
要做BUY,IOC 100.2
要做SELL,IOC 99.8