当前位置: 首页 > news >正文

量化择时——均线策略及改进方法(第1部分—因子测算)

文章目录

  • 道氏理论
    • 个股股价走势阶段
    • 板块、行业股价走势
  • 均线策略交易逻辑
  • 均线策略效果测算
    • 改进一:设置策略信号偏移量
    • 改进二:生成止盈止损信号

道氏理论

使用盘面数据,根据计算出的一条或多条均线,判断入场与离场的时机,基本上就是技术面分析。而技术面分析的思想我们可以借鉴比较经典的“道氏理论”。

道氏理论是由创办了华尔街日报,创建了道琼斯公司的【查尔斯·亨利·道】发展起来的一种交易方法,同时在当时美国市场上上市公司以工业企业为主的环境下发明了道琼斯工业指数。在他去世后,由后人总结出来并予以命名“道氏理论”。

个股股价走势阶段

道氏理论以有效市场假说为基础,认为任何市场都会有这3种趋势,透过分辨不同的趋势可以找到投资机会。

  • 主要趋势:指长期趋势,持续一年及以上,大部分股票将随主要趋势上升或下跌,大致可以将市场分为牛市、熊市、盘整(横盘震荡)
  • 次要趋势:持续数周或数月,指与主要趋势相反的中期走势,常见于走到主要趋势的1/3或2/3部分时
  • 小型趋势:每日的波动,带有一定的随机性,难以分析

在上升趋势阶段,分为以下三个阶段:

  1. 筑底阶段:市场经过前期的大跌之后,此时普遍估值较低,盘面表现为持续震荡。市场看不到明天的太阳,不知道未来是震荡下跌还是震荡上涨,此时人们对未来的信心已经在逐渐恢复中
  2. 持续上涨:市场找到了上升动力,利好消息不断放出,买盘推动股价不断上涨。盘面表现是成交量随着股价的上涨不断增加。市场的向好也给予企业正反馈,企业与市场形成正向循环促进
  3. 探顶阶段:市场不断出现利好消息,参与者越来越分散,企业估值被不断推高,泡沫不断积累。此时的市场充斥着投机者,基于期待与希望支撑买方力量,但是预期已拉满,市场对于利空消息也逐渐敏感

在下跌趋势阶段,也分为以下三个阶段:

  1. 探顶阶段:紧接着上升阶段的尾巴,此时买方力量与卖方力量相互周旋,盘面表现为持续震荡,此时估值膨胀到买方力量难以支撑,卖方力量蠢蠢欲动
  2. 持续下跌:经济的恶化会导致高估值的企业因为未达预期,股价不断下跌,典型的持续下跌会表现在价格下跌的同时成交量逐渐减小,此时表明在卖方抛售的同时买方持续观望,对于估值的失望性抛售会不断拉低企业估值
  3. 探底阶段:此时市场虽然一片萧条,但是成交量逐渐恢复,企业估值整体偏低,买方蠢蠢欲动

板块、行业股价走势

我们通俗的理解牛市:行情好啊,啥啥都赚钱,熊市则是:经济完蛋了,啥啥都赔钱。同样还有一种情况,即一部分板块在大涨,而另一部分板块在暴跌,这就出现了板块之间的背离。使用道氏理论可以从宏观上佐证以下观点:

  • 牛市:板块普涨
  • 熊市:板块普跌
  • 盘整:过去相关性很高的板块,此时出现了背离,这通常是一个反转的信号。也可以佐证“行业轮动”的现象。打个比方,比如新发现了一座金矿,那么这个地区的铲子和矿泉水预期被大量需要,价格也应该会同步上升。但是,如果铲子的价格上涨,但是矿泉水的价格下降,则出现走势“背离”的现象。此时需要细致的分析。如果分析出这个地方金矿开采难度大成本高,那么铲子的价格会因为需求不及预期导致价格下跌,当时听风就是雨进去的就被坑了。

均线策略交易逻辑

我们常见的是如下的策略:

  1. 以过去10个交易日的收盘价作为快线
  2. 以过去25个交易日的收盘价作为慢线
  3. 当快线向上突破慢线,表示上涨趋势势不可挡,此时买入
  4. 当快线下穿突破慢线,表示下跌趋势不可遏制,此时卖出

这是一快一慢两个指标相互作用的策略,而均线策略通常只使用一个指标,即根据自身指标过去一段时间的走势完成择时。

