我用过的数字货币量化交易方法

我用过的数字货币量化交易方法

今年有个计划是写5篇文章,早上看日历今年还剩20多天,还好已经写了4篇,只差一篇。想了想最近两年做过的事情,量化交易占了一部分精力。从里面挣过钱(虽然不多),所以一直认为是值得深入研究的事情。

我从2020年开始做量化交易,到现在差不多有3年了,用过的策略无数个,虽然还没有挣到很多钱,但确实踩了很多坑。这篇文章会介绍我用过的量化交易方法:马丁、网格、K线指标、交易反指、Swap套利、MEV等,会总结这些方法面临的致命性问题,也会总结盈利的方向和必要条件。希望这篇文章能给正在研究量化和想研究量化的人提供一些总结和指导,让大家少走一些弯路,少踩一下坑。

一、什么是量化交易?

百度百科给出的解释是:量化交易是指以先进的数学模型替代人为的主观判断,利用计算机技术从庞大的历史数据中海选能带来超额收益的多种“大概率”事件以制定策略,极大地减少了投资者情绪波动的影响,避免在市场极度狂热或悲观的情况下作出非理性的投资决策。

这里面有几个关键词:数学模型、历史数据、情绪

直白点解释是用数学计算从历史的交易数据中分析出价格走势规律,制定交易策略,这个过程需要大量的计算和高效及时的操作(买卖),所以需要使用计算机程序完成。因为计算机只会按照输入代码指令执行交易,所以避免了人在交易中的情绪变化(重仓猛干、浮盈加仓、频繁交易)。

这几年见过很多做量化的高手,他们对于量化交易的解释各不相同,有人认为必须用到复杂数学模型和AI预测才能算量化交易策略,否则只能算使用程序自动化交易。还有人认为只要用计算机程序完成的交易,都属于量化交易。我认为只要利用了数学计算、并且利用计算机程序完成的交易都属于量化交易,为了避免其中的争议,我标题用的“量化交易方法”。交易品种主要是数字货币的比特币、以太坊等其它币种的永续合约。

最初使用量化交易是为了解决两个问题:1、因为要上班和睡觉,没办法长时间盯盘。2、交易情绪比较大,犹豫不决,容易在交易中改变最初的止盈止损。我想这应该是大多数人要研究量化交易的主要原因。为了解决这两点问题我开始使用计算机程序交易,最初并不懂什么是趋势策略、震荡策略、套利策略、仓位管理、CTA、多因子等,通过百度了解到入门级策略:RSI、MACD、KDJ、马丁格尔、网格交易这5种最最大众的策略,从而开始了策略研发和调参之路。

二、我用过哪些方法?

1、马丁格尔:这个策略很简单,把资金分成N份,随机开仓(多或空)。假设建仓金额10U,止盈10%,亏损补仓10%。当盈利10%时执行平仓操作,亏损10%时补仓10U,再亏损10%时补仓20U,以此类推。这个交易的前提是币价不会一直涨,也不会一直跌,只要不断补仓,就能等到胜利的时候,结果就会盈利。2020年有很多量化交易APP都是基础马丁策略,最终都倒闭了,这个策略听起来很可行,实际使用却是个大坑。

该次交易连续补仓10次,最终跌幅是65.1%;建仓成本价10U,第10次补仓需要5120U,是建仓成本的512倍。此时如果涨幅10%平仓,这次交易不亏不赚,如果又跌幅10%,下次补仓需要10240U。

马丁格尔策略的缺点:

a、占用资金量大,如果把资金分成很多份,那么收益率还不如放在余额宝。

b、补仓次数刷新认知,数字货币的跌幅65.1%很常见,甚至95.1%都常见,马丁策略很容易把子弹打完。

我在2020年基于马丁格尔策略的交易盈利1000倍,完全是运气,当时比特币牛市,用马丁一直开多单。最终也是因为马丁把钱亏完。

2、网格交易:我们发现比特币价格大部分时间都在波动,涨涨跌跌,如果有一个策略能在上涨前买入,下跌前卖出,不断循环重复,像一张网,这就是网格交易。

网格交易的关键:

a、容易破网:普通网格是设置上线和下线,在这个价格区间震荡交易。比如设置比特币价格在1-3万美金之间,当价格跌破1万或3万时,这个网格策略就会失效。针对破网问题有人发明了升级版的网格策略:网格天地单和无限网格。网格天地单就是把上下价差设置的非常大,如BTC5000-200000U,这样破网的可能性就非常小。无限网格是不设置最高和最低价,当价格不断上涨时就跟随价格买入和卖出。

b、顺应趋势:网格交易感觉不需要判断趋势,只挣波动的钱,做多做空都行,这是最大的一个误区。如果我们一直做多,当行情一直下跌时,我们就会产生很多浮亏的订单无法平仓。当然你可以说这些浮亏会通过价格波动中的交易盈利稀释,我们用下图计算一下。

开仓价10000U,每格间距2%,多单。如果比特币跌幅37.16%(这个跌幅不夸张吧),这时账户浮亏60800U。根据经验,2%间距每天平均触发5次,每格资金10000U,每天盈利1000U。60800/1000=60.8天的波动收益可以回本。里面还有其它的因素,实际上160天也回不来本。

