LLT-发现股市中的“大浪”

article/2025/8/30 9:33:03

引言:
股市中小的波动经常干扰股票投资人对大趋势的判断,倘若股市的波动同信号波动类似,那是不是可以用处理信号的方式处理股票波动发现大的波动呢?我们知道通信领域在处理信号波动时也常会遇到被噪音干扰的问题,这些噪音通常需要用对应的滤波器过滤,那么在股市中我们是不是也可以设计合适的滤波器来过滤小的波动留下股市“大浪”呢?本文介绍的LLT模型就是基于此思想产生的。本文参考对象是广发证券的《低延迟趋势线与交易性择时——短线择时策略研究之三》,有兴趣更深入理解LLT原理的读者可以阅读原研报。

 

前言:

股票应该怎么交易?不就是低点买入高点卖出吗。
理想中的股票波动大致是这样的:
1.PNG

然后,理想的交易状态状态是这样的:
3.PNG

 

图一

图一图一

 

在有上涨趋势出现的时候买入,下跌趋势出现的时候卖出,稍微滞后一点没关系,总体肯定会赚的。

那么是不是从此资产飙升,过上睡觉睡到自然醒,数钱数到手抽筋的生活。然而,事实总是这样的:


2.PNG

 

图二

图二图二

 

说好的一起做手拉手做一辈子的朋友呢?友谊的小船怎么说翻就翻?这些小波浪该怎么整!!!!

只有对大的趋势判断准确,才能规避掉股市中的小的波动,那么怎样作出正确的大趋势判断,来更好的的择时呢?这就是本文策略要解决的目标。本文的主角LLT趋势线(滤波器)为此而生。

正文:

1, MA,EMA指标

先从现有的择时策略引入,MA是一种常用的趋势跟踪指标,可以在一定程度上把图二转化为图一,MA的计算天数越长,曲线越平滑,过滤小“波浪”能力越强。但同时滞后性也越高,往往在股市最高最低点出现若干天后,MA才真正反应,这在震荡横盘的市场中劣势及其明显。

与MA类似的指标还有EMA,EMA计算的是过去数据的加权均值,并通过赋予邻近点更大的权重来提高指标的灵敏度。把 EMA的公式用通信的角度解释,EMA就是一个一阶低通滤波器,用以过滤高频率的波动留下低频率的波动。那么假设股价波动同样也是波动的这一假设成立,那么我们是不是可以利用通信领域常年积累的滤波器原理设计一个比EMA更加平滑灵敏的滤波器来实现引言中图一到图二的转化呢?本文讲述的LLT就是这样一个2阶滤波器。

2,LLT思路简介

LLT滤波器是广发证券短线择时研报提出的一种滤波器,旨在过滤股市中的低频波动留下高频波动,以便择时,是一种2阶的滤波器。
这一趋势跟踪策略的核心思路是把股市波动当做我们平时所见的信号波处理。信号传输过程中经常被噪音所干扰,所以通信领域大量使用滤波器函数来过滤不需要的频率的波动。若要发现股市中的“大浪”,我们需要把高频率的“小浪”过滤掉,于是股市趋势跟踪策略在通信领域就被转化成寻找股市波动中表现优良的滤波器的任务。(过高频波动留下低频波动的滤波器)

3,LLT模型的理解

通信领域习惯于过滤高频或低频的信号波,用以过滤噪音。首先我们用很多人熟悉的EMA公式来引入LLT模型。

1,EMA(1阶滤波器)引入:

指数平均线EMA:

 

textEMA(t)=α∗textprice(T)+(1−α)∗textEMA(t−1)

textEMA(t)=α∗textprice(T)+(1−α)∗textEMA(t−1)textEMA(t)=α∗textprice(T)+(1−α)∗textEMA(t−1)

(1)

 

