引言:
邢不行的系列帖子“量化小讲堂”,通过实际案例教初学者使用python进行量化投资,了解行业研究方向,希望能对大家有帮助。
【必读文章】:《10年400倍策略分享-附视频逐行讲解代码》
【历史文章汇总】:https://bbs.pinggu.org/thread-3950124-1-1.html
个人微信:xbx3642,有问题欢迎交流
3.策略收益
测试的Python代码和数据如下:
为了对比均线定投和普通定投的表现,我们设置如下规则:
定投从17年末2万高点开始,至21年1月初。每周定投1次。
普通定投每次投入1000美金,均线定投的基准金额也为1000美金。
回测结果如下,我们先看普通定投:
从17年末2万点开始定投至今,普通定投总投入15.8万美金,买入的比特币目前市值57.45万,3年翻了3.64倍。
这个表现已经非常不错了,均线定投表现能更好吗?
上图是均线定投的表现,累计投入14.65万,比普通定投少一些,但最终的持币市值高达59.99万,资产翻了4.09倍。
投入了更少的钱,还获得了更多的比特币,数据说明均线定投策略确实能够提高收益率。
并且还没结束,到目前为止我们用的都是默认参数,如果适当修改参数,策略的表现可能会更好。
4.参数
之前的定投策略用的是250日均线。其实可以把均线天数看作一个参数。
我们可以尝试不同的均线,比如100天、300天或500天。
此外,原来的定投率是价格每偏离10%,定投率改变0.1,其实这里的10%和0.1也可以看作参数:
把原来每偏离10%,定投率改变0.1,改为每偏离x%,定投率改变y。其中x被称为单位范围,y被称为单位定投率。
这样我们就从原始策略中提取出了三个参数:均线天数D、单位范围x、单位定投率y。
在代码中想要修改这些参数也非常简单:
我们尝试把参数改为:均线天数D=600,单位范围x=3%,单位定投率y=0.45。
修改后的策略表现如下:
蓝线很长一段时间是一条水平线,这是因为价格高于均线太多,定投率小于0,此时停止定投。
修改后的策略累计投入11.39万,最终持币的总市值高达70.2万,相较于原始策略(投入14万,市值59万),总投入进一步减少,持币市值进一步增大。
均线定投这三个参数理论上可以取任意值,这意味着还有其它更好的可能。
我强烈建议你运行下代码看看其它参数的结果,自己动手实操下会有更深的感悟。可以加我微信xbx3642获取代码、数据。
04定投如何卖出?
除了提高定投收益外还有一个问题,定投该如何卖出呢?
很多同学并不会卖。可能辛苦定投了好久,结果在2万就全卖了,错失之后大涨的机会。
要在定投策略中加入卖出机制其实也很简单。
还是均线定投策略。当价格往上偏离均线过多时,均线定投的定投率1-ny可能会小于0,例如当n=6,y=0.2时,1-6y=-0.2,小于0。
此时为了避免定投率小于0的情况,我们规定当定投率小于0,会被强制设置成0。
那只要取消不小于0的限制,不就是可以卖出了吗?
定投率小于0就按照负的定投率卖出,例如基础金额为1000,当定投率为-0.2时,就卖出200。
这样的规则看着也更自然,在代码中想要实现卖出也非常简单:
加入卖出机制后,策略的表现会更好吗?
我们依旧使用之前的参数:D=600,x=3%,y=0.45进行定投测试,得到如下结果:
上图中代表累计投入的蓝线,在19年5月左右开始逐渐下跌,说明策略已经在卖出了。
最终的总投入为-550,也就是说不仅没投钱,还赚了550美金。因为策略是可以卖出的,卖出金额大于投入金额,总投入就是负数。
与此同时,还赚了价值40.42万美金的比特币。
不仅没投钱还白赚了40万的比特币,妥妥的白嫖啊。
05
总结本文我们主要介绍了几种不同的定投策略,并且比较了它们的表现。
在这些策略中,我比较推荐允许卖出的策略。有买有卖,更贴近实际。
有的小伙伴可能觉得允许卖出的策略只赚了40万,不够多。
其实最终的总市值是和基础定投额成正比的,在执行可卖定投策略时,可以适当的提高基础定投额。
联系邢不行:关于量化的任何问题,或者想要了解其他内容,可以加我的微信(xbx2626)和我交流。