c、网格间距:网格交易本质上属于仓位管理类策略,间距的大小影响收益和资金利用率,间距类型分为等差网格和等比网格。股票、期货、数字货币中都很常见网格交易策略,券商APP和交易所也提供相应的功能,间距的设置和回测数据大家可以自己看,计算最优的参数。

总之网格的核心是要顺应趋势,多单网格或空单网格。

3、K线指标:RSI、MACD、EMA、ADX

a、RSI:相对强弱指标,属于震荡类指标,适合在震荡行情使用,是入门级最常用的指标之一。强弱指标的计算公式如下:

RSI=100-[100/(1+RS)]

其中 RS=14天内收市价上涨数之和的平均值/14天内收市价下跌数之和的平均值。

在交易所选择RSI,5min或15min的K线,我们发现当rsi超过70时,币价就会下跌;rsi低于30时,币价就会上涨。继续翻看历史的交易记录,不禁感叹,RSI真TMD准。用了几百行代码很快实现了RSI指标的交易,经过回测,年化收益率1400%(找不到回测图了),马上投入实战。刚开始的几天收益非常好,很开心,开始增加资金量,又过了几天比特币价格暴涨,使rsi数值一直在70以上,甚至从70到75、80、85,RSI策略就一直开空单、止损,重复这个操作,直到账户余额变0。

这个现象就是RSI致命的缺陷:指标钝化,很多讲RSI指标却不讲RSI钝化的都是骗子。当然通过调整参数和风控,可以在一定程度上降低指标钝化的影响,但最终还是亏钱的。

b、MACD:异同移动平均线,是韭菜们用的最多的指标之一。最简单的用法是金叉开多,死叉开空,回看历史数据和RSI一样特别准,回测年化收益率600%,实际使用就会亏钱。最大的问题是指标在震荡行情频繁交叉,形成假突破。通过调参处理可以减少指标信号,但结果都是一样的亏钱,这个原因在后面会说。

c、EMA:EMA是指数移动平均值,也叫EXPMA指标,是一种趋向类指标,指数移动平均值是以指数式递减加权的移动平均。简单的说,当要比较数值与均价的关系时,用MA就可以了;而要比较均价的趋势快慢时,用EMA更稳定;有时,在均价值不重要时,也用EMA来平滑和美观曲线。这个指标和MACD一样在震荡行情频繁交叉,出现假信号,造成亏损。

d、ADX:有一天突然发现有些指标适合在震荡行情,有些适合在趋势行情,有没有一种办法可以区分当前是震荡行情还是趋势行情?ADX指标(

Average Directional Index),即平均趋向指数,是属于趋势判断的技术性指标。ADX指标不能确定行情发展方向,但是能够行情趋势强弱。也就是说,它可以判断行情延着当前趋势运行的可能程度,用以判断未来行情延续趋势还是反转。

当ADX大于30时,当前是趋势行情,用MACD或EMA策略交易;当ADX小于30时,当前是震荡行情,用RSI策略交易。多么完美的组合,可惜最终还是亏钱的。最主要原因是ADX的滞后性非常严重,当ADX大于30时,EMA早就已经金叉了,就错过了最佳买入机会。

这些指标交易都是基于前人总结的交易方法,在此基础上修改一些参数,再运行。到这里已经写了四千多字了,具体的原理和计算公式可以百度或B站,那里有更详细的讲解,我这里只总结它们的问题和优化方式。

4、交易反指:经过上面的策略,发现都很难盈利,那么是不是可以反向交易?用A账户按某个策略开仓,用B账户一直监控A账户的交易,反向开仓;A账户开多单,B账户开空单。A账户空单,B账户多单。数字货币有永续合约,非常适合这种方式。因为99.99%的策略都是亏钱的,如果反指肯定就是挣钱的,这个策略怎么思考都是挣钱的,又完美又简单,只需要200行代码即可实现。

但理性告诉我这个事不可能成功,全世界聪明的交易员非常多,为什么他们没有发财呢?为此我找了十几位资深量化交易员提出反指策略,绝大多数人给我的答案是理论上可行,实际不行。我为了验证这个完美的理论,用了200行代码实现了Quan-Reverse策略。A账户使用RSI、MACD、随机开仓等策略,B账户实时监控A账户交易记录,然后相反方向开仓。

结果肯定是亏损的,反指策略也让我明白了量化交易中的两个核心问题:

a、找到稳定亏钱的策略比找到稳定盈利的策略更难。

b、没有一直稳定盈利的策略,同样也没有一直稳定亏损的策略。任何策略长期的收益率都是50%。

这里面或许还有个问题,A账户用程序开单避免了交易员的情绪,如果找几个韭菜手工交易做对标,是否可以提高反指的胜率?

5、链上套利:土狗、链上搬砖、MEV

除了传统的量化交易方法,还尝试了区块链特有的链上套利。2020年开始的Defi为链上套利提供了机会,常用的方式有:抢土狗、swap搬砖套利、MEV等。