其中EMA(1)=Price(1)EMA(1)=Price(1)EMA(1)=Price(1),ααα是一个取值在 0 到 1 之间的比例,EMA本质上是赋予邻近点更大权重比例的移动平均值数据
由于我们认为一个特定的波是由不同频率的波组合而成,所以一个随时间波动的波也可以表述成多个频率波动的组合,及自变量由时间(时域)变成了不同波的频率(频域)。我们可以用一个Z变换来将这一时域公式转化为频域公式
Z变换的公式是:

 

F(z)=∑k=−∞∞f(k)∗z−k

F(z)=∑k=−∞∞f(k)∗z−kF(z)=∑k=−∞∞f(k)∗z−k

 

其中 z 定义复频域,f(k)是时域离散信号,
接着定义传输函数:

 

H(z)=textEMA(z)textprice(z)

H(z)=textEMA(z)textprice(z)H(z)=textEMA(z)textprice(z)

(2)

 

在这顺便一提传输函数,传输函数是是指零初始条件下线性系统响应(即输出)量的拉普拉斯变换(或z变换)与激励(即输入)量的拉普拉斯变换之比。传输函数代表了输入和输出之间的联系,不受输入输出值的影响,可以用它来分析系统的动态特性,稳定性,或根据给定要求设计满意的控制器。
将(2)带入(1)式,并借助Z变换的线性性质:

 

a1f1(k)+a2f2(k)↔a1F1(k)+a2F2(k)

a1f1(k)+a2f2(k)↔a1F1(k)+a2F2(k)a1f1(k)+a2f2(k)↔a1F1(k)+a2F2(k)

 

和时位移性质:

 

f(k−m)↔z−mF(z)

f(k−m)↔z−mF(z)f(k−m)↔z−mF(z)

 

可以推导出EMA均线的传输函数为:

 

H1(z)=α1−(1−α)∗z−1

H1(z)=α1−(1−α)∗z−1H1(z)=α1−(1−α)∗z−1

 

这样就实现了EMA的时域频域转化。

2,LLT的设计

LLT是一个二阶的滤波器,广发证券此研报作者做了三部转化将EMA一阶滤波器转化为LLT二阶滤波器:
1, 为了使构造的高通滤波器,即不存在高频分量输出的1−H(z)1−H(z)1−H(z),首先修改EMA公式为:

 

textEMA′(T)=α∗textprice(T)+textprice(T−1)2+(1−α)∗textEMA′(T−1)

textEMA′(T)=α∗textprice(T)+textprice(T−1)2+(1−α)∗textEMA′(T−1)textEMA′(T)=α∗textprice(T)+textprice(T−1)2+(1−α)∗textEMA′(T−1)

 

接着我们将公式转换至频域以便于进行滤波,那么修改后的EMA滤波器变为

 

H2(z)=α∗(1+z−1)/21−(1−α)∗z−1

H2(z)=α∗(1+z−1)/21−(1−α)∗z−1H2(z)=α∗(1+z−1)/21−(1−α)∗z−1

 

2, 构建一阶高通滤波器,其结构为

 

H3(z)=1−H2(z)=(1−α/2)∗(1−z−1)1−(1−α)∗z−1

H3(z)=1−H2(z)=(1−α/2)∗(1−z−1)1−(1−α)∗z−1H3(z)=1−H2(z)=(1−α/2)∗(1−z−1)1−(1−α)∗z−1

 

3, 完成二阶滤波函数的构建

 

H4(z)=H3(z)∗H3(z)=(1−α/2)∗(1−2z−1+z−2)1−2(1−α)∗z−1+(1−α)2z−2

H4(z)=H3(z)∗H3(z)=(1−α/2)∗(1−2z−1+z−2)1−2(1−α)∗z−1+(1−α)2z−2H4(z)=H3(z)∗H3(z)=(1−α/2)∗(1−2z−1+z−2)1−2(1−α)∗z−1+(1−α)2z−2

 

相应的,对应的2阶高通滤波器为:

 

