引言:

邢不行的系列帖子“量化小讲堂”,通过实际案例教初学者使用python进行量化投资,了解行业研究方向,希望能对大家有帮助。

最近比特币行情很好,突破前期2万美金历史高点后,短短22天又再次突破4万大关。

连央视都在半个月内连发7篇涉及比特币行情的微博,实属罕见

在此期间,也有很多同学在微信上问我行情:

我的回答都是:不知道。

这不是敷衍,是真的不知道。

首先想要预测行情,特别是短期行情,很难的。

其次我们做量化的也不用去预测行情,按照既定的策略跑就行。

但有的同学手里没币,又担心错过,内心很是煎熬。对此我的建议是:如果非要操作的话,那就定投吧。

01

什么是定投

所谓的定投就是不看行情定期、定量买入,比如下面这个例子:

每周四,不管涨跌都买1000美金

当然你也可以根据实际条件选择定投周期和金额,比如每天买一次,每次100美金。

看到这有的同学可能会问,在当前4万的价格开始定投合适吗,万一这就是本轮行情最高点呢?

其实哪怕是最高点,也不怕。

02

在最高点开始定投

  1. 历史高点开始定投

比特币在2017年12月末涨到了上一轮高点2万美金。之后开始下跌,最低跌到3200,等到19年5月回升到8000价格从高点腰斩一半以上

假设有个“运气很差的人”就从2万的顶点开始定投比特币,到19年5月比特币8000时,他的收益如何?

上部分:BTC行情   下部分:定投曲线

我之前用Python和数据进行了详细的分析,这位运气很差但又执着的人从2万定投到8千时,就已经赚钱了。

更别说现在价格是4万左右,早就赚得盆满钵满了。

具体分析过程可以看我之前的文章《在两万美金顶点买入比特币的他,现在怎么样了?》

我举这个案例就是想说,从高点2万美金开始定投,没多久就能赚钱。那现在4万美金开始定投,你觉得会亏钱吗?

所以放心的开始吧。这也是我推荐新手进入币圈最保险的方法。从定投开始慢慢熟悉市场,之后再进行其他操作。

当然定投的前提是长期看好,不看好的话就没必要定投了。

2020年7月我在论坛发的贴

2.定投的问题

不少朋友看了我之前的文章后有在实践定投,但在过程中也遇到了问题:

1. 定投实在是太机械了,不操作我手痒,能花式定投来提高收益率吗?

2. 定投什么时候卖出呢?有些同学并不希望一直投下去,希望在高点卖出获利。

这个两个问题确实困扰了很多定投人,本文就针对这两个问题,给出一种更为实用的定投策略。

03

如何提高定投收益率?

先看看怎么提高定投收益率。

上图是比特币某段时间的日K线图,蓝线是250日的均线。

所谓均线就是每天计算之前250天收盘价的均值,再把这些值连起来的线

从图中可以看出,比特币的价格波动虽然大,但它始终围绕均线上下波动。

价格高于均线过多会回落,低于均线过多会反弹。这种现象,在金融学中被称为均值回归。

1.策略概述

根据均值回归,我们构建了一个均线定投策略:价格高时少买,价格低时多买

具体操作看下面的例子。

上图是比特币的K线图,其中A、B、C是三个定投点,蓝线为均线。

A点价格高于均线29%,正常定投在A点买入1000元,而我们认为价格高于均线,处于高位,应当少投一点,比如只投700元

价格进一步上涨到B点,比均线高43%,普通定投还是买入1000元,但我们认为价格进一步被高估,需要再次减少投入,所以只投500。

C点的价格比均线高51%,越偏越多,均线定投的金额也进一步减小到400

再来看看价格低于均线的情况:

价格越低,均线定投金额越多

D、E、F也是三个定投点,它们的价格都低于均线,并且一个比一个低,按照低位多买的逻辑,价格越低于均线,均线定投的金额越多。