a、抢土狗:大部分新币开始都会涨,如果能第一时间买入,等一会再卖出,就能盈利。因为很多土狗币先上DEX(去中心化交易所),所以以太坊的UniSwap和BSC的PancakeSwap有最多的土狗项目。通过程序监控这两个DEX,如果有新的币种上线,就马上买入,监控到币价上涨,马上卖出。这个策略听起来也不错,最初也是挣钱的,直到某天遇到了一个叫貔貅的币。

貔貅币用来代表那些只能买不能卖的币,项目方通过在ERC20合约中修改transfer方法,增加黑名单、交易手续费、锁仓等方式限制持币地址卖出。这种币一旦买入,就不能卖了,相当于本金亏完。魔高一尺道高一丈,为了防止貔貅币,就需要开发貔貅检测工具检测合约代码:代码是否开源、是否有黑名单功能、是否有交易手续费、合约是否可升级。一天100个项目,其中90个都是骗人的貔貅,还有10个检测不出来。

现在有很多网站提供检测貔貅的api功能,熊市时期每天的新币少了,拉盘的少了,这块基本上没机会了。下个牛市,抢土狗依然是个好方法。

b、链上搬砖:和中心化交易所搬砖一样,DEX之间也需要搬砖抹平差价。由于DEX是新兴市场,竞争小,2021年有很多人进入到这个领域。主要原理是在A交易所低价买,B交易所高价卖,盈利就是差价。现在人越多越多,熊市交易量低,已经没啥利润了。这个操作过程可以使用Solisity合约将两步操作集成在一起,如果卖出无法盈利就会回退整个交易,不会亏损。

新的币种、新的DEX、新的公链或许有机会,没试过,感兴趣可以研究下。

c、MEV:以前叫矿工可提取价值,现在叫最大可提取价值。因为矿工获得记账权后可以从mempool里选择某些交易进行打包,默认先选择gas费高的交易打包,这样矿工就可以获得最大的手续费收入。矿工也可以通过修改节点程序,选择先打包有利于自己的交易,抢在其它用户前完成自己的交易,最常见的就是三明治攻击。

套利者监控内存池中未打包的swap交易,此时发出一个相同的交易,并使用某些方法让矿工先打包套利者的交易;因为Swap都是使用AMM做市商机制,第一笔交易成功后,币价就会上涨,用户的交易会产生滑点成交,价格又进一步上涨;然后套利者卖出刚才买入的币,完成此次套利。

MEV套利现在也非常卷,怎么及时拿到内存池的交易和怎么让矿工先打包自己的交易是要解决的核心问题。而且由于熊市,交易量减少,本身利润空间就降低了。有时候完成一次套利还不够手续费的。

MEV除了三明治也可以用来发现链上攻击事件,完成套利。

三、交易中有哪些坑?

1、手续费:手续费是交易中最大的成本,任何策略最终的胜率是50%,但是过程中亏损的手续费是非常多的。交易所平均手续费0.06%,本金10000,交易100次的手续费是100*2*0.0006*10000=1200U。假设胜率是55%,止盈止损1%,55*10000*1%=盈利5500U,亏损45*10000*1%=亏损4500U,利润1000-1200U手续费=-200U。各何况实现55%的胜率是很难的,所以手续费占比非常重要,其实有很多策略不考虑手续费都是盈利的。

2、指标滞后性:K线指标都是通过价格计算的,先有价格才能通过公式计算出来指标结果,有一定的滞后性,别名马后炮,历史的价格不能代表下一分钟的交易就是盈利的。

3、极卷:有些交易类型需要和其它人竞争,市场就是一个黑暗森林,一旦你发出交易后,必然会受到另一个交易员的争夺,最终只是极小部分人盈利。

4、调参侠:上面的策略有些人会说可以调整参数避免那些问题呀,这里面还有一个误区,如果通过调参才能实现盈利的策略本身就是有问题的策略。

5、回撤还是亏损:在策略运行时出现了亏损,不知道是正常回撤还是策略失败,这时候就要结合其它情况分析了。

6、回测数据不能代表未来:大部分策略的回测都是盈利的,而且盈利率相当高。回测数据对未来盈利的参考性一点都不大。

四、可以盈利的前提条件?

文章内容很长,能看到这里的说明真的想搞钱;但不好意思,以上方法都是我已经弃用的,目前正在盈利的策略并没有写(可加微信私聊)。但并不表示以上策略不能盈利,盈利需要一定的前提条件,只是我做不到。给大家提供一些思路:

1、人工分析大趋势,提前选择趋势或震荡策略

先分析出当前的大盘趋势和压力位支撑位,再选择不同的策略交易。

2、研发稳定的套利策略,卷死对手

在策略和技术的研发上投入,提高计算能力和及时性,卷死别人。

3、最终盈亏比都是1:1

无论怎么开仓,最终的盈亏都是一样的,我们需要在盈利高的时期使用,盈利低的时候停止,从而实现交易的盈利。

写的字数太多了,结尾有点仓促,剩余的内容在明年的文章中仔细总结,对量化交易感兴趣的可以私聊。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

Proudly powered by WordPress | Theme: HoneyWaves by SpiceThemes