TA-Lib学习研究笔记(二)——Overlap Studies上
TA-Lib学习研究笔记(二)——Overlap Studies
1. Overlap Studies 指标
['BBANDS', 'DEMA', 'EMA', 'HT_TRENDLINE', 'KAMA', 'MA', 'MAMA', 'MAVP', 'MIDPOINT', 'MIDPRICE', 'SAR', 'SAREXT', 'SMA', 'T3', 'TEMA', 'TRIMA', 'WMA']
2.数据准备
get_data函数参数(代码,起始时间,终止时间)
返回dataframe 变量df ,column如下:
ts_code,trade_date,open,high,low,close,pre_close,change,pct_chg,vol,amount
以000002代码测试,2021年的数据,程序示例:
import numpy as np
import talib as tlb
import matplotlib.pyplot as plt
import pandas as pd
from sqlalchemy import create_engineif __name__ == '__main__':#matplotlib作图设置plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号#数据获取start_date = '2021-01-01'end_date = '2022-01-01'df = get_data('000002', start_date, end_date)
3.指标学习测试
(1)BBANDS
函数名:BBANDS
名称: 布林线指标
简介:其利用统计原理,求出股价的标准差及其信赖区间,从而确定股价的波动范围及未来走势,利用波带显示股价的安全高低价位,因而也被称为布林带。
语法:
upperband, middleband, lowerband = BBANDS(close, timeperiod=5, nbdevup=2, nbdevdn=2, matype=0)
参数:
(1)close:收盘价。
(2)timeperiod:计算的周期。
(3) nbdevup:上限价格相对于周期内标准偏差的倍数,取值越大,则上限越大,通道越宽。
(4)nbdevdn:下限价格相对于周期内标准偏差的倍数,取值越大,则下限越大,通道越宽。
(5)matype:平均值计算类型,0代表简单一定平均,还可以有加权平均等方式。
df['upper'], df['middle'], df['lower'] = tlb.BBANDS(df['close'], timeperiod=20, nbdevup=2, nbdevdn=2, matype=0)# 做图df[['close','upper','middle','lower']].plot(title='布林线')plt.grid() #启用网格plt.legend(['close', 'upper', 'middle', 'lower']) # 设置图示plt.show()
执行效果:

(2)DEMA双指数平均线
函数名:DEMA
名称: 双移动平均线
简介:两条移动平均线来产生趋势信号,较长期者用来识别趋势,较短期者用来选择时机。正是两条平均线及价格三者的相互作用,才共同产生了趋势信号。
output = talib.DEMA(close, timeperiod)
df['DEMA'] = tlb.DEMA(df['close'], timeperiod=20)# 做图
df[['close','DEMA']].plot(title='双移动平均线')
plt.grid() #启用网格
plt.legend(['close','DEMA']) # 设置图示
plt.show()

(3)EMA
函数名:EMA Exponential Moving Average
名称: 指数平均数
简介:是一种趋向类指标,其构造原理是仍然对价格收盘价进行算术平均,并根据计算结果来进行分析,用于判断价格未来走势的变动趋势。
real = EMA(close, timeperiod=20)
df['EMA'] = tlb.EMA(df['close'], timeperiod=20)# 做图
df[['close','EMA']].plot(title='指数平均数')
plt.grid() #启用网格
plt.legend(['close','EMA']) # 设置图示
plt.show()

(4)HT_TRENDLINE
函数名:HT_TRENDLINE
名称: 希尔伯特瞬时变换
简介:是一种趋向类指标,其构造原理是仍然对价格收盘价进行算术平均,并根据计算结果来进行分析,用于判断价格未来走势的变动趋势。
real = HT_TRENDLINE(close)
df['HT_TRENDLINE'] = tlb.HT_TRENDLINE(df['close'])# 做图
df[['close','HT_TRENDLINE']].plot(title='希尔伯特瞬时变换')
plt.grid() #启用网格
plt.legend(['close','HT_TRENDLINE']) # 设置图示
plt.show()

