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

  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()

在这里插入图片描述

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

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

相关文章

javaee实验:文件上传及截器的使用

目录 文件上传ModelAttribute注解实验目的实验内容实验过程项目结构编写代码结果展示 文件上传 Spring MVC 提供 MultipartFile 接口作为参数来处理文件上传。 MultipartFile 提供以下方法来获取上传的文件信息:  getOriginalFilename 获取上传的文件名字&#x…

HttpRunner自动化测试之响应中文乱码处理

响应中文乱码: 当调用接口,响应正文返回的中文是乱码时,一般是响应正文的编码格式不为 utf-8 导致,此时需要根据实际的编码格式处理 示例: 图1中 extract 提取title标题,output 输出 title 变量值&#x…

【Unity动画】状态机中层的融合原理与用法详解

1. 状态机概念介绍 在Unity中,动画状态机(Animator State Machine)是一种强大的工具,用于控制游戏对象的动画行为。动画状态机由多个动画状态Animation和过渡条件Transition、层组成!而层(Layers&#xff…

中序和前/后序遍历构造二叉树———通用做法

1. 前序和中序遍历 **思路:我们每一次一定可以根据递归确定根节点是哪个,就是前序第一个数,然后找中序遍历这个点,看左子树有几个节点,右子树有几个节点,然后就可以根据节点个数,递归左子树和右…

Swing程序设计(7)JPane面板,滑动面板

文章目录 前言一、JPane面板,滑动面板是什么?二、实操展示 1.JPane面板2.JScrollPane面板总结 前言 该篇博客介绍Java的Swing程序中JPane面板以及,滑动面板的使用。面板的使用,各个组件在不同的面板上被不同地摆放,让插…

车联网安全相关标准汇总

以下是与车联网安全相关的国家标准的一些例子: 一. ISO/SAE 21434:2020 - 道路车辆网络及通信系统安全性 - 工程标准和管理指南 ISO/SAE 21434:2020是一项关于车辆网络和通信系统安全性的国际标准,由国际标准化组织(ISO)和Socie…

Rust 语言:认识 Rust

本心、输入输出、结果 文章目录 Rust 语言:认识 Rust前言Rust的特点Rust LOGO Rust 在IT行业的应用前景Rust 是一门系统级编程语言相关链接花有重开日,人无再少年实践是检验真理的唯一标准 Rust 语言:认识 Rust 编辑:简简单单 Onl…

常见的LLM推理加速解决方案

KV Cacheint量化PagedAttentionGQASpeculative Decoding codeAccelerating Generative AI with PyTorch II: GPT, FastFast Inference from Transformers via Speculative Decoding 参考 PyTorch造大模型“加速包”,不到1000行代码提速10倍!英伟达科学…

【ArcGIS Pro微课1000例】0039:制作全球任意经纬网的两种方式

本文讲解在ArcGIS Pro中制作全球任意经纬网的两种方式。 文章目录 一、生成全球经纬网矢量1. 新建地图加载数据2. 创建经纬网矢量数据二、布局生成经纬网1. 新建布局2. 创建地图框2. 创建经纬网一、生成全球经纬网矢量 以1:100万比例尺地图分幅为例,创建经差6、维差4的经纬网…

51. N 皇后

题目介绍 按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。 n 皇后问题 研究的是如何将 n 个皇后放置在 nn 的棋盘上,并且使皇后彼此之间不能相互攻击。 给你一个整数 n ,返回所有不同的 n 皇后问题 的解决方案…

AURIX TC芯片中DSU实现安全启动

AURIX TC芯片中的DSU(Digital Signature Unit)是用于实现安全启动机制的关键模块。它负责对引导代码进行签名验证和核实,确保系统从可信源启动,防止恶意软件的植入和篡改。 DSU模块的主要功能包括: 1. 数字签名验证&…

价值投资选股的方法

价值投资法是一种长期投资策略,其核心思想是寻找被市场低估的股票,即股票的市场价格低于其内在价值。这种策略认为,投资者应该关注公司的基本面,如盈利能力、成长潜力、财务状况等,而不是短期的市场波动。以下是价值投…

2312skia,17路径和api概述

SkPath概述 路径包含可描边或填充的线条和曲线.轮廓由一系列相连的直线和曲线组成.路径可包含零个,多个等值线.每条直线和曲线都由动词,点和可选Path_Conic_Weight描述. 每对连接的直线和曲线共享公共点;如,包含两条连接线的路径按Path_Verb序列描述:SkPath::kMove_Verb,SkPa…

华为OD机试真题-电脑病毒感染-2023年OD统一考试(C卷)

题目描述: 一个局域网内有很多台电脑,分别标注为0 - N-1的数字。相连接的电脑距离不一样,所以感染时间不一样,感染时间用t表示。 其中网络内一个电脑被病毒感染,其感染网络内所有的电脑需要最少需要多长时间。如果最后有电脑不会感染,则返回-1 给定一个数组times表示一个…

华为OD机试真题【异常的打卡记录】

1、题目描述 【异常的打卡记录】 考勤记录是分析和考核职工工作时间利用情况的原始依据,也是计算职工工资的原始依据,为了正确地计算职工工资和监督工资基金使用情况, 公司决定对员工的手机打卡记录进行异常排查。 如果出现以下两种情况&…

Tektronix泰克示波器

一、what’s the oscilloscope? 【ref】https://www.tek.com.cn/blog/what-is-an-oscilloscope 二、基础知识 1、带宽:100Mhz;采样率:2.5GS/s 1GS/s指的是采样率,前面大写的S是sample采样的意思 后面的s是秒 也就是示波…

软考2016年上半年第六题(适配器模式)与手术训练系统项目适配器模式的应用

软考2016年上半年第六题 public class Address {public void street(){System.out.println("a");};public void zip(){};public void city(){}; }package org.example.适配器模式;/*** 适配器模式(Adapter Pattern)是作为两个不兼容的接口之间…

Python自动化办公入门教程

个人网站 文章首发于公众号:小肖学数据分析 1. 简介 在职场中,自动化已经成为提升工作效率的关键手段。作为一种强大且易于学习的编程语言,Python为执行各种自动化任务提供了众多便利。 无论是数据分析、报告生成、邮件处理还是网络数据采…

ocr识别过程中的python知识点总结

一、Python [::-1]的简单理解与用法 从结果上来看,[::-1]的作用是对列表进行翻转,比方说: a [1, 2, 3, 4, 5] print(a[::-1]) b "12345" print(b[::-1]) 输出: [5, 4, 3, 2, 1] 54321 可以发现这个东西的用法和re…

Beta冲刺随笔-DAY4-橘色肥猫

这个作业属于哪个课程软件工程A这个作业要求在哪里团队作业–站立式会议Beta冲刺作业目标记录Beta冲刺Day4团队名称橘色肥猫团队置顶集合随笔链接Beta冲刺笔记-置顶-橘色肥猫-CSDN博客 文章目录 SCRUM部分站立式会议照片成员描述 PM报告项目程序/模块的最新运行图片…