均线策略思想如下:

  1. 记录过去的一个时间窗口的收盘价均值
  2. 使用滑动窗口将均值变为一条时间序列数据(均线)
  3. 股价突破极小值时买入,突破极大值时卖出

由于极小值、极大值是交替出现的,因此每一对【极小值(买点),极大值(卖点)】都可以构成一个完整的交易

比如我们以20个交易日的收盘价的均值作为参考值,20个交易日的收盘价的均值与收盘价走势图如下图所示:

在这里插入图片描述

上面的图比较典型,可以观测到:

  1. 均线相对更容易描述趋势的走势
  2. 均线相对于收盘价有一定的滞后性
  3. 均线在大方向上的变动不是特别频繁

均线策略效果测算

我们基于均线策略,构建如下策略流程:

  1. 以20个交易日为滑动窗口长度,计算每个交易日的收盘价的均值,作为均线策略的参考值
  2. 如果上一个交易日的股价是极小值点,则以当日收盘价买入
  3. 如果上一个交易日的股价是极大值点,则以当日收盘价卖出
    最后,统计每一次完整的交易,并把这期间的收益转换为年化收益率,以年化收益率>2%记为胜,胜率=胜的次数/总交易次数

买点、卖点如下图所示:
在这里插入图片描述

测算结果如下图所示:
在这里插入图片描述

但是,正如上图所示,因为当出现震荡行情时,极大值与极小值会交替出现。这时,极容易出现:

  • 第一天是极小值,买入
  • 第二天是极大值,卖出
  • 第三天是极小值,买入
  • 第四天是极大值,卖出

加上对交易日相关数据的统计:

在这里插入图片描述

可以发现,有25%的交易是在2天以内,即“今天买明天卖”,这会造成短期大量的换手,增加摩擦成本。为了避免短期频繁的交易,我们我们需要针对极大值、极小值的择时策略做一些优化。

改进一:设置策略信号偏移量

当极小值出现时,对比上一次极小值出现的时点,需要当前的极小值点相对上一个极小值点偏移n%,才会作为新的价格信号;极大值同理

这里我们定3%,因此原有测算的买点与卖点修改为:

  1. 如果上一个交易日的股价是极小值点,且相对于上次的极小值点价格偏移超过3%,则以当日收盘价买入
  2. 如果上一个交易日的股价是极大值点,且相对于上次的极大值点价格偏移超过3%,则以当日收盘价卖出

回测效果如下:

在这里插入图片描述

在这里插入图片描述

改进二:生成止盈止损信号

在买点生成的同时,同步生成止盈与止损信号:

  1. 如果上一个交易日的股价是极小值点,则以当日收盘价买入
  2. 以当日收盘价的正负6%,为止盈止损点。即涨超6%发出止盈信号,跌超6%发出止损信号
  3. 如果上一个交易日的股价是极大值点,或收盘价突破止盈止损点,则以止盈、止损点买入

回测效果如下:

在这里插入图片描述

在这里插入图片描述

及时的止盈与止损会导致交易天数明显缩短,对应的胜率也会下降,但是方差与原有策略相同。

有一点需要注意,有些改进是从以下两个角度出发:

  1. 改进思想1:买入后静默N天,再根据信号进行交易判断;(为了防止短期抖动)
  2. 改进思想2:第二次买入与上一次卖出至少相隔N天;(为了重置交易环境)

虽然上面两种方法的确可以降低交易频率,增加交易的持续时间。但是要注意,我们的目标不是为了【降低交易频率】,而是【降低频繁换手导致的摩擦成本】,只不过为了实现这个目标,“交易频率的降低”是一种可能得结果。

因此博主的建议是,如果我们是组合多种策略,上面两种思路是OK的,但我们在测算指标时,尽量在严格执行信号的情况下,引入外部的一些改进机制,而不是阉割掉原有的策略信号。

下一部分,我们将构建回测策略,对均线及其改进策略进行回测,并评估它的表现

相关文章:

量化择时——均线策略及改进方法(第1部分—因子测算)

文章目录道氏理论个股股价走势阶段板块、行业股价走势均线策略交易逻辑均线策略效果测算改进一:设置策略信号偏移量改进二:生成止盈止损信号道氏理论 使用盘面数据,根据计算出的一条或多条均线,判断入场与离场的时机,…...

封装几个有用的 Vue3 组合式API