H5(z)=1−H4(z)=(α−α2/4)+(α2/2)z−1−(α−3α2/4)z−21−2(1−α)∗z−1+(1−α)2z−2

H5(z)=1−H4(z)=(α−α2/4)+(α2/2)z−1−(α−3α2/4)z−21−2(1−α)∗z−1+(1−α)2z−2H5(z)=1−H4(z)=(α−α2/4)+(α2/2)z−1−(α−3α2/4)z−21−2(1−α)∗z−1+(1−α)2z−2

 

最终得到了二阶高通滤波函数:

 

LLT(t)textprice(z)=1−H4(z)=(α−α2/4)+(α2/2)z−1−(α−3α2/4)z−21−2(1−α)∗z−1+(1−α)2z−2

LLT(t)textprice(z)=1−H4(z)=(α−α2/4)+(α2/2)z−1−(α−3α2/4)z−21−2(1−α)∗z−1+(1−α)2z−2LLT(t)textprice(z)=1−H4(z)=(α−α2/4)+(α2/2)z−1−(α−3α2/4)z−21−2(1−α)∗z−1+(1−α)2z−2

 

最后由拉普拉斯逆转换得到的 LLT(t)的公式为

 

LLT(t)=1−H4(z)=(α−α2/4)textprice(t)+(α2/2)textprice(t−1)−(α−3α2/4)textprice(t−2)+2(1−α)LLT(t-1)−(1−α)2LLT(t-2)

LLT(t)=1−H4(z)=(α−α2/4)textprice(t)+(α2/2)textprice(t−1)−(α−3α2/4)textprice(t−2)+2(1−α)LLT(t-1)−(1−α)2LLT(t-2)LLT(t)=1−H4(z)=(α−α2/4)textprice(t)+(α2/2)textprice(t−1)−(α−3α2/4)textprice(t−2)+2(1−α)LLT(t-1)−(1−α)2LLT(t-2)

 

理论上讲LLT就是原波动从前言中图二到图一的转化,及我们应该在LLT值大于LLT的上一值时大趋势来临,买入股票:当LLT值小于LLT前值时大趋势变为下降,卖出股票。

4,HS300应用

15.PNG

LLT策略的参数只有alpha一个。在HS300中本文用梯度下降的方法将alpha调整为2/35.

此图是无交易费用的策略表现,从2005年至今,年化收益20%,回撤27.5%,表现尚可吧。后面附代码是加入了交易费用后的表现,年化收益将至17%。总的来说这一策略预防股灾的效果尚可。

5,补充和扩展

LLT本质上只是一种滤波器罢了,某些邮电学校通信工程专业仓库里不要的滤波器函数一抓一大把,是不是可以废物利用一下试试股市上好不好用呢?只恨当年没学好通信原理啊!(哭晕在厕所)

小编个人感觉择时策略有较好的预测股灾能力,虽然大部分收益一般,但可以作为其他选股策略的止损函数,从而获得其他策略高收益的同时降低风险。另一个大盘择时策略RSRS效果也不错,推荐大家阅读。此外,聚宽论坛上也有很多择时模型,有兴趣的读者可以继续研究。

本文由JoinQuant量化课堂推出,版权归JoinQuant所有,商业转载请联系我们获得授权,非商业转载请注明出处。文章更迭记录:
v1.0,2018-02-16,文章上线
v1.1,2018-03-16,增加代码中LLT1,LLT2的注释

 


http://chatgpt.dhexx.cn/article/QS2LlQa7.shtml

相关文章

HDU2544 最短路dij

纯最短路。 1 ///HDU 2544堆优化的最短路2 #include <cstdio>3 #include <iostream>4 #include <sstream>5 #include <cmath>6 #include <cstring>7 #include <cstdlib>8 #include <string>9 #include <vector>10 #include &l…

dij算法堆优化_迪杰斯特拉算法(Dijkstra) (基础dij+堆优化) BY:优少(示例代码)...

