速查手册:TA-Lib 超过150种量化技术指标计算全解 - 1. Overlap Studies(重叠指标)

速查手册:TA-Lib 超过150种量化技术指标计算全解 - 1. Overlap Studies(重叠指标)

TA-Lib(Technical Analysis Library)是广泛使用的金融技术分析库,实现了超过150种技术指标计算函数,适用于股票、期货等金融数据的技术分析,帮助用户进行量化研究和交易策略开发。

文中内容仅限技术学习与代码实践参考,市场存在不确定性,技术分析需谨慎验证,不构成任何投资建议。适合量化新手建立系统认知,为策略开发打下基础。

TA-Lib

目录

  1. Overlap Studies(重叠指标)
  2. Momentum Indicators(动量指标)
  3. Volume Indicators(成交量指标)
  4. Volatility Indicators(波动率指标)
  5. Cycle Indicators(周期指标)
  6. Price Transform(价格变换)
  7. Pattern Recognition(模式识别)
  8. Statistic Functions(统计函数)
  9. Math Transform(数学变换)
  10. Math Operators(数学运算符)

Overlap Studies(重叠指标)

1. 移动平均类指标

SMA (Simple Moving Average) 简单移动平均线

  • 作用:通过算术平均平滑价格波动,识别趋势方向。

  • 计算方法
    SMA ( N ) = ∑ i = 1 N Close i N \text{SMA}(N) = \frac{\sum_{i=1}^{N} \text{Close}_i}{N} SMA(N)=Ni=1NClosei

  • 参数timeperiod=20 计算移动平均的周期(例如 20 日)。

  • 使用场景:判断支撑/阻力位,趋势确认。

  • 示例代码

    sma = talib.SMA(close, timeperiod=20)
    

EMA (Exponential Moving Average) 指数移动平均线

  • 作用:对近期价格赋予更高权重,反应更快。

  • 计算方法
    EMA ( N ) t = α ⋅ Close ∗ t + ( 1 − α ) ⋅ EMA ∗ t − 1 \text{EMA}(N)_t = \alpha \cdot \text{Close}*t + (1-\alpha) \cdot \text{EMA}*{t-1} EMA(N)t=αCloset+(1α)EMAt1 α = 2 N + 1 \alpha = \frac{2}{N+1} α=N+12

  • 参数timeperiod=20 指数平滑的周期。

  • 使用场景:短期趋势跟踪,日内交易。

  • 示例代码

    ema = talib.EMA(close, timeperiod=20)
    

WMA (Weighted Moving Average) 加权移动平均线

  • 作用:按时间线性递减权重,强调近期价格。

  • 计算方法
    WMA ( N ) = ∑ i = 1 N ( N − i + 1 ) ⋅ Close ∗ i ∑ ∗ i = 1 N ( N − i + 1 ) \text{WMA}(N) = \frac{\sum_{i=1}^{N} (N-i+1) \cdot \text{Close}*i}{\sum*{i=1}^{N} (N-i+1)} WMA(N)=i=1N(Ni+1)i=1N(Ni+1)Closei

  • 参数timeperiod=20 加权平均的周期。

  • 使用场景:快速捕捉价格拐点。

  • 示例代码

    wma = talib.WMA(close, timeperiod=20)
    

DEMA (Double Exponential Moving Average) 双指数移动平均线

  • 作用:双重平滑减少传统EMA滞后性。

  • 计算方法
    DEMA = 2 ⋅ EMA ( N ) − EMA ( EMA ( N ) ) \text{DEMA} = 2 \cdot \text{EMA}(N) - \text{EMA}(\text{EMA}(N)) DEMA=2EMA(N)EMA(EMA(N))

  • 参数timeperiod=20 双重指数平滑的周期。

  • 使用场景:高频交易或波动市场。

  • 示例代码

    dema = talib.DEMA(close, timeperiod=20)
    

TEMA (Triple Exponential Moving Average) 三重指数移动平均线

  • 作用:三重平滑进一步减少噪音。

  • 计算方法:对EMA进行三次平滑。

  • 参数timeperiod=20 三重指数平滑的周期。

  • 使用场景:中长期趋势过滤。

  • 示例代码

    tema = talib.TEMA(close, timeperiod=20)
    