本文将介绍如何使用Vue3来封装一些比较有用的组合API,主要包括背景、实现思路以及一些思考。 就我自己的感觉而言,Hook与Composition API概念是很类似的,事实上在React大部分可用的Hook都可以使用Vue3再实现一遍。 为了拼写方便,下文内容均使用Hook代替Composition API。相…...

MyBatisPlus中的条件构造器Wrapper

引言为什么要了解Wrapper?Wrapper解决的了什么问题?一、Wrapper:条件构造抽象类,用来解决单表操作出现的一些复杂问题,例如排序,和模糊查询等等结构图文字解释AbstractWrapper : 用于查询条件封装&#xff…...

类和对象及其构造方法

类和对象 现实世界的事物由什么组成? 属性 行为 类也可以包含属性和行为,所以使用类描述现实世界事物是非常合适的类和对象的关系是什么? 类是程序中的“设计图纸” 对象是基于图纸生产的具体实体什么是面向对象编程? 面向对象编…...

HStream Console、HStreamDB 0.14 发布

近两个月,HStreamDB 相继发布了 0.13 和 0.14 版本,包含多项已知问题修复。同时,我们也发布了全新的 HStream Console 组件,为 HStreamDB 带来了简洁友好的图形化管理界面,将帮助用户更轻松地使用和管理 HStreamDB. H…...

参考文献怎么查找,去哪里查找?一篇文章讲明白这些问题

在我们撰写论文查找参考文献时,往往不知道从哪里入手,本文小编就针对下面这三个方面给大家详细讲解下: 一、查找参考文献方法 二、参考文献资料查找网站 三、参考文献格式规范 一、查找参考文献方法: 1、知网全球最大的中文数据…...

docker-compose+HAProxy+Keepalived搭建高可用 RabbitMQ 集群

基础环境准备 系统环境:Centos7.6 Docker version: 1.13.1, build 7d71120/1.13.1 Docker Compose version: v2.2.2 三个节点: 10.10.11.79 (这一台做rabbitmq集群根节点) 10.10.11.80 (这台做haproxyke…...

自动化框架如何搭建?让10年阿里自动化测试老司机帮你搞定!自动化测试脚本怎么写?

一、何为框架?何为自动化测试框架? 无论是日常技术交流,还是在自动化测试实践中,经常会听到一个词叫:框架。之前对“框架”这个词知其然不知其所以然。现在看过一些资料以及加上我自己的一些实践有了我自己的一些看法…...

剑指 Offer 15. 二进制中1的个数

剑指 Offer 15. 二进制中1的个数 难度:easy\color{Green}{easy}easy 题目描述 编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为 汉明重量).…...

CHAPTER 3 磁盘管理

磁盘管理1 磁盘管理1.1 块设备信息(lsblk)1.2 挂载硬盘1.2.1 挂载单个硬盘(mkfs、mount)1.2.2 磁盘分区工具(fdisk)1.2.3 创建分区1.2.4 相关命令1. df2. partprobe3. mkfs1.3 逻辑卷管理器(LVM)1. 涉及概念2. 使用LVM流程1.4 磁盘检测及修复(fsck)1 磁盘…...

MS python学习(7)

Managing Keys - dotenv Managing keys usage of .env module 项目地址:https://github.com/theskumar/python-dotenv Reads the key,value pair from .env and adds them to environment variable. 将key明文(hard code)形式写在script里…...

工业物联网“杀手级”应用—预测性维护

一、预测性维护的必要性 随着新一轮科技革命和产业变革的兴起,工业物联网、大数据、人工智能等技术正与经济社会各领域加速渗透融合。由于市场竞争对精细化成本管控的要求,设备的重要性越来越凸显,设备的维护对策也必然从响应式维护&#xf…...

Java代码弱点与修复之——Explicit null dereferenced(显式空间接引用)

弱点描述 Explicit null dereferenced, 显示空间接引用。是 Coverity 静态代码分析工具检测到的一种中风险缺陷。这种缺陷通常发生在尝试使用空指针引用调用对象上的方法或访问属性时。 Explicit null dereferenced的缺陷可能会导致程序崩溃或产生不可预测的结果。 在Java语…...

一元导数与多元求导数总结

前序:文章结构 1.一元导数 ①一般函数求导 因为太简单的原因,事实上一般函数求导不会单独出现,大多数都是出现在各种特殊的求导过程中。只要掌握16个基本求导公式没问题。 ②复合函数求导(主要链式法则) 这种一般是…...