(5)KAMA
名称:KAMA Kaufman Adaptive Moving Average 考夫曼自适应移动平均线
简介:短期均线贴近价格走势,灵敏度高,但会有很多噪声,产生虚假信号;长期均线在判断趋势上一般比较准确,但是长期均线有着严重滞后的问题。我们想得到这样的均线,当价格沿一个方向快速移动时,短期的移动平均线是最合适的;当价格在横盘的过程中,长期移动平均线是合适的。
语法:
real = KAMA(close, timeperiod=30)
df['KAMA'] = tlb.KAMA(df['close'], timeperiod=30)# 做图
df[['close','KAMA']].plot(title='考夫曼自适应移动平均线')
plt.grid() #启用网格
plt.legend(['close','KAMA']) # 设置图示
plt.show()

(6)MA
函数名:MA - Moving average 移动平均线
名称: 移动平均线
简介:移动平均线,Moving Average,简称MA,原本的意思是移动平均,由于将其制作成线形,所以一般称之为移动平均线,简称均线。它是将某一段时间的收盘价之和除以该周期。 比如日线MA5指5天内的收盘价除以5 。
语法:
real = MA(close, timeperiod=30, matype=0)
df['MA5'] = tlb.MA(df['close'], timeperiod=5, matype=0)
df['MA10'] = tlb.MA(df['close'], timeperiod=10, matype=0)
df['MA30'] = tlb.MA(df['close'], timeperiod=30, matype=0)# 做图
df[['close','MA5','MA10','MA30']].plot(title='移动平均线')
plt.grid() #启用网格
plt.legend(['close','MA5','MA10','MA30']) # 设置图示
plt.show()

(7)MAMA
MAMA是MESA自适应移动平均线,全称为MESA Adaptive Moving Average。它是根据价格的移动平均线和自适应移动平均线来计算的,它的设计初衷是能够更好地适应不同市场的变化。
指标作用
MAMA指标使用了一种称为Hilbert变换的数学方法来计算价格的移动平均线。这种方法可以将价格的周期性变化进行平滑处理,减少了滞后性,使得MAMA指标能够更快地响应市场的变化。
MAMA指标由两条线组成:MAMA线和FAMA线。MAMA线是根据价格的移动平均线计算得出的,它可以显示价格的趋势方向。FAMA线是根据MAMA线计算得出的,它可以显示价格的趋势变化的速度。
MAMA指标的应用主要有两个方面:
- 确定趋势:当MAMA线向上穿过FAMA线时,可以视为买入信号,表示价格可能会上涨;当MAMA线向下穿过FAMA线时,可以视为卖出信号,表示价格可能会下跌。
- 确定超买超卖:当MAMA线超过了价格的最高点时,可以视为超买信号,表示价格可能会回调;当MAMA线低于价格的最低点时,可以视为超卖信号,表示价格可能会反弹。
语法:
mama, fama = MAMA(close)
df['mama'], df['fama'] = tlb.MAMA(df['close'])
# 做图
df[['close','mama','fama']].plot(title='自适应移动平均线')
plt.grid() #启用网格
plt.legend(['close','mama','fama']) # 设置图示
plt.show()

(8)MAVP
Moving average with variable period,计算带有可变周期的移动平均线。
语法:
下面是 MAVP 函数的参数说明:
- close: 必需参数,表示收盘价序列的数组或 pandas Series。
- periods: 必需参数,表示要进行移动平均的周期值。它是一个包含多个周期值的数组。
- minperiod: 可选参数,表示移动平均线计算的最小周期。默认值为 2。
- maxperiod: 可选参数,表示移动平均线计算的最大周期。默认值为 30。
- matype: 可选参数,表示移动平均线的类型。可以选择以下类型:
0: 简单移动平均线(SMA)
1: 加权移动平均线(WMA)
2: 指数移动平均线(EMA)
3: 光滑移动平均线(SMA with offset)默认值为 0。
real = MAVP(close, periods, minperiod=2, maxperiod=30, matype=0)
注意:periods参数必须是numpy.array ,类型必须是float ,长度与close的一致。
测试了多次,才搞明白了periods参数。开始总是报不是浮点数,periods用浮点数,报错:Exception: input array lengths are different 。
原因就是close和periods长度必须一致。
#periods 必须是numpy.array ,类型必须是float ,长度与close的一致。测试用赋值都是5,一周的交易日
length = len(df['close'])
value = 5
periods = np.full(length, value, dtype=float) df['MAVP'] = tlb.MAVP(df['close'], periods, minperiod=5, maxperiod=10, matype=0)# 做图
df[['close','MAVP']].plot(title='变周期移动平均线')
plt.grid() #启用网格
plt.legend(['close','MAVP']) # 设置图示
plt.show()