TRIMA (Triangular Moving Average) 三角形移动平均线

  • 作用:权重呈三角形分布,平衡平滑性与响应速度。

  • 计算方法:双次平滑的SMA。

  • 参数timeperiod=20 双次平滑的周期。

  • 使用场景:震荡市趋势识别。

  • 示例代码

    trima = talib.TRIMA(close, timeperiod=20)
    

KAMA (Kaufman Adaptive Moving Average) 自适应移动平均线

  • 作用:根据波动率动态调整平滑周期。

  • 计算方法

    1. 效率比率(ER)= 价格变化 / 波动累积值
    2. 平滑系数 α = [ E R ⋅ ( f a s t e s t − s l o w e s t ) + s l o w e s t ] 2 \alpha = [ER \cdot (fastest - slowest) + slowest]^2 α=[ER(fastestslowest)+slowest]2
    3. KAMA = 当前价格 ⋅ α \cdot \alpha α + 前一日KAMA ⋅ ( 1 − α ) \cdot (1-\alpha) (1α)
  • 参数timeperiod=30

  • 使用场景:趋势与震荡交替市场。

  • 示例代码

    kama = talib.KAMA(close, timeperiod=30)
    

MAMA (MESA Adaptive Moving Average) MESA自适应移动平均线

  • 作用:基于希尔伯特变换的自适应移动平均。

  • 计算方法:通过频率调整快速响应趋势变化。

  • 参数:fastlimit=0.5 快速平滑系数上限(范围 0.010.99),slowlimit=0.05 慢速平滑系数下限(范围 0.010.99)。

  • 使用场景:捕捉非线性趋势。

  • 示例代码

    mama, fama = talib.MAMA(close, fastlimit=0.5, slowlimit=0.05)
    

T3 (Triple Exponential Moving Average with Volume Factor) 包含体积因子的三重指数移动平均线

  • 作用:三重指数平滑结合体积因子。

  • 计算方法:复杂的三次平滑公式。

  • 参数:timeperiod=5 三重平滑的周期,vfactor=0.7 体积因子,控制平滑强度(0~1)。

  • 使用场景:剔除短期噪音。

  • 示例代码

    t3 = talib.T3(close, timeperiod=5, vfactor=0.7)
    

2. 布林带类指标

BBANDS (Bollinger Bands) 布林带

  • 作用:量化价格波动范围,识别超买超卖。

  • 计算方法

    • 中轨 = SMA(N)
    • 上轨 = 中轨 + k ⋅ 标准差 ( N ) k \cdot \text{标准差}(N) k标准差(N)
    • 下轨 = 中轨 - k ⋅ 标准差 ( N ) k \cdot \text{标准差}(N) k标准差(N)
  • 参数:timeperiod=20 中轨(SMA)的周期,bdevup=2 上轨标准差倍数(例如 +2σ),nbdevdn=2 下轨标准差倍数(例如 -2σ)。

  • 使用场景:价格突破上下轨时反转信号。

  • 示例代码

    upper, middle, lower = talib.BBANDS(close, timeperiod=20, nbdevup=2, nbdevdn=2)
    

3. 其他重叠指标

HT_TRENDLINE (Hilbert Transform Trendline) 希尔伯特变换趋势线

  • 作用:生成平滑趋势线,过滤市场噪音。

  • 计算方法:基于希尔伯特变换的相位调整。

  • 参数:无需周期参数。

  • 使用场景:长期趋势方向识别。

  • 示例代码

    ht_trend = talib.HT_TRENDLINE(close)
    

MIDPOINT 中点

  • 作用:计算N日内价格中点。

  • 计算方法:中点 = 最高价 + 最低价 2 \frac{\text{最高价 + 最低价}}{2} 2最高价 + 最低价(N日窗口)。

  • 参数timeperiod=14 计算中点价格的周期。

  • 使用场景:动态支撑/阻力参考。

  • 示例代码

    midpoint = talib.MIDPOINT(close, timeperiod=14)
    

MIDPRICE 中位价格

  • 作用:计算N日内最高价与最低价平均值。

  • 计算方法:中点价 = N日最高价 + N日最低价 2 \frac{\text{N日最高价 + N日最低价}}{2} 2N日最高价 + N日最低价

  • 参数timeperiod=14 计算中点价(最高价与最低价均值)的周期。

  • 使用场景:简化价格波动分析。

  • 示例代码

    midprice = talib.MIDPRICE(high, low, timeperiod=14)
    

