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

引言:      

 邢不行的系列帖子“量化小讲堂”,通过实际案例教初学者使用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沟通。

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/65567.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【程序员如何买基金 三】场内场外交易的区别

先搞明白一个普通概念,场外交易和场内交易的区别:场外交易(一级市场交易)就是直接向基金公司申购(通过之前讲过的直销人和代销人),而场内交易(二级市场交易)就是消费者在证券市场内相互交易。 在…

【GPT4结对编程】word文档导出功能GPT4来实现

需求背景 最近产品增加了一个导出word文档的需求,之前有导出过pdf格式、excel格式、csv格式,但还没导出过word文档。 开源框架调研 我们的后端服务主要是用golang,因此首先想到的是golang相关的开源工具,找到2个。 unioffice …

基于GEC6818的智能家居管理系统

基于GEC6818的智能家居管理系统 使用步骤: 1、首先通过交叉编译make,生成可执行文件main 2、然后拷贝到开发板上,在开发板上对安装led和beep的驱动 3、加权限 然后执行 然后就可以在开发板上显示系统了(密码默认1234) 功能简介 本系统主…

智能家居服务发现实现

服务设备软件架构设计 代码复用 将网络通信框架移植到开发板,之后,可以使用框架中的组件实现 Response Task 和 Service Task。 框架移植注意事项 LWIP 是微型 TCP/IP 协议栈 (并非完整 TCP/IP 协议栈) 支持 socket 接口,但一些功能未实现…

基于MQTT的智能家居程序框架

小白能懂:嵌入式进阶:RTOS嵌入式系统框架 第一章 嵌入式常用裸机编程框架 第二章 面向对象编程基础 第三章 ESP8622物联网基础 第四章 STM32与ESP8266物联网编程 第五章 物联网编程优化 第六章 以OLED为例介绍RTOS面向对象编程 第七章 基于MQTT的智能家…

智能家居 —— 串口通信(语音识别)线程控制

文章目录 串口通信线程控制代码mianPro.cinputCommand.hvoiceControl.c测试结果 语音控制部分语言控制模块YS-LDV7 若要完成串口之间的通信,需要再树莓派上完成配置文件的修改,利用测试代码验证串口收发功能是否正常,详情可以参考博文&#x…

智能家居(3) —— 串口通信(语音识别)线程控制

目录 一、串口通信线程控制代码 mianPro.c inputCommand.h voiceControl.c 测试结果 二、语音控制部分 一、串口通信线程控制代码 mianPro.c #include <pthread.h> #include "controlDevice.h" #include "inputCommand.h"struct InputCommand…

[第一步]homekit智能家居,homebridge与homebridge-aqara通信协议

根据这个就可以使用iphone控制灯与开关. 折腾了3个晚上,终于将homebridge安装好,安装之前需要安装一堆的库,比如node.js运行环境等,因为网上资料大部分都是在树莓派上面运行,我是直接在ubuntu上面进行的测试,因为安装会有所区别,但是安装好之后就一样了,安装方法在此我就不写了…

智能家居系统 QT

一 环境范围设置 &#xff08;1&#xff09;界面添加新控件 在mainwindow.ui 添加控件&#xff1a; 控件的类型 文本内容 对象名&#xff08;唯一&#xff09; 是否有槽函数 QLabel <温度< lable_随意 否 QLabel <湿度< lable_随意 否 QLabel <光…

Home Assistant 智能家居自动化

一、Home Assistant 自动化中的一个重要概念——模式 引入模式&#xff0c;用于解决正在执行过程中的同一规则又一次被触发的问题 二、Home Assistant 自动化规则的组成部分 2.1 触发条件Trigger&#xff1a;表示智能家居中事件或状态的转换 可选持续时间(特有) trigger有…

qt实现智能家居系统

