本着后知后觉的行事准则,18年1月的时候开始关注比特币。算是决定学习一点金融知识,但是迟迟没有动手。当到了年中的时候,比特币价格大约在6600USD上下。那时觉得可以入一波,就花了3万块在huobi上买了点。3个星期后卖掉了,算是挣到的第一桶金,大约1200人民币…后来同样的伎俩又挣了几百块吧。

我意识到这样搞是不行的,没有优势可言,完全依照人类的直觉判断,不够理性。然后开始在huobi上写写策略,尝试用代码挣钱。前前后后好几个月,从huobi转战到binance,without exception,I failed…什么三角套利,网格交易,这些简单的伎俩在手续费面前都是扯淡。再加上交易所糟糕的基础设施,想挣钱不要太难。

那时候深知一个道理,早早放弃相当于前功尽弃,停留在表面是学不到东西的,一定要深入底层。通过这段时间的学习,我对金融有了更深的理解。交易真的很有趣,我不再关注k线,均线什么的指标了。我开始研究market microstructure,limit order book,order flow等等。我认定高频交易是最符合我性格/技术的交易系统。

首先我回顾了自己开发的策略,都是传统策略,也就是网上能找到的东西,确实没有难度。另外,就是手续费。高昂的手续费在没有优势的高频策略里简直就是杀手。后来就换到了bitmex上,因为bitmex的limit order有rebate,我后面的策略就是去赚rebate。

来到了bitmex,开始学习期货知识,研究bitmex上的future contract和swap contract。把bitmex ceo放在youtube的视频都看了一遍,其中包括market making和arbitrage。这些视频对建立基本的金融常识起着至关重要的作用。

我开始在google上搜索market making的相关信息,后来看了很多论文,一开始非常迷茫,这些论文最水的是直接套机器学习模型,抽一些timeseries features、order imbalance features。这种论文指导性一般,这些特征自己也能想出来,实际测试下来也确实一般。模型输出的信号不能直接作为交易信号。因为模型胜率一般,并且会导致一直无法成交。但是理论上应该可以作为辅助来提升策略的优势,这是接下来要优化的点。另外很多论文都是跟随机过程相关的,通篇的公式,上来就是XX分布。好在,without exception,我没有放弃…

这些论文我统一理解为金融数学建模,无非是针对limit order book和order flow进行建模,模型开始都是基于布朗运动,到最后求一个近似最优解。以此作为输出信号,根据当前的position,在两边挂单。在一定条件下取消订单,或重新挂单。总之,目的无非是在挂单时结合当前的position算一个最优的spread,这个spread希望可以让order快速成交/平仓,也就是创造优势。

这里面最难解决的问题就是spread。spread太小的话,很快就被市场runover。如果太大,会迟迟不能成交,最后导致整个策略不收敛,没法快速平仓,裸露的头寸成为最大的风险点。

在刚开始实现自己的bitmex做市策略时,我直接上机器学习,没有效果可言…然后尝试去掉模型,直接跟市场拼网速,结果也不行…原因是bitmex的websocket推送延时太高。尽管我知道bitmex使用的aws,我也在相同region开的ec2,但是我不知道这个是bitmex有意为之,还是本身就没有良好的基础设施建设。总之,推送的order、order book、order flow延迟都很高。跟高频交易的要求差距太大太大了。

这时候是有点灰心的,有点想放弃。后来有一天,看到有人用很挫的策略在botvs上直播,居然还天天挣钱,也是醉了,还收智商税…自己很不服气,接着干。我回顾了之前犯过的错,我发现归根到底有两个问题我没有解决:

  1. spread多少合适,如何根据仓位计算skew;
  2. 止损。

结合之前总结的教训,我需要从宏观上解决这两个问题。首先考虑的就是我能不能抗住bitcoin一天10%的波动。4、5个点的波动对于币市来说太司空见惯了,没有波动就没有市场。我的策略一定要能抗住10%的波动,也就是说我希望两次10%波动之间,我是能赚钱的!这里没有考虑对冲,纯粹在策略上实现。我不需要追求稳定的收益,比如每天1%收益,这个很没必要。

另一方面,高频率的市价止损太可怕了,本身做市策略就是高胜率、低盈亏比的,加入大量止损,实在没意义了。我决定从两方面止损,一是快速挂单求平仓,二是取消底部买单和顶部的卖单,让策略尽快的反向交易,自行止损。

感谢bitmex良心赌场,开放了所有数据,我可以通过历史的quote data进行回测。我选用了过去一年的数据,而不是两年或者更多,不算杠杆,年化是有100%的。实测下来从元旦到今天18号,10X,也有32个点的收益了。但是,这并不意味整个策略足够安全。期间bitcoin从3800直冲4000+,毫无理由,我的策略确实亏了点收益,但是我作为人类都能认定,价格一定会跌下来。过了3天不到,价格就跌下来了,把之前亏的赚了个底朝天,接近10个点的收益。然后到3500+,都扛下来了,收益也很稳定,就等待下一次10个点的下跌了。

想到的问题还是挺多的,能优化的点也很多。线上用0.1个btc在跑,本身这个策略的资金利用率就不高,而且我还用了10X杠杆,头寸还是比较小的。假使我用1个btc,仍然是10X杠杆的话。假如遭遇+10%的波动,可能会在某个位置爆仓。确实,10X杠杆太作了。另外,整个策略没有信息优势,不会迎合市场进行抬价降价,这个是接下来重点优化的点。最近也在恶补随机过程,希望能从数学模型上再增加点优势。最后就是币价风险,这里后面可以实现动态对冲。首先,在收益趋于稳定时,手动加入对冲。毕竟整个策略是用来赚币的,但是行情看来,币价3000不保啊。

交易很有趣,作为一个软件工程师,真希望能哪一天辞掉工作,安心在家全职交易起来。另外心态、性格都很重要。关于交易的策略,西蒙斯的话还是很受用的:多想想别人没想过的东西,尝试稀有的思路,剩下的交给运气。我自己本职工作还是一名软件工程师,最擅长的还是发现问题,解决问题。本身考虑交易的出发点就在于自己穷,想解决这个困然我终身的大问题…对于今后几十年的财富管理也算有点眉目了吧。

以上。再见2018👋!