很多程序化模型中,大家最关注的都是收益率,尤其是年化收益率。但是如果一个模型收益率做的足够好,年化收益率做的足够高,是否你就会实盘使用? 我想,你不参考其他指标的话可能会去用,如果同时让你看到最大回撤,你可能就会思考一下了。对,今天我们要聊的就是量化交易里面一个很重要的指标—最大回撤。 举一个例子,如果一个模型初始资金5万,每次开仓2.5万,即50%的仓位,回测了100天,100个交易信号,累计收益率100%,期末权益就是10万,最大回撤30%,最大回撤金额1.5万。 这样的模型你觉得好吗?可能乍一看你觉得还不错,100天资金翻倍。但是仔细看下就有问题了,你开仓金额可是每次2.5万,你的最大回撤1.5万,回撤金额超过开仓金额的50%。不说多,两三次亏损你的本金可能就挂掉了,更别想资金翻倍了…… 为什么会出现这样的情况呢?模型跑的好好的呀,实盘反而本金都亏掉了呢?其实就是你在做模型的过程中,没有考虑过实际情况。回测的结果只是理论上的可能性,而实盘中可能会面临补缴保证金,爆仓等情况。 那多少的回撤是可接受的呢?不管你是做趋势的,还是做震荡的,模型的最大回撤都应该控制在20%以内,趋势类模型适当可以放宽要求,震荡类模型最大回撤一定不能超过20%。我说的20%的回撤,都是有一个前提,就是你的仓位。 单一品种仓位一般控制在15%以内,最高不能超过20%。资金管理是程序化交易的一门重要的学问,要做好资金管理,你就必须学会分散风险,做到多模型、多周期、多品种之间的对冲,把资金曲线尽量做到平滑。 关于多模型、多周期、多品种之间的对冲我一般会这么处理,比如,我专门应对大趋势会做一个模型,这个模型交易周期较长,但是遇到大的行情,一定能捕捉到。针对震荡行情,我有设计一套模型,专门做高抛低吸,找好相对应的品种把他们穿插在一起做。 同一套模型光做一个周期还不行,可能在日线周期上,我开多买进,但是到了小时周期或者分钟周期我就开空卖出了。通过这种多维度的对冲,把风险控制在相对较低且稳定的水平。最终目前其实就是为了控制最大回撤,使资金曲线变的更平滑。 |