所以原本都是投1000,但我们可以拍脑袋的决定在D点投1200、在C点投1300,在E点投1400。

不过量化投资需要精确,不能用拍脑袋大法,我们需要构建模型确定每次到底投多少。

2.均线定投策略

人为设置好基础定投金额(假设为1000)。

每到定投日就套用:

基础定投金额 X 定投率 = 实际定投金额

计算当期的实际定投额。定投率由价格偏离均线的程度决定,详见下表:

比如价格偏离均线8%,对应的定投率为0.9,用基础金额1000乘以0.9就能得到实际投入为900。

有了这张表就能将均线定投策略规范化:

只要查表就能计算定投金额

很多人介绍一种投资方法时可能到此就结束了。但这个方法真的有效吗?

均线定投策略这么复杂,真的会比普通定投更赚钱吗?

很多骚操作都是如此

我们量化投资的好处就是可以用程序对历史数据进行测试,检验投资方法,避免用真金白银试错。

3.策略收益

测试的Python代码和数据如下:

可以加我微信xbx3642获取代码和数据

为了对比均线定投和普通定投的表现,我们设置如下规则:

定投从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。

在代码中想要修改这些参数也非常简单:

对13-15行代码做相应修改即可

我们尝试把参数改为:均线天数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。

这样的规则看着也更自然,在代码中想要实现卖出也非常简单:

第12行的can_sell参数从False改为True

加入卖出机制后,策略的表现会更好吗?

我们依旧使用之前的参数:D=600,x=3%,y=0.45进行定投测试,得到如下结果:

上图中代表累计投入的蓝线,在19年5月左右开始逐渐下跌,说明策略已经在卖出了。

最终的总投入为-550,也就是说不仅没投钱,还赚了550美金。因为策略是可以卖出的,卖出金额大于投入金额,总投入就是负数。

与此同时,还赚了价值40.42万美金的比特币

不仅没投钱还白赚了40万的比特币,妥妥的白嫖啊。

05

总结

本文我们主要介绍了几种不同的定投策略,并且比较了它们的表现。

在这些策略中,我比较推荐允许卖出的策略。有买有卖,更贴近实际。

有的小伙伴可能觉得允许卖出的策略只赚了40万,不够多。

其实最终的总市值和基础定投额成正比的,在执行可卖定投策略时,可以适当的提高基础定投额。

关于本文如果还有其它不明白的地方,可以加我微信xbx3642沟通。