(9)MIDPOINT - MidPoint over period
MIDPOINT函数用于计算指定期间内的中点值
语法:
real = MIDPOINT(close, timeperiod=14)
示例:
df['MIDPOINT'] = tlb.MIDPOINT(df['close'], timeperiod=14)
# 做图
df[['close','MIDPOINT']].plot(title='MidPoint over period')
plt.grid() #启用网格
plt.legend(['close','MIDPOINT']) # 设置图示
plt.show()

(10)MIDPRICE
MIDPRICE - Midpoint Price over period
在TA-Lib中,MIDPRICE函数用于计算指定期间内的中间价格。它基于最高价、最低价来计算一个期间内的中间价格。
参数:
- high:一个包含最高价序列的数组或指标。
- low:一个包含最低价序列的数组或指标。
- timePeriod:期间长度,表示要计算中间价格的期间数。
语法:
real = MIDPRICE(high, low, timeperiod=14)
示例:
df['MIDPRICE'] = tlb.MIDPRICE(df['high'], df['low'],timeperiod=14)
# 做图
df[['high','low','MIDPRICE']].plot(title='Midpoint Price over period')
plt.grid() #启用网格
plt.legend(['high','low','MIDPRICE']) # 设置图示
plt.show()

相关文章:
TA-Lib学习研究笔记(二)——Overlap Studies上
TA-Lib学习研究笔记(二)——Overlap Studies 1. Overlap Studies 指标 [BBANDS, DEMA, EMA, HT_TRENDLINE, KAMA, MA, MAMA, MAVP, MIDPOINT, MIDPRICE, SAR, SAREXT, SMA, T3, TEMA, TRIMA, WMA]2.数据准备 get_data函数参数(代码&#x…...
牛客java基础考点1 标识符和变量
牛客java基础考点1 标识符和变量 标识符 字母和数字: 标识符由字母、数字、下划线(_)和美元符号($)组成。其中,标识符必须以字母、下划线或美元符号开头。大小写敏感: Java 是大小写敏感的语言…...
Qt将打印信息输出到文件
将打印信息(qDebug、qInfo、qWarning、qCritial等)输出到指定文件来以实现简单的日志功能。 #include "mainwindow.h" #include <QApplication> #include <QLoggingCategory> #include <QMutex> #include <QDateTime>…...
【risc-v】易灵思efinix FPGA sapphire_soc IP配置参数分享
系列文章目录 分享一些fpga内使用riscv软核的经验,共大家参考。后续内容比较多,会做成一个系列。 本系列会覆盖以下FPGA厂商 易灵思 efinix 赛灵思 xilinx 阿尔特拉 Altera 本文内容隶属于【易灵思efinix】系列。 前言 在efinix fpga中使用riscv是一…...
直播的种类及类型
随着网络技术和移动设备的普及,直播已经成为人们娱乐、学习、商业交流等众多领域的重要工具。 直播的种类主要有以下几种: 1.视频直播:这是最常见的直播形式,包括电商直播、婚庆直播、培训直播、家居直播等。 2.图文直播:这种直播形式包括PPT互动直播…...
时间序列数据压缩算法简述
本文简单介绍了时间序列压缩任务的来源,压缩算法的分类,并对常见压缩算法的优缺点进行了简介,爱码士们快来一探究竟呀! 引言 时间序列数据是在许多应用程序和领域中生成的一种基本数据类型,例如金融、医疗保健、交通和…...
智能锁-SI522TORC522方案资料
南京中科微这款SI522目前完全PinTOPin兼容的NXP:RC522、CV520 复旦微:FM17520、FM17522/FM17550 瑞盟:MS520、MS522 国民技术:NZ3801、NZ3802 SI522 是应用于13.56MHz 非接触式通信中高集成度读写卡系列芯片中的一员。是NXP 公司针对&quo…...
redux(4) -RTK简单使用
简单使用 1、下载 npm i reduxjs/toolkit react-redux 2、创建 1、在redux/user.js中创建模块user。从reduxjs/toolkit中引入createSlice创建模块片段,我们需要传入name、初始数据initialState、改state的reducers等。最后需要导出reducer和action。 代码如下&a…...
开源运维监控系统-Nightingale(夜莺)应用实践(未完)
一、前言 某业务系统因OS改造,原先的Zabbix监控系统推倒后未重建,本来计划用外部企业内其他监控系统接入,后又通知需要自建才能对接,考虑之前zabbix的一些不便,本次计划采用一个类Prometheus的监控系统,镜调研后发现Nightingale兼容Prometheus,又有一些其他功能增强,又…...
深入理解GMP模型
1、GMP模型的设计思想 1)、GMP模型 GMP分别代表: G:goroutine,Go协程,是参与调度与执行的最小单位M:machine,系统级线程P:processor,包含了运行goroutine的资源&#…...
数学建模-基于集成学习的共享单车异常检测的研究
基于集成学习的共享单车异常检测的研究 整体求解过程概述(摘要) 近年来,共享单车的快速发展在方便了人们出行的同时,也对城市交通产生了一定的负面影响,其主要原因为单车资源配置的不合理。本文通过建立单车租赁数量的预测模型和异常检测模型…...
C语言-内存分配
内存分配 1. 引入 int nums[10] {0}; //对int len 10; int nums[len] {0}; //错是因为系统的内存分配原则导致的2. 概述 在程序运行时,系统为了 更好的管理进程中的内存,所以有了 内存分配机制。 分配原则: 2.1 静态分配 静态分配原…...
算法工程师-机器学习面试题总结(1)
目录 1-1 损失函数是什么,如何定义合理的损失函数? 1-2 回归模型和分类模型常用损失函数有哪些?各有什么优缺点 1-3 什么是结构误差和经验误差?训练模型的时候如何判断已经达到最优? 1-4 模型的“泛化”能力是指&a…...
【蓝桥杯选拔赛真题73】Scratch烟花特效 少儿编程scratch图形化编程 蓝桥杯创意编程选拔赛真题解析
目录 scratch烟花特效 一、题目要求 编程实现 二、案例分析 1、角色分析...
Juniper EX系列交换机端口配置操作
配置物理端口参数 userhost#set interface ge-slot/pic/port decription description #配置端口描述 userhost#set interface ge-slot/pic/port mtu mtu-number #配置端口MTU userhost#set interface ge-slot/pic/port ether-options speed (10m | 100m | 1g) #配置端口速率…...
2.1 Linux C 编程
一、Hello World 1、在用户根目录下创建一个C_Program,并在这里面创建3.1文件夹来保存Hellow World程序; 2、安装最新版nvim ①sudo apt-get install ninja-build gettext cmake unzip curl ②sudo apt install lua5.1 ③git clone https://github.…...
服务器数据恢复—ocfs2文件系统被格式化为其他文件系统如何恢复数据?
服务器故障: 由于工作人员的误操作,将Ext4文件系统误装入到存储中Ocfs2文件系统数据卷上,导致原Ocfs2文件系统被格式化为Ext4文件系统。 由于Ext4文件系统每隔几百兆就会写入文件系统的原始信息,原Ocfs2文件系统数据会遭受一定程度…...
海云安参与制定《信息安全技术 移动互联网应用程序(App)软件开发工具包(SDK)安全要求》标准正式发布
近日,由TC260(全国信息安全标准化技术委员会)归口 ,主管部门为国家标准化管理委员会,深圳海云安网络安全技术有限公司(以下简称“海云安”)等多家相关企事业单位共同参与编制的GB/T 43435-2023《…...
如何调用 API | 学习笔记
开发者学堂课程【阿里云 API 网关使用教程:如何调用 API】学习笔记,与课程紧密联系,让用户快速学习知识。 课程地址:阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台 如何调用 API 调用 API 的三要素 要调用 API 需要三…...
关于云备份项目的HTTP协议字段理解
200状态码 给客户端返回该文件全部内容的响应 304状态码 206状态码 和If-Ranage请求头字段搭配使用,...
为什么你需要KKS-HF_Patch?解锁Koikatsu Sunshine完整游戏体验的终极指南
为什么你需要KKS-HF_Patch?解锁Koikatsu Sunshine完整游戏体验的终极指南 【免费下载链接】KKS-HF_Patch Automatically translate, uncensor and update Koikatsu Sunshine! 项目地址: https://gitcode.com/gh_mirrors/kk/KKS-HF_Patch 你是否曾经因为语言障…...
CasRel关系抽取实战:对接Airflow构建SPO抽取ETL调度流水线
CasRel关系抽取实战:对接Airflow构建SPO抽取ETL调度流水线 1. 项目背景与价值 在日常业务中,我们经常需要从大量文本数据中提取结构化信息。比如从新闻文章中提取人物关系,从产品描述中提取规格参数,从客服对话中提取用户诉求等…...
基于事件触发机制,具有延时矩阵的固定时间共识
基于事件触发机制,具有延时矩阵的固定时间共识在分布式系统中,共识问题一直是个老大难。今天咱们聊聊一个挺有意思的解决方案——基于事件触发机制,带有延时矩阵的固定时间共识。听起来有点高大上?别急,咱们慢慢拆解。…...
2026知识付费平台选择指南:学习者与创作者如何各取所需
2026年,知识付费行业已进入成熟期。据艾媒咨询(iiMedia Research)预测,2026 年中国知识付费市场规模将突破3000 亿元,较 2025 年的 2808.8 亿元持续增长。然而,平台分化加剧——有的平台陷入内容同质化困境…...
使用Matlab分析与可视化伏羲模型输出结果
使用Matlab分析与可视化伏羲模型输出结果 最近在做一个气象数据分析的项目,团队用伏羲模型跑完预测后,拿到了一大堆JSON格式的结果文件。数据是有了,但怎么把它变成能看懂、能汇报的图表和报告,成了个新问题。直接用代码写图表太…...
GCC开发者转LLVM必看:模块化设计带来的5个关键工作流变革
GCC开发者转LLVM必看:模块化设计带来的5个关键工作流变革 当GCC开发者第一次接触LLVM时,往往会惊讶于其完全不同的设计哲学。就像从单块巨石建筑转向预制模块化结构,LLVM的三段式架构不仅改变了代码的组织方式,更从根本上重塑了编…...
3步掌握BilibiliDown:B站视频下载全攻略与效率提升指南
3步掌握BilibiliDown:B站视频下载全攻略与效率提升指南 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader 😳 项目地址: https://gitcode.com/gh_mirrors/…...
基于图像的深度学习与MVS三维重建全流程服务 支持远程部署定制 含pcl/c++/matlab...
基于图像的深度学习MVS三维重建全流程 可远程部署,可定制 点云pcl,c,matlab开发,基于图像三维重建,点云算法开发 只需要提供摄的图像,即可生成完整的三维模型(大小场景均可)上周去爬了个浙西的小众山&#…...
智能网联汽车(CAV)缩略语大全:从C-V2X到VRUCW,一文搞懂所有专业术语
智能网联汽车(CAV)术语全解析:从技术原理到场景应用 在智能交通系统快速发展的今天,智能网联汽车(Connected-Automated Vehicle, CAV)已经成为行业变革的核心驱动力。无论是汽车工程师、软件开发人员还是交通规划者,都需要掌握这一领域的关键…...
C盘清理与优化:为Realistic Vision V5.1模型文件腾出空间
C盘清理与优化:为Realistic Vision V5.1模型文件腾出空间 你是不是也遇到过这种情况:电脑C盘突然飘红,系统提示空间不足,想下载个新的AI模型,比如最近很火的Realistic Vision V5.1,却发现根本没地方放。看…...