算法实现步骤&#xff1a; a.初始时&#xff0c;只包括源点&#xff0c;即S {v}&#xff0c;v的距离为0。U包含除v以外的其他顶点&#xff0c;即&#xff1a;U {其余顶点}&#xff0c;若v与U中顶点u有边&#xff0c;则(u,v)为正常权值&#xff0c;若u不是v的出边邻接点,则(u,v…

dij算法堆优化_迪杰斯特拉算法(Dijkstra) (基础dij+堆优化) BY:优少

算法实现步骤&#xff1a; a.初始时&#xff0c;只包括源点&#xff0c;即S {v}&#xff0c;v的距离为0。U包含除v以外的其他顶点&#xff0c;即&#xff1a;U {其余顶点}&#xff0c;若v与U中顶点u有边&#xff0c;则(u,v)为正常权值&#xff0c;若u不是v的出边邻接点,则(u,v…

图的最短路径——DIJ算法,有向图的矩阵实现,图的基本操作

图是一种非常重要的数据结构&#xff0c;在研究从一点出发到各个顶点的最短距离。 实验目的 1. 掌握图的基本概念、表示方法、遍历方法。 2. 掌握图的最短路径算法。 实验要求 1&#xff0e; 输入图的顶点数n&#xff08;不超过10个&#xff09;、边数m&#xff0c;顶点分…

堆优化dij

模板 【算法介绍】 用一个优先级队列来记录点和dis值&#xff0c;按照顺序进行边的松弛即可 1.农场派对 【题意】 有向图&#xff0c;求1-n所有点中到x点一去一回的最短路的最大值 【分析】 建立原图和反图&#xff0c;以x为源点跑两次dijkstra&#xff0c;对于1-n每个点…

图中的搜索——dij

Dijkstra(迪杰斯特拉算法)常常用于求解图中的单点最短路径问题。其主要实现方法可拆分为两个步骤&#xff1a;①更新距离信息②找出当前最小路径 如下图所示&#xff0c;要求求出1结点到6结点的最短路径。 我们可以先定义一下重点内容&#xff1a; 邻接矩阵map[i][j]&#xf…

关于普通dij算法为什么不能解决负权边的分析

我们首先来分析下含负权边的无向图&#xff1a; 1.先看图 我们求A点到C点的最短距离&#xff0c;很明显答案为1. 2.我们用dij来跑下&#xff0c;看过程&#xff1a; 先把A点标记哈&#xff0c;不需要访问本身首先找到距A最近的且直接相连的点&#xff08;也就是两点间没有…

dij最短路+堆优化

dij一个主要思路&#xff0c;将所有点分为两个集合S&#xff0c;T&#xff0c;初始集合S中只包含了起点&#xff0c;T集合包含所有点&#xff0c;要做的就是从T集合中不断选取与S集合中的点距离最短的并且未被加入S集合中的点&#xff0c;将这个点加入S集合&#xff0c;并用这个…

FreeType移植到 STM32 单片机以支持矢量字体

目录 一、准备工作 二、复制文件 三、添加C文件到Keil中 四、修改接口 五、调用 六、优化 七、效果 一、准备工作 下载Freetype源码 ----- 下载FreeType 以移植到Keil 的STM32工程为例 移植前的软件环境&#xff1a; 1&#xff0c;实现了内存分配函数 2&#xff0c;实现了文件…

freetype库实现文字显示

原文&#xff1a;http://www.cnblogs.com/lifexy/p/8503070.html 1 .数码相框-通过freetype库实现矢量显示 本章主要内容如下: 1)矢量字体原理2)使用freetype库实现矢量字体显示 1. 矢量字体原理 将汉字的笔划边缘用直线段描述成封闭的曲线&#xff0c;并将线段各端点的坐标经压…

常用字体介绍(freetype)