BTC涨这么多,还能买吗?要卖吗?| 量化定投策略告诉你答案【附代码】相关推荐

  1. 【正一专栏】巴萨和曼城都那么强了还在买人续约

    巴萨和曼城都那么强了还在买人续约 原创2018-01-30九天九天时空 目前欧洲最火的三支球队分别是巴萨.曼城和大巴黎,分别在各自联赛中遥遥领先不说,在杯赛中也是高歌猛进,欧冠也是夺冠的热门,更重要的 ...

  2. 还在买白酒?算法工程师们,量化投资了解一下

    文 | 阿财@知乎 本文已获作者授权,禁止二次转载 赚取你认知中的Alpha 坚持用量化的观点去看待宇宙的终极问题:买不买,卖不卖. 很多人的在互联网这一片方寸之地,表现出来的行为是矛盾的.举个例子, ...

  3. dram和nand哪个难生产_仅300名员工,年产7台,订单排到5年后,比光刻机还难买...

    如今半导体行业发展成为如今一大热议话题,如今不管在哪个行业几乎都要用到芯片,在以前可能手机行业对于芯片的需求量更高一些,然而近些年来不同领域的厂商都争相开始发展智能机,而这其中就离不开芯片技术,华为的 ...

  4. 还没买到票?快试试这个Python开源工具,支持多任务抢票

    栗子 发自 凹非寺  量子位 报道 | 公众号 QbitAI 据统计,量子位有超过50%的员工,目前为止没抢到票. 买了加速包,好久也没动静. 能依靠的只有勤劳的双手,但每天收到的都是12306送来的 ...

  5. 双11还没买过瘾?亚马逊“真黑五”全球狂欢登场

    双11已经落下帷幕,不过有没有小伙伴像我一样,觉得还没买过瘾呢?没关系,2018年11月16日,亚马逊中国第五届海外购物节"真黑五"全球狂欢正式开启,剁手党们又可以尽情购物啦! 据 ...

  6. 网站域名过期后还能买回来吗?

    好域名是企业实力的象征,域名等于企业网络商标.怀米网建议企业要及时续费域名,不要等到域名过期才续费.尤其是很多老域名,已经用了很多年了,户认可了搜索引擎认可了,不续费实在太浪费.下面小编就和大家介绍一 ...

  7. android 8三星note8,去年发布的三星Note8到底还值不值得买,三星Note8深度体验!!!...

    去年发布的三星Note8到底还值不值得买,三星Note8深度体验!!! 2019-01-27 16:24:56 20点赞 17收藏 18评论 大家好我是没有钱谈恋爱,只能在SMZDM上写文章赚金币的小 ...

  8. iphone12里的计算机,iPhone12来了!性价比超高的11还值得买吗?

    iPhone12来了!性价比超高的11还值得买吗? 2020-09-11 09:34:46 1点赞 0收藏 0评论 大家好,我是科技君的探讨,欢迎关注我,与我一起进行科技的探讨. iPhone12终于 ...

  9. 红领巾竟然还能买?!---小学记忆

    马阿姨叫我今天去兰苑,她煮东西给我吃.刚才本来是想赶在下课前的11点去,可是到了门口又觉得是不是太早了,有点害羞,所以就又回来了,等12点左右再去吧. 回来活动室的路上想到一年级时的一件小事.. 我小 ...

最新文章

  1. R语言创建频数表和列联表
  2. python3.7新功能_2018-11-08安装Python3.7详解
  3. 小县城也被互联网+撞了一下腰
  4. HDFS的Shell客户端操作
  5. Linux云服务器安装Redis并设置远程连接设置开机自启
  6. 用java写秋道程序_Java开发者使用C++写程序踩的坑
  7. 人工智能 对比试验_人工智能与药物研发
  8. 【转】关于EASYSIZE宏(动态调整控件位置、大小的宏)
  9. C++实现调用C#(CLI)方法
  10. 教学思路SQL之入门习题《学员成绩》 二、基础单表查询
  11. 【有意思的BUG】未名
  12. 科大讯飞 离线语音识别python_用Python来使用科大讯飞语音识别,so easy
  13. EAGLE转Protel文件
  14. MyBatis-Plus中CURD常用方法及注解
  15. 解决PyCharm出现“更新 TKK 失败,请检查网络连接”的问题
  16. 网易企业邮箱:授权码登录
  17. 603. 连续空余座位
  18. 【LaTeX】论文写作之参考文献(数模、美赛、学位论文、英文SCI论文写作通用)
  19. 14. 手机蓝牙遥控机器人制作
  20. WindowsPhone8常见问题及使用技巧

热门文章

  1. phpadmin 导出csv格式的数据处理
  2. [架构设计] 结构型模型
  3. python获取图像的长和宽_tensorflow之读取jpg图像长和宽实例
  4. Mac 远程连接树莓派-不使用拓展坞
  5. 高二会考计算机分数,高二会考多少分才能通过
  6. 火狐下载 firefox免费高速下载 firefox又出新版本了
  7. [Python] 小明又迟到了……一个故事讲清楚 Python 循环嵌套
  8. 【数据结构】-大二数据结构与算法课程设计实训报告
  9. 施坦威D4三角钢琴-e-instruments Session Keys Grand S Kontakt
  10. pd.melt() vs reshape2::melt()