Python实现BIAS工具判断信号:股票技术分析的工具系列(4)

Python实现BIAS工具判断信号:股票技术分析的工具系列(4)

    • 介绍
      • 算法解释
    • 代码
      • rolling函数介绍
      • 完整代码
        • data代码
        • BIAS.py


介绍

在股票技术分析中,BIAS(乖离率)是一种常用的技术指标,用于判断股票价格与其移动平均线之间的偏离程度,进而指导投资者进行交易决策。本文将介绍如何使用Python编程语言实现BIAS工具,以及如何利用该工具来分析股票价格走势。

先看看官方介绍:

BIAS(乖离率)
用法
1.本指标的乖离极限值随个股不同而不同,使用者可利用参考线设定,固定其乖离范围;
2.当股价的正乖离扩大到一定极限时,股价会产生向下拉回的作用力;
3.当股价的负乖离扩大到一定极限时,股价会产生向上拉升的作用力;
4.本指标可设参考线。

算法解释

BIAS1 :(CLOSE-MA(CLOSE,N1))/MA(CLOSE,N1)*100;
BIAS2 :(CLOSE-MA(CLOSE,N2))/MA(CLOSE,N2)*100;
BIAS3 :(CLOSE-MA(CLOSE,N3))/MA(CLOSE,N3)*100;

优势:

优势描述
个性化设置乖离范围BIAS指标的乖离极限值随个股不同而不同,使用者可以根据具体情况进行参考线的设定,固定其乖离范围,使得指标更适合不同个股的特性。
预测股价走势当股价的正乖离扩大到一定极限时,股价会产生向下拉回的作用力,而当股价的负乖离扩大到一定极限时,股价会产生向上拉升的作用力,有助于预测股价的走势。
可设参考线BIAS指标可设参考线,投资者可以根据自己的需求和策略,设定适当的参考线,以便更好地辅助决策。

劣势:

劣势描述
单一性BIAS指标相对较为单一,仅从价格的角度进行分析,可能无法全面反映市场的复杂情况,投资者需要结合其他指标和分析方法进行综合判断。
适用性限制BIAS指标的应用受限于个股的特性和行情状况,不同个股的乖离率极限值不同,可能需要投资者具备一定的经验和技术分析能力,才能准确把握指标的含义和使用方法。
缺乏明确的买卖信号BIAS指标并没有提供明确的买卖信号,而是提供了一种价差的概念,因此在实际操作中,投资者需要结合其他指标或技术分析方法来确认具体的买卖时机。

代码

rolling函数介绍

rolling 函数通常与其他函数(如 meansumstd 等)一起使用,以计算滚动统计量,例如滚动均值、滚动总和等。

以下是 rolling 函数的基本语法:

DataFrame.rolling(window, min_periods=None, center=False, win_type=None, on=None, axis=0, closed=None)
  • window: 用于计算统计量的窗口大小。
  • min_periods: 每个窗口最少需要的非空观测值数量。
  • center: 确定窗口是否居中,默认为 False
  • win_type: 窗口类型,例如 Noneboxcartriang 等,默认为 None
  • on: 在数据帧中执行滚动操作的列,默认为 None,表示对整个数据帧执行操作。
  • axis: 执行滚动操作的轴,默认为 0,表示按列执行操作。
  • closed: 确定窗口的哪一端是闭合的,默认为 None

完整代码

data代码

这里完整代码中的data部分,阔以通过下面资源文件下载,或者留下邮箱等发送。:

https://download.csdn.net/download/qq_36051316/88896567
BIAS.py

import pandas as pd
import stock_datadata = {'DATE': stock_data.DATE,'CLOSE': stock_data.CLOSE,'HIGH': stock_data.HIGH,'LOW': stock_data.LOW,'OPEN': stock_data.OPEN,'CHANGE': stock_data.CHANGE,'VOL': stock_data.VOL,'CAPITAL': stock_data.CAPITAL
}df = pd.DataFrame(data)def bias(close, n):"""计算乖离率参数:close: pandas.Series,收盘价数据n: int,窗口大小返回:pandas.Series,乖离率数据"""ma = close.rolling(window=n).mean()return (close - ma) / ma * 100def calculate_bias(data, n1, n2, n3, positive_limit, negative_limit):"""计算乖离率指标参数:data: pandas.DataFrame,包含股票数据的DataFramen1: int,第一个窗口大小n2: int,第二个窗口大小n3: int,第三个窗口大小positive_limit: float,正乖离的极限值negative_limit: float,负乖离的极限值返回:pandas.DataFrame,添加了乖离率指标的DataFrame"""data['BIAS1'] = bias(data['CLOSE'], n1)data['BIAS2'] = bias(data['CLOSE'], n2)data['BIAS3'] = bias(data['CLOSE'], n3)# 添加参考线data['POSITIVE_LIMIT'] = positive_limitdata['NEGATIVE_LIMIT'] = negative_limitreturn datadef generate_signals(data, positive_limit, negative_limit, day_index=-1):"""生成信号参数:data: pandas.DataFrame,包含乖离率指标的DataFramepositive_limit: float,正乖离的极限值negative_limit: float,负乖离的极限值day_index: int,要检查的日期索引,默认为最后一天返回:str,表示信号的字符串,可能为"股价可能会向下拉回"、"股价可能会向上拉升"或"无信号""""signals = ""row = data.iloc[day_index]if row['BIAS1'] > positive_limit and row['BIAS2'] > positive_limit and row['BIAS3'] > positive_limit:signals = '股价可能会向下拉回'elif row['BIAS1'] < negative_limit and row['BIAS2'] < negative_limit and row['BIAS3'] < negative_limit:signals = '股价可能会向上拉升'else:signals = '无信号'return signalsn1, n2, n3 = 6, 12, 24
positive_limit = 5  # 正乖离的极限值
negative_limit = -5  # 负乖离的极限值calculate_bias(df, n1, n2, n3, positive_limit, negative_limit)
result = generate_signals(df, positive_limit, negative_limit)
print(result)

