当前位置:网站首页>LM13丨形态量化-动量周期分析
LM13丨形态量化-动量周期分析
2022-07-29 01:14:00 【松鼠宽客】

量化策略开发,高质量社群,交易思路分享等相关内容
『正文』
ˇ
大家好,今天我们分享异质化LM系列——CTA第13篇,本篇策略内容也是LM异质化社群的最终章。
2022年7月31日之后,我们的异质化社群将到期,策略内容以及社群还会对外,具体详情请私信客服、慕总或我本人(我相信大家都知道我是谁)。
该篇内容我们融合了LM11的去噪音重构K线算法,和融合LM11收盘价单调性和周期均线的标准化结构形态量化,以及形态量化后的周期动量构造,共三个步骤。
一、策略逻辑与内容
首先我们按照LM11中的Heikin Ashi重构K线方法对原始K线进行去噪过滤,如下图所示:

在这里我不过多赘述原理和理论,感兴趣的可以翻看我们之前的LM系列第11篇文章——LM11丨重构K线构建择时交易策略。
第二步,我们根据重构的K线行情数据进行形态量化。在这里我们并不是量化什么矩形、楔形、上升三角、下降三角、头肩顶底等这些K线形态,我们的角度是从“趋”的切入点出发,去量化趋势形态。
价格的趋势,有两方面的含义:“趋”代表价格运动的方向,而“势” 则表明价格波动的强弱。一般从价格走势图上,价格运动方向比较容易 描述,但从量化的角度“势”不是那么容易刻画,本篇我们先讨论“趋”。如下图所示:

下图的 K 线图,总共 11 根 K 线,假定图中第一根 K 线的收盘价与前一 根不在图中的 K 线收盘价相比较是上涨的,那么基于收盘价单调性进行 简化,收盘价变化可以记为(涨、涨、跌、涨、跌、涨、涨、跌、涨、 跌、跌),用 1 与-1 表示状态变化向量为(1,1,-1,1,-1,1,1,-1, 1,-1,-1),因此价格的位移向量为(0,1,2,1,2,1,2,3,2,3, 2,1),注意位移向量比状态变化向量多一个初始单元 0,表示位移的起 点从零开始。下图第一幅图为价格的实际走势,第二幅图是基于收盘价单调性的标准化结构图。
从这个例子看出,基于收盘价单调性标准化结构图,基本上和实际 K 线图比较相似,反映了价格的上涨和下跌的状态变化,但不足之处, 对于上涨和下跌的幅度刻画得不够充分,相比较真实 K 线图,简化图更 偏震荡。这个例子说明,如果只使用收盘价的单调性,标准化后走势会 放大实际走势的震荡幅度,从而不能有效反映实际走势的趋势强度。
为了解决这个问题,一个自然而然的想法则是在对实际走势标准化过程中,考虑趋势的方向这个维度,均线是对趋势方向一个比较好的量化指标。因此我们引入 N周期均线,那么状态变化向量定义为:如果当前收盘价大于或等于 N 周期均线价格,则为 1;如果当前收盘价严格小于 5N周期均线价格,则为-1。
如下图所示:

上图K 线图中 5 周期均线,实际用到了第一根 K 线之前的另外 5 根 K 线的收盘价数据。状态变化向量为(1,1,1,1,1,1,1,-1,-1,-1, -1),而位移向量为(0,1,2,3,4,5,6,7,6,5,4,3)。从基于 5 周期均线的标准化结构图可以看出,基本上反映了实际走势图的趋势 状态,左侧呈现单边上扬而右侧单边下跌,但较实际图形趋势更强,这 就是 5 周期均线定义的美中不足之处,过于强化了趋势,而淡化了实际 价格在均线之上或之下的涨跌波动变化,换言之,趋势粉饰过多,而震荡考量不足。
基于以上定义和缺点,我们融合收盘价单调性和 5 周期均线的标准化结构图,如下图所示:

也就是说,但我们处在均线以上是一种状态,然后在均向上这个状态前提下,还有基于收盘价单调性的测量与位移计算。如下图所示:

我们创建好形态量化分析数据结果后,我们根据形态量化出来的关于“趋”的数据进行动量周期分析。如下图所示:

看过“Pro_05丨基于波动率因子的择时分析”这篇文章的朋友应该不陌生。
二、策略可视化


T long
当然我们在下跌过程中也会多少出现周期动量抄底的信号出现,但是这并没有让这个策略变为一个抄底策略,本质还是一个反转动量策略。

T short
三、绩效

T 组合
我们来看一下与LM10中国债组合绩效情况

LM10国债组合

LM13与LM10国债组合
该策略在国债期货与LM10形成强烈的互补结构,其中较为明显的是就是从2020年上半年的分水岭为标志线。(疫情+银行参与主体)

总结:
1、该策略出场是常规的CTA出场逻辑,并没有异质化,这里可以修改
2、出场方面我测试了Krange与松鼠的trackout两种出场模式,从测试数据结果看,还是往上加的形式更为优秀。
3、该策略以国债为针对性开发,其他品种也有测试,但是由于时间问题,我没有将这些品种放上来,会员朋友可以自行看部署好的工作区。
4、针对此策略,还有更为深入迭代空间,后面我会组织“国债组”,我会提供给大家国债策略逻辑框架,专门针对国债进行CTA策略开发。届时我会在7月中旬的直播中进一步详解。
由于各平台差异,回测绩效以TBQ版本为准!!!
本策略仅作学习交流使用,实盘交易盈亏投资者个人负责。
边栏推荐
- Regular filtering data learning notes (①)
- 使用本地缓存+全局缓存实现小型系统用户权限管理
- 【流放之路-第六章】
- 九天后我们一起,聚焦音视频、探秘技术新发展
- Event express | Apache Doris Performance Optimization Practice Series live broadcast course is open at the beginning. You are cordially invited to participate!
- About df['a column name'] [serial number]
- Some summaries of ibatis script and provider
- In depth analysis of C language memory alignment
- More interesting Title Dynamic Effect
- internship:用于类型判断的工具类编写
猜你喜欢

Six simple techniques to improve the value of penetration testing and save tens of thousands of yuan

Where will Jinan win in hosting the first computing power conference?
![[golang] use select {}](/img/30/fa593ec682a40c47689c1fd88f9b83.png)
[golang] use select {}

【Golang】- runtime.Goexit()

golang启动报错【已解决】

Tda75610-i2c-determination of I2C address of analog power amplifier

Lxml web page capture the most complete strategy

覆盖接入2w+交通监测设备,EMQ为深圳市打造交通全要素数字化新引擎

Why does stonedb dare to call it the only open source MySQL native HTAP database in the industry?

StoneDB 为何敢称业界唯一开源的 MySQL 原生 HTAP 数据库?
随机推荐
规划数学期末考试模拟二
【7.21-26】代码源 - 【体育节】【丹钓战】【最大权值划分】
What is the ISO assessment? How to do the waiting insurance scheme
DSP vibration seat
[WesternCTF2018]shrine
Make logic an optimization example in sigma DSP - data distributor
Covering access to 2w+ traffic monitoring equipment, EMQ creates a new engine for the digitalization of all elements of traffic in Shenzhen
Internship: tool class writing for type judgment
How companies make business decisions -- with the help of data-driven marketing
StoneDB 邀请您参与开源社区月会!
Use of packet capturing tool Charles
[机缘参悟-54]:《素书》-1-事物缘起[原始章第一]:大道至简。
Explanation of yocto project directory structure
[golang] use select {}
With the explosive growth of digital identity in 2022, global organizations are facing greater network security
Where will Jinan win in hosting the first computing power conference?
560 and K
【流放之路-第八章】
【Golang】- runtime.Goexit()
JVM learning minutes