通过堆栈分析深拷贝、浅拷贝、赋值的差异

前言数据类型分为:基本数据类型String、Number、Boolean、Null、Undefined、Symbol对象数据类型Object、Array基本数据类型的特点:直接存储在栈(stack)中的数据引用数据类型的特点:存储的是该对象在栈中引用,真实的数据存放在堆内…...

网络割接概述

网络割接概述割接背景企业网络的变化割接概述割接难点割接的操作流程情景模拟及解决方案常见的割接场景割接背景 随着企业业务的不断发展,企业网络为了适应业务的需求不断的改造和优化。无论是硬件的扩容、软件的升级、配置的变更,凡是影响现网运行业务…...

开放开源开先河(下)

目录 1.唯一性定义品牌 2.打造爆款塑造品牌 3.生态系统传播品牌 打造爆款塑造品牌 目前全球100多个开源基金会大部分都在美国,已成功孵化了800多个项目。而开放原子开源基金会现有136家捐赠单位,2020年9月,百度将区块链项目超级链&#xff0…...

maven的学习

为啥要用maven 1、不用认为添加jar包所依赖的其他jar包 2、能在本地仓库只保留一份jar包,避免了多个工程使用相同jar包,需要重复导入的问题,减少冗余 3、能够规范添加jar包,在下载需要的jar包时有多种方法,但是不能保…...

从前端到后端全面解析文件上传

从前端到后端全面解析文件上传1.前端准备(vueelement-ui)2.后端准备(SpringBootminiomysql)2.1解决跨域2.2配置minio与mysql2.3controller层2.4service层1.前端准备(vueelement-ui) <!DOCTYPE html> <html lang"en"> <head><meta charset"…...

全网火爆,软件测试面试题大全,接口测试题+回答 (18k+的offer)

目录&#xff1a;导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09;前言 面试测试工程师的时…...

【iOS】—— 浅看block源码

block 文章目录block如何通过终端clang生成源码cpp文件block实质截获自动变量全局变量和静态变量的截获__block说明符iOS开发“强弱共舞”——weak和strong配套使用解决block循环引用问题如何通过终端clang生成源码cpp文件 之前在学习block中学习的比较浅&#xff0c;只看了oc…...

I.MX6ULL_Linux_系统篇(23) busybox文件系统构建

Linux“三巨头”已经完成了 2 个了&#xff0c;就剩最后一个 rootfs(根文件系统)了&#xff0c;本章我们就来学习一下根文件系统的组成以及如何构建根文件系统。这是 Linux 移植的最后一步&#xff0c;根文件系统构建好以后就意味着我们已经拥有了一个完整的、可以运行的最小系…...

shpjs将.zip文件转成geoJson

一、npm install shpjs二、import shp from shpjs三、async setLayerSource() {const geoJsonData await shp(dataUrl)}一直报错&#xff1a;是因为Buffer这个插件一直没找到Uncaught Error: nodebuffer is not supported by this browser解决办法npm install node-polyfill-w…...

eBay是不是一定要养号?是的

相信每个运营过eBay的用户遇到过这个棘手的问题&#xff0c;eBay个人账户的刊登数量是有限的&#xff0c;尤其是新账户只有5个sku&#xff0c;所以一开始的运营会比较艰难。想要快点走上正轨的话&#xff0c;就一定要去注重这个“养号”。eBay运营模式 1.拍卖 eBay最开始是一个…...

宝塔(二):升级JDK版本

目录 背景 一、下载JDK17 二、配置环境变量 三、配置新的JDK路径 背景 宝塔的软件商店只有JDK8&#xff0c;不满足我当前项目所需的JDK版本&#xff0c;因此想对JDK版本进行升级&#xff0c;升级为JDK17。 一、下载JDK17 先进入 /usr/lib/jvm 目录 点击终端&#xff0c;进…...

【LeetCode】螺旋矩阵 [M](数组)

54. 螺旋矩阵 - 力扣&#xff08;LeetCode&#xff09; 一、题目 给你一个 m 行 n 列的矩阵 matrix &#xff0c;请按照 顺时针螺旋顺序 &#xff0c;返回矩阵中的所有元素。 示例 1&#xff1a; 输入&#xff1a;matrix [[1,2,3],[4,5,6],[7,8,9]] 输出&#xff1a;[1,2,3,…...