positive_limit = 5 # 正乖离的极限值
negative_limit = -5 # 负乖离的极限值

这个需要自己设置:-5 只是一个示例。在实际使用中,可以根据股票的历史数据和市场行情来设定适合的负乖离极限值。负乖离表示股价低于移动平均线的情况,当负乖离扩大到一定程度时,可能会有向上拉升的作用力

在这里插入图片描述

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

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

相关文章

XSS_lab(level1-level5)

level1 直接输入页面没有发现输入框&#xff0c;观察url发现有传参 尝试修改传参为&#xff1a;<script>alert(1)</script> 过啦&#xff01; level2 页面中有输入框&#xff0c;尝试构建语句&#xff1a;<script>alert(1)</script>,传输后查看源代…

[Vulnhub]靶场 Red

kali:192.168.56.104 主机发现 arp-scan -l # arp-scan -l Interface: eth0, type: EN10MB, MAC: 00:0c:29:d2:e0:49, IPv4: 192.168.56.104 Starting arp-scan 1.10.0 with 256 hosts (https://github.com/royhills/arp-scan) 192.168.56.1 …

欧拉回路(Eulerian Path)

1.定义 如果图 G G G(有向图或者无向图)中所有边一次仅且一次行遍所有顶点的通路称作欧拉通路。 如果图 G G G中所有边一次仅且一次行遍所有顶点的回路称作欧拉回路。 具有欧拉回路的图成为欧拉图(简称 E E E图)。具有欧拉通路但不具有欧拉回路的图成为半欧拉图。 顶点可以经…

区块链媒体发布推广10个热门案例解析-华媒舍

区块链技术的发展已经引起了媒体的广泛关注&#xff0c;越来越多的区块链媒体纷纷发布推广相关的热门案例。本文将介绍10个成功的区块链媒体推广案例&#xff0c;并分享它们的成功秘诀&#xff0c;帮助读者更好地了解区块链媒体推广的方法与技巧。 随着区块链技术的成熟和应用场…

Arduino应用开发——使用GUI-Guider制作LVGL UI并导入ESP32运行

Arduino应用开发——使用GUI-Guider制作LVGL UI并导入ESP32运行 目录 Arduino应用开发——使用GUI-Guider制作LVGL UI并导入ESP32运行前言1 使用GUI-Guider设计UI1.1 创建工程1.2 设计UI 2 ESP工程导入UI2.1 移植LVGL2.2 移植UI文件2.3 调用UI文件2.4 烧录测试 结束语 前言 GU…

C# 学习第四弹——字符串

一、char类型的使用 字符使用单引号&#xff0c;单个字符 转义字符是一种特殊的字符变量&#xff0c;以反斜线开头&#xff0c;后跟一个或多个字符。 输出多级目录可以使用 二、字符串的声明和初始化 1、引用字符串常量 引用字符串常量初始化——字符使用单引号&#xff0…

SpringMVC--03--前端传数组给后台

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 案例1乘客个人信息方法1&#xff1a;表单提交&#xff0c;以字段数组接收方法2&#xff1a;表单提交&#xff0c;以BeanListModel接收方法3&#xff1a;将Json对象序…

32单片机基础:PWM驱动舵机,直流电机

PWM驱动舵机 接线图如上图所示。注意&#xff0c;舵机的5V 线不能接到面包板上的正极&#xff0c;面包板上的正极只有3.3V,是STM32提供的&#xff0c;所以要接到STLINK的5V, 我们如何驱动舵机呢&#xff1f;由之前我们介绍原理知道&#xff0c;要输出如下图对应的PWM波形才行…

workstation 用途

一 workstation 用途 强大的桌面虚拟化 允许创造多种操作系统可以不用重启就跨不同操作系统进行操作可以提供隔离的安全环境 连接到vsphere 可以远程登陆服务器管理物理主机和虚拟主机任何时间都可登陆提高虚拟机效率 为任何平台开发和测试 1&#xff09;借助一台单一本地…

lua调用C++函数

第一步搭建lua的环境. win10 lua环境搭建-CSDN博客 我使用的环境是win10vs2015lua54 先来个最简单的lua调用C函数, 无参数无返回值的 第一步:定义C函数. int CTest(lua_State* L) // 返回值是固定的int类型,返回0表示没有返回参数,返回1表示有一个返回参数 {std::cout &l…

【学习心得】响应数据加密的原理与逆向思路

一、什么是响应数据加密&#xff1f; 响应数据加密是常见的反爬手段的一种&#xff0c;它是指服务器返回的不是明文数据&#xff0c;而是加密后的数据。这种密文数据可以被JS解密进而渲染在浏览器中让人们看到。 它的原理和过程图如下&#xff1a; 二、响应数据加密的逆向思路 …

安装OneNote for Win10 | Win10/Win11

前言 PC端的OneNote分为2个版本&#xff0c;分别是Microsoft Store版本和Office版本&#xff0c;Microsoft Store版本即为OneNote for Win10&#xff0c;此版的OneNote有最近笔记功能&#xff0c;但检索功能不如Office版本&#xff0c;个人认为2个版本各有优劣。 但OneNote f…