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_engine

if __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指标的应用主要有两个方面:

  1. 确定趋势:当MAMA线向上穿过FAMA线时,可以视为买入信号,表示价格可能会上涨;当MAMA线向下穿过FAMA线时,可以视为卖出信号,表示价格可能会下跌。
  2. 确定超买超卖:当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()

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

msyql迁移到mongodb

关系型数据库迁移到mongodb的理由 高并发需求,关系型数据库不容易扩展 快速迭代 灵活的json模式 大数据量需求 应用迁移难度: 关系型到关系 oracle-》mysql oracle -》 postgresql 关系到文档- oracle -》 mongodb 需要考虑: 总体架构&#…

阿里云Windows server2016 安装Docker

阿里云Windows server2016 安装Docker 1 软件环境介绍2 下载更新2.1 windowsR 输入sconfig2.2 下载最新版的安装包,安装并重启2.3 下载并安装更新2.4 以管理员方式运行powershell2.5 将Tls修改成二级2.6 安装NuGet服务2.7 安装docker模块2.7 安装 docker包 32.8 查看…

Ajax的使用方法

1,什么是Ajax? Ajax(异步Javascript和XML),是指一种创建交互式网页应用的网页开发技术。 2,Ajax的作用 Ajax可以使网页实现异步更新----即在不更新整个页面的情况下实现对某一部分进行更新。 简单来说Ajax就是用于连接…

顶级大厂Quora如何优化数据库性能?

Quora 的流量涉及大量阅读而非写入,一直致力于优化读和数据量而非写。 0 数据库负载的主要部分 读取数据量写入 1 优化读取 1.1 不同类型的读需要不同优化 ① 复杂查询,如连接、聚合等 在查询计数已成为问题的情况下,它们在另一个表中构…

HT for Web (Hightopo) 使用心得(5)- 动画的实现

其实,在 HT for Web 中,有多种手段可以用来实现动画。我们这里仍然用直升机为例,只是更换了场景。增加了巡游过程。 使用 HT 开发的一个简单网页直升机巡逻动画(Hightopo 使用心得(5)) 这里主…

纯js实现录屏并保存视频到本地的尝试

前言:先了解下:navigator.mediaDevices,mediaDevices 是 Navigator 只读属性,返回一个 MediaDevices 对象,该对象可提供对相机和麦克风等媒体输入设备的连接访问,也包括屏幕共享。 const media navigator…

【brew】Mac上安装vue3

先安装node。 这里我从其他博客找的方案,原始脚本下载太慢了。 cnpm的安装: 让npm更快一点。 npm install -g cnpm --registryhttps://registry.npm.taobao.org安装vue脚手架 2.0版本:sudo npm install -g vue-cli 3.0版本: sud…

2023.11.26使用opencv调节图片亮度

2023.11.26使用opencv调节图片亮度 测试一些opencv对图片的处理效果,方法比较简单,找出所有像素点,然后将RGB三色的亮度分别进行调节即可,同类可以进行像素级的处理。测试结果和项目代码如下: 使用OpenCV调节图拍亮…

Unity引擎:创造无限可能的游戏开发平台

Unity引擎:创造无限可能的游戏开发平台 一、Unity引擎概述1.1 什么是Unity引擎?1.2 Unity引擎的特点和优势 二、Unity开发环境和工具2.1 Unity编辑器2.2 支持的平台2.3 脚本语言2.4 图形和音频工具 三、Unity游戏开发流程四、示例应用场景五、结论&#…

java使用poi读写excel(处理上下标和科学计数法)

Background 要读写如下图所示的excel,符号和单位中包含上下标,在读写时需要特殊处理;取值列中是科学计数法,读写时需要特殊处理;excel中包含多个sheet,读的时候把所有sheet的数据读出来,写的时候…

分割掩模 VS 掩膜

掩膜 Mask分割掩模 Segmentation Mask总结示例 掩膜 Mask “掩膜” 是指一种用于 标识或遮蔽图像中特定区域 的 图像。 在图像处理中,掩膜通常是一个 二值图像,其中的 像素值为 0 或 1。binary Mask 叫做二元掩膜,如下图所示: 这…

Airtest进阶使用篇!提高脚本稳定性 + 批量运行脚本!

一、背景 今天彭于晏为大家分享Airtest进阶使用篇,主要包含两块的内容: 提高脚本稳定性批量运行脚本生成测试报告 二、提高脚本稳定性 1、添加全局配置: #全局设置 ST.FIND_TIMEOUT10 #设置隐式等待时长,默认识别图片时间是30秒,可改为…

[黑皮系列] 计算机网络:自顶向下方法(第8版)

文章目录 《计算机网络:自顶向下方法(第8版)》简介作者目录前言配套公开课 《计算机网络:自顶向下方法(第8版)》 出版信息: 原作名: Computer Networking: A Top-Down Approach 作者: [美] Jame…

运维知识点-SQLServer/mssql

SQLServer/mssql Microsoft structed query language常见注入提权 技术点:0x00 打点前提 0x01 上线CS0x02 提权0x03 转场msf0x04 抓取Hash0x05 清理痕迹 Microsoft structed query language 常见注入 基于联合查询注入 order by 判断列数(对应数据类型…

从0开始学习JavaScript--JavaScript 单例模式

单例模式是一种常见的设计模式,它保证一个类仅有一个实例,并提供一个全局访问点。在 JavaScript 中,单例模式通常用于创建唯一的对象,以确保全局只有一个实例。本文将深入探讨单例模式的基本概念、实现方式,以及在实际…

const 和 constexpr 深入学习

在 C 中,const 和 constexpr 都可以用来修饰对象和函数。修饰对象时,const 表示它是常量,而 constexpr 表示它是一个常量表达式。常量表达式必须在编译时期被计算1。修饰函数时,const 只能用于非静态成员的函数,而 con…

Secure Software Lifecycle Management (SSLM)安全软件生命周期管理

文章目录 前言一、现代理念二、安全的软件生命周期管理总结 前言 The concept of integrating security into the software development process is not new. While I cannot definitively assert that Microsoft was the pioneer of this concept, the Secure Development Li…

清理docker Build Cache缓存文件

使用docker构建镜像,发现docker的overlay2文件会越来越大。 使用命令查看docker系统占用资源: docker system df 可以看到已经占用了26.7GB,清理这个缓存 docker builder prune 再次查看,已经没有缓存了,清理成功。 …

【UE】中文字体 发光描边材质

效果 步骤 1. 先将我们电脑中存放在“C:\Windows\Fonts”路径下的字体导入UE 点击“全部选是” 导入成功后如下 2. 打开导入的“SIMSUN_Font”,将字体缓存类型设置为“离线” 点击“是” 这里我选择:宋体-常规-20 展开细节面板中的导入选项 勾选“使用距…