一、项目介绍 通过TCP/IP协议实现客户端和和服务端的链接&#xff0c;服务端和下位机通过串口通信的方式链接&#xff0c;传递信息&#xff0c;客户端通过账号登录进入进入智能家居服务系统&#xff0c;账号登录和QQ登录类似&#xff0c;我采用的是数据库的方式实现数据的存储和…

语音识别智能家居控制设计

目录 一、方案流程及技术规格书设计 二、系统硬件电路设计 三、软件编写及调试 四、系统调试测试与分析 前言 随着科学技术的快速发展&#xff0c;人们对生活品质的要求也不断提高&#xff0c;开始追求更好更方便的生活方式。因此&#xff0c;智能家居系统应运而生。智能家…

智能家居之网关

网关诞生的背景 很多物联网终端设备在设计之初就考虑了低功耗、低成本的需求&#xff0c;因此大量的物联网终端设备是靠电池来工作并且需要运行相当长的一段时间&#xff0c;比如油田、农业相关的传感器&#xff0c;且这些终端设备不需要实时与物联网平台通讯&#xff0c;甚至…

智能家居是否可与ChatGPT深度融合?

​ ChatGPT自2022年面世以来&#xff0c;已为亿万网民提供智能问答服务。然而我们是否曾想到&#xff0c;这一人工智能驱动的聊天机器人&#xff0c;是否可为智能家居赋能? 要实现ChatGPT与智能家居设备之间的无缝对话&#xff0c;单单依靠一台终端是远远不够的。ChatGPT必须…

调查报告数据分析怎么做?

调查报告数据分析怎么做&#xff1f;拿到一份调查报告看选题、选题内容、调查的目的&#xff0c;然后清洗数据&#xff0c;分析数据提炼观点&#xff0c;过数据变化规律&#xff0c;揭示事物内在发展变化和趋势&#xff0c;抓住问题的本质和关键。 一、分析数据提炼观点 数据分…

pyqt5制作翻译软件+爬虫

VSCpythonmysql&#xff0c; 文章目录 目录 文章目录 前言 一、详细代码 第一个文件Ui_untitled.py 第二个fy_main.py文件&#xff1a; 第三个 &#xff1a;bd_pachong.py 二、登录界面&#xff1a; 总结 前言 通过pyqt5实现了翻译界面的可视化&#xff0c;利用python爬虫实现了…

给 30 岁左右的你三个职场跃迁/改变命运的建议!

见字如面&#xff0c;我是军哥&#xff01; 通过公众号的后台用户画像数据&#xff0c;我发现我的读者在 26 到 32 岁的年龄阶段的人数最多&#xff0c;所以今天来聊一聊这个话题&#xff0c;你一定要看到最后&#xff0c;会让你少走很多弯路&#xff01; 核心观点主要包括三个…

38岁程序员和你分享4个人生经验!

蓝色关注&#xff0c;回复“1”获取知名公司程序员和产品经理职级 这是我的第「123」篇原创文章 见字如面&#xff0c;我是军哥。 我最近一直想写一篇稍微长点的文章&#xff0c;毕竟内容篇幅有时候决定内容广度和深度。 距离我之前写的那篇文章《一位互联网老兵的五次认知升级…

【我命由我不由天】30多岁的大龄程序员,应该如何保持职场竞争力?

公众号后台回复“学习”&#xff0c;获取作者独家秘制精品资料 扫描下方海报二维码&#xff0c;试听课程&#xff1a; &#xff08;课程详细大纲&#xff0c;请参见文末&#xff09; 目录 回首往事&#xff1a;自己竟没有任何核心优势&#xff01;公司遇到危机时&#xff0c;大…

写给互联网人35岁之后的建议

作者介绍 李凯东 某大厂大数据总监&#xff0c;管理经验丰富&#xff1b; 负责数据、用户、搜索、推荐、AI等&#xff1b; 曾有10年连续创业经历&#xff1b; 产研运全能&#xff0c;国内知名比赛获奖无数&#xff1b; “数据人创作者联盟”成员。 又到了春节&#xff0c…