实验二:动态规划

1.双11的红包雨 问题描述 双11到了&#xff0c;据说这2天会下红包雨&#xff0c;每个红包有不同的价值&#xff0c;小k好开心&#xff0c;但有个规则&#xff0c;就只能接掉落在他身旁的10米范围内的红包&#xff08;0-10这11个位置&#xff09;。小k想尽可能的多抢红包&…...

华为机试 HJ27 查找兄弟单词

题目链接&#xff1a;https://www.nowcoder.com/practice/03ba8aeeef73400ca7a37a5f3370fe68?tpId37&tqId21250&rp1&ru/exam/oj/ta&qru/exam/oj/ta&sourceUrl%2Fexam%2Foj%2Fta%3Fdifficulty%3D3%26page%3D1%26pageSize%3D50%26search%3D%26tpId%3D37%26t…...

佩戴舒适的蓝牙耳机有哪些?佩戴舒适的蓝牙耳机推荐

音乐对许多人而言&#xff0c;都是一种抚慰生命的力量&#xff0c;特别是在上下班的时候&#xff0c;在熙熙攘攘的人流中&#xff0c;戴着耳机听一首动听的曲子&#xff0c;无疑会让人心情变得更加舒畅&#xff0c;要想获得出色的音乐体验&#xff0c;没有一副出色的耳机可不行…...

ESXI主机安装Zabbix 6.2

1&#xff1a;首先下载Zabbix Appliance 2&#xff1a;还需要下载VMware converter &#xff0c;这个需要VMware的账号&#xff0c;或者从其他地方下载也可以。 3:vmdk格式的 image 可直接在 VMware Player、 Server 和 Workstation 产品中使用。要在 ESX,、ESXi 和 vSphere 中…...

英文 科技网站/免费百度下载

路线&#xff1a;xx.pth -> xx.onnx -> xx.trt 实验版本&#xff1a;torch 1.10.0&#xff1b;tensorrt 7.2.3.4&#xff1b; onnx 1.8.1 1. pth2onnx.py # 将pytorch训练的模型xx.pth转为xx.onnx。 import torch from model import resnet50 # 导入模型结构 impo…...

辽宁建设工程信息网发完公告后还能更改资格要求吗/快速优化工具

文章目录0. 类型转换的原理1. 初始化和赋值时进行的转换2. 以{}方式初始化时进行的转换&#xff08;C11新增&#xff09;3. 表达式中的转换4. 传递参数时的转换5. 强制类型转换6. 使用auto让编译器自己推断变量类型0. 类型转换的原理 在进行下面的学习前&#xff0c;我觉得有比…...

unas做网站服务器/广州信息流推广公司排名

Flink 相关的组件和作业的稳定性通常是比较关键的&#xff0c;所以得需要对它们进行监控&#xff0c;如果有异常&#xff0c;则需要及时告警通知。本章先会教会教会大家如何利用现有 Flink UI 上面的信息去发现和排查问题&#xff0c;会指明一些比较重要和我们非常关心的指标&a…...

制作网页和做网站是一个意思吗/网站查询服务器

本文欢迎转载&#xff0c;转载请注明出处和作者。由于各种监控系统的实时告警&#xff0c;都需要使用邮箱进行发送&#xff0c;而其中使用SMTP协议的邮箱&#xff0c;各种监控系统、ITSM系统等支持最广泛。为测试监控系统的告警功能&#xff0c;需要先搭建1个SMTP邮箱。实验环境…...

做网站哪一家公司好/营销网站建设大概费用

在皕杰报表的函数中&#xff0c;数据集函数和单元格函数都有sum求和函数&#xff0c;但其用法是不同的。我们先看两个函数的说明&#xff1a; 一、数据集函数sum 函数说明&#xff1a;从数据集中&#xff0c;从满足条件的记录中&#xff0c;算出给定字段或表达式的总和 语法&a…...

建设英文商城网站/网络营销的含义的理解

九章算法官网-原文网址 http://www.jiuzhang.com/problem/55/ 题目 给一个字符串和一个旋转的偏移量offset&#xff0c;将字符串循环右移offset位。 如&#xff1a;"abcdefg" 循环右移 4位之后变为了&#xff1a;"defgabc" 要求做到O(1)的额外空间耗费…...