SAR (Parabolic SAR) 抛物线转向 SAR

  • 作用:跟踪趋势反转点,提供止损参考。

  • 计算方法

    • 上升趋势中,SAR点随时间加速上移;
    • 下降趋势中,SAR点随时间加速下移。
  • 参数:acceleration=0.02 初始加速因子(步长),maximum=0.2 加速因子的上限值。

  • 使用场景:趋势反转预警。

  • 示例代码

    sar = talib.SAR(high, low, acceleration=0.02, maximum=0.2)
    

SAREXT (Parabolic SAR Extended) 扩展抛物线转向 SAR

  • 作用:SAR的扩展版本,支持更多参数调整。

  • 计算方法:改进的加速因子逻辑。

  • 参数:start=0.02 初始加速因子,increment=0.02 每次加速的增量,maximum=0.2 加速因子上限。

  • 使用场景:复杂趋势环境下的止损优化。

  • 示例代码

    sar_ext = talib.SAREXT(high, low, start=0.02, increment=0.02, maximum=0.2)
    

4. 使用建议

  1. 组合策略
    • SMA + BBANDS:判断趋势方向与波动区间。
    • EMA + SAR:跟踪趋势并设置动态止损。
  2. 参数调优
    • 根据资产特性调整周期(如加密货币用 14 日,股票用 20 日)。
  3. 避免过度拟合
    • 回测时需验证指标在多种市场环境(趋势、震荡)下的有效性。

风险提示与免责声明
本文内容基于公开信息研究整理,不构成任何形式的投资建议。历史表现不应作为未来收益保证,市场存在不可预见的波动风险。投资者需结合自身财务状况及风险承受能力独立决策,并自行承担交易结果。作者及发布方不对任何依据本文操作导致的损失承担法律责任。市场有风险,投资须谨慎。

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

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

相关文章

重构未来智能:Anthropic 解码Agent设计哲学三重奏

第一章 智能体进化论:从工具到自主体的认知跃迁 1.1 LLM应用范式演进图谱 阶段技术形态应用特征代表场景初级阶段单功能模型硬编码规则执行文本摘要/分类进阶阶段工作流编排多模型协同调度跨语言翻译流水线高级阶段自主智能体动态决策交互编程调试/客服对话 1.1.…

Git 中修改某个特定的commit提交内容

在 Git 中修改某个特定的提交(commit)通常需要使用 交互式变基(Interactive Rebase) 或 修改提交(Commit Amend)。以下是不同场景下的具体操作步骤: 一、修改最近的提交(最新提交&am…

ZLMediaKit流媒体服务器

ZLMediaKit 简介 ZLMediaKit 是一个基于 C11 开发的高性能流媒体服务器框架,支持 RTSP、RTMP、HLS、HTTP-FLV、WebSocket-FLV、HTTP-TS、WebSocket-TS、HTTP-fMP4、WebSocket-fMP4 等多种流媒体协议。 主要特性 多协议支持: 支持 RTSP/RTMP/HLS/HTTP-F…

数字电子技术基础(五十)——硬件描述语言简介

目录 1 硬件描述语言简介 1.1 硬件描述语言简介 1.2 硬件编程语言的发展历史 1.3 两种硬件描述的比较 1.4 硬件描述语言的应用场景 1.5 基本程序结构 1.5.1 基本程序结构 1.5.2 基本语句和描述方法 1.5.3 仿真 1 硬件描述语言简介 1.1 硬件描述语言简介 硬件描述语…

SQL系列:常用函数

1、【MySQL】合并字段函数(列转行) 它可以将两个字段中的数据合并到一个字段中。 1)CONCAT函数 CONCAT函数可以将多个字段中的数据合并到一个字段中。它的语法格式如下: SELECT CONCAT(字段1,字段2,...字段N) FROM 表名;SELEC…

多线程和线程同步

多线程在项目开发中使用频率高,使用多线程能够提高程序的并发性 提高程序的并发性:1.多线程,对系统资源的消耗更小一些 2.多进程 系统的cpu资源有线,cpu时间片被分好后,由系统进行调度,每个线程在执行的时候都需要抢这个cpu的时间片。如果抢到了,就执行,如果没抢到,…

时序数据预测:TDengine 与机器学习框架的结合(一)

一、引言 在当今数字化时代,时序数据如潮水般涌来,广泛存在于物联网、工业监控、金融交易、气象监测等众多领域。这些按时间顺序记录的数据蕴含着丰富的信息,对其进行准确预测,能够为企业和组织的决策提供有力支持,带…