字体显示原理 字体和图片一样&#xff0c;存储为像素&#xff0c;绘制的时候需要找到字体对应的像素显示 字体文件格式 ttf&#xff0c;只包含一种字体格式&#xff0c;矢量字体ttc&#xff0c;ttc包含多个ttf文件&#xff0c;包含多种字体格式otf&#xff0c;ttf的扩展&…

FreeType 简单使用

FreeType 2 第一步 &#xff0d;&#xff0d; 简易的字形装载 介绍 这是“FreeType2 教程”的第一部分。它将教会你如何&#xff1a; * 初始化库 * 通过创建一个新的 face 对象来打开一个字体文件 * 以点或者象素的形式选择一个字符大小 * 装载一个字形(glyph)图像&…

freetype的安装与使用

一、在PC上的安装与使用 1) 开发环境 系统版本&#xff1a; ubuntu14.04 freetype版本&#xff1a; freetype-2.4.10 gcc版本&#xff1a; gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04.3) 2) 步骤 1. 解压缩 tar xjf freetype-2.4.10.tar.bz2 2. 配置 …

freetype环境安装记录

&#xff08;一&#xff09;摘要 最近在学习韦东山老师的驱动入门课程&#xff0c;在freetype环境安装时碰到到了一下这个报错&#xff0c;于是想记录下自己的安装过程方便其他碰到问题的同学解决&#xff01; &#xff08;二&#xff09;碰到的报错 我是用的是IMX6ULL PRO开…

freetype的简单使用

安装完毕以后我们先做个简单的实例程序看看效果 1.首先先下载字体 链接&#xff1a;https://pan.baidu.com/s/1FCOh9SYcVkYCkaT6wtXWtA 提取码&#xff1a;rohm 2.编写程序 编译测试文件example.c /*编译命令*/ -I指定库文件所在位置-L指定动态库位置gcc example.c…

(转)FreeType字体位图属性

原文链接&#xff1a;https://blog.csdn.net/wlk1229/article/details/92424456 从原文中摘取一部分记录如下&#xff1a; FreeType获取的位图是一张刚好包含文字的位图&#xff0c;不包含左右上下的空白信息。如果绘制文字时直接把每一张位图连接在一起&#xff0c;文字则会一…

freetype编译

freetype简介 FreeType库是一个完全免费(开源)的、高质量的且可移植的字体引擎&#xff0c;它提供统一的接口来访问多种字体格式文件&#xff0c;包括TrueType, OpenType, Type1, CID, CFF, Windows FON/FNT, X11 PCF等。支持单色位图、反走样位图的渲染。FreeType库是高度模块…

windows下编译OpenCV带opencv_contrib和freetype

目录 1. 下载安装cmake、opencv2. 编译freetype和harfbuzz2.1 pkg-config2.2 freetype2.3 harfbuzz2.4 修改opencv_contrib下的modules/freetype/CMakeLists.txt 3. 编译OpenCV5. 示例6. 编译好的OpenCV下载地址7. 参考文章 1. 下载安装cmake、opencv cmake下载地址&#xff1…

嵌入式应用-详解移植并使用freetype显示文字

目录 前言 1. freetype和相关概念简介 2.freetype显示文字流程和主要函数 2.1 包含头文件及API头文件&#xff1a;ft2build.h 2.2 初始化&#xff1a; FT_InitFreetype 2.3 加载&#xff08;打开&#xff09;字体Face&#xff1a; FT_New_Face 2.4 设置字体大小&#x…

freetype用法

freetype用法 文章目录 freetype用法0.实现1.变量定义2.lcd操作获取屏幕信息3.freetype初始化4.绘画 1.字形度量2.类1.FT 中的面向对象2.FT_Library 类3.FT_Face 类4 FT_Size 类5 FT_GlyphSlot 类 3.函数1.把一个字符码转换为一个字形索引FT_Get_Char_Index函数2.从 face 中装…