elementUI中MessageBox.confirm()默认不聚焦问题处理

在项目中使用elementUI的MessageBox.confirm()出现了默认不聚焦的问题,默认确认按钮是浅色的,需要点击一下才会变成正常。面对这种问题,创建新组件,实现聚焦。替换默认的MessageBox.confirm() 解决 创建components/MessageBoxCo…

yarn的定义

YARN 即 Yet Another Resource Negotiator,它是 Apache Hadoop 2.x 及后续版本中的集群资源管理系统,也是 Hadoop 生态系统的核心组件之一。 YARN 的诞生是为了解决 Hadoop 1.x 中 MapReduce 框架将资源管理和作业调度任务耦合在一起所带来的可扩展性差等…

http、https、TLS、证书原理理解,对称加密到非对称加密问题,以及对应的大致流程

http 超文本传输协议 存在问题: 安全性、隐私性、数据完整性 易被中间人(黑客之类的)对数据进行劫持、篡改、隐私泄露 引出了 https (source) http 在网络模型中的应用层 Application > transport > inter…

深度补全网络:如CSPN++填补稀疏点云的深度信息

深度补全网络:CSPN填补稀疏点云的深度信息 深度补全(Depth Completion)是计算机视觉中的一个重要任务,旨在从稀疏的深度测量中恢复密集的深度图。CSPN(Convolutional Spatial Propagation Network)是这一领域的前沿方法之一。 CSPN概述 CSPN是对原始CSPN…

QT网络拓扑图绘制实验

前言 在网络通讯中,我qt常用的是TCP或者UDP协议,就比方说TCP吧,一台服务器有时可能会和多台客户端相连接,我之前都是处理单链接情况,最近研究图结构的时候,突然就想到了这个问题。那么如何解决这个问题呢&…

DNS主从同步实验

dns域名解析原理 实验步骤1、主dns要完成dns解析:192.168.21.128 [rootlocalhost ~]# yum install bind -y [rootlocalhost ~]# systemctl start named [rootlocalhost ~]# vim /etc/named.conf options { listen-on port 53 { any; }; direct…

知识了解03——怎么解决使用npm包下载慢的问题?

1、为什么使用npm下载包会下载的慢 因为使用npm下载包时,默认使用国外服务器进行下载,此时的网络传输需要经过漫长的海底电缆,因此下载速度会变慢 2、怎么解决?(切换镜像源) (1)方…

在Ubuntu系统中安装和升级RabbitVCS

在Ubuntu系统中安装和升级RabbitVCS 目前在ubuntu中使用svn的GUI工具,已经安装了。想升级一下。 当前遇到的问题是,我想用它看看我当前的代码对应的版本号,然后再决定是否update。但是,好像我看不出来。根本不如在windows使用To…

cv::dnn::NMSBoxes和nms-free的比较

1. 原理与目标 cv::dnn::NMSBoxes 基于传统的非极大值抑制(NMS)算法,通过交并比(IoU)筛选重叠框,保留置信度最高的框,抑制冗余检测。支持变体如 Soft-NMS(通过降低分数而非直接抑制&…

React-useImperativeHandle (forwardRef)

我们会遇到这样的场景:某个组件想要暴露一些方法,来供外部组件来调用。例如我们在开发form表单的时候,就需要把设置表单值、重置值、提交等方法暴露给外部使用。会有如下代码: import { forwardRef } from react;const Form for…

多人五子棋联机对战平台 测试报告

目录 项目介绍 测试用例设计 部分功能测试示例 自动化测试 测试范围 排除范围 自动化测试目录​编辑 执行全部自动化测试用例 性能说明 总结 性能测试 结果分析 测试总结 项目介绍 该项目基于WebSocket实现实时通信,采用SSM框架构建在线五子棋多人联机…

JAVAEE(网络原理—UDP报头结构)

我们本篇文章要讲的是UDP的报头结构以及注意事项。 下面呢,我先说一下UDP是什么? 1.UDP是什么? UDP是一种网络协议。网络协议是计算机网络中,为了使不同设备之间能够准确、高效地进行数据交换和通信,而预先制定的一…

STM32学习笔记汇总

所有学习资料均参考b站江科大,和铁山羊 一.创建工程(比较麻烦,而且时间长了就容易忘记) 二.点灯大师(成功的第一步) 三.不同的烧录器使用(Jlink-stlink)