Python 实现股票指标计算——BBI

BBI (Bull And Bear lndex) - 多空指标

1 公式

  • 3日均价 = 3日收盘价之和 / 3
  • 6日均价 = 6日收盘价之和 / 6
  • 12日均价 = 12日收盘价之和 / 12
  • 24日均价 = 24日收盘价之和 / 24
  • BBI = (3日均价 + 6日均价 + 12日均价 + 24日均价) / 4

2 数据准备

我们以科创50指数 000688 为例,指数开始日期为2019-12-31,数据格式如下:

3 计算过程

def calculate_bbi(df: pd.DataFrame, N1=3, N2=6, N3=12, N4=24) -> pd.DataFrame:'''计算Bull and Bear Index (BBI),一种技术分析指标,用于识别市场趋势。参数:df (pd.DataFrame): 包含至少'close'列的DataFrame,代表收盘价。N1, N2, N3, N4 (int): 分别代表四个不同周期的简单移动平均线(SMA)的窗口大小。返回:pd.DataFrame: 包含BBI值的DataFrame。'''# 创建一个df的副本以避免修改原始数据data = df.copy()# 计算四个不同周期的简单移动平均线data['ma_' + str(N1)] = data['close'].rolling(N1).mean()data['ma_' + str(N2)] = data['close'].rolling(N2).mean()data['ma_' + str(N3)] = data['close'].rolling(N3).mean()data['ma_' + str(N4)] = data['close'].rolling(N4).mean()# 计算BBI,即这四个SMA的均值data['bbi'] = (data['ma_' + str(N1)] + data['ma_' + str(N2)] +data['ma_' + str(N3)] + data['ma_' + str(N4)]) / 4# 返回包含BBI指标的新DataFramereturn data

4 注意事项

计算结果与东方财富软件中一致

雪球无此指标

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

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

相关文章

Qt 学习第一天:安装VS和Qt

本人更换了一台新的电脑,使用联想电脑管家传输文件后没有安装VS,导致出现了以下问题: 疯狂查资料问人。弄了一个晚上加上午一个多小时之后,还是决定删掉原来的文件夹,重新下载一个 一、安装VS(Visual Stud…

肿瘤病人的护理

一、肿瘤病人的心理护理 肿瘤患者往往面临巨大的心理压力和恐惧,心理护理至关重要。 倾听与理解 耐心倾听患者的倾诉,让他们表达内心的担忧、恐惧和不安。例如,一位肺癌患者可能会担心治疗效果和家庭经济负担,护理人员要给予充分的…

Aurora MySQL 负载突增应对策略与优化方案

在面对 Aurora MySQL 负载突增的情况下,我们需要深入理解其工作原理,并探讨可行的优化方案。本文将详细分析 Aurora MySQL 的负载均衡机制,解读性能监控指标,并提出几种可能的解决方案,包括已实施的措施和未来的优化方向。 1. Aurora MySQL 的负载均衡机制 Aurora MySQL…

简单工厂模式、工厂模式和抽象工厂模式的区别

简单工厂模式、工厂模式和抽象工厂模式都是创建型设计模式,它们之间在目的、实现方式和适用场景上存在显著的区别。以下是对这三种模式的详细比较: 一、定义与目的 简单工厂模式(Simple Factory Pattern) 定义: 简单工…

算法项目报告:物流中的最短路径问题

问题描述 物流问题 有一个物流公司需要从起点A到终点B进行货物运输,在运输过程中,该公司需要途径多个不同的城市,并且在每个城市中都有一个配送站点。为了最大程度地降低运输成本和时间,该公司需要确定经过哪些配送站点&#xff…

Android:requestLayout、invalidate 和 postInvalidate 的区别

提醒:下面源码来自SDK里Android-34版本 一、requestLayout 点击查看requestLayout官网文档 1.1 requestLayout方法源码 /*** Call this when something has changed which has invalidated the* layout of this view. This will schedule a layout pass of the v…

Java:RestTemplate返回值报错LinkedHashMap cannot be cast

问题描述 使用SringBoot提供的RestTemplate发起http请求,类型转换成了LinkedHashMap DataEntity result restTemplate.getForObject(url, DataEntity.class);报错信息如下 java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to com.demo.…

跟着GPT学设计模式之模板模式

你好,这里是codetrend专栏“跟着GPT学设计模式”。 说明 提示词: 对模板模式进行定义说明,优缺点说明。 模板模式,全称是模板方法设计模式,英文是 Template Method Design Pattern。模板模式是一种行为型设计模式,它定…

watch监听vue2与vue3的写法

watch的属性值 handler:回调函数, 即监听到变化时应该执行的函数,可以是单独的函数或带有 immediate 和 deep 属性的对象watch: {someProperty: function(newVal, oldVal) {// 处理逻辑}}deep: 其值是true或false, 当属性值是对象或数组时,深度观察会监…

C++ :友元类

友元类的概念和使用 (1)将类A声明为B中的friend class后,则A中所有成员函数都成为类B的友元函数了 (2)代码实战:友元类的定义和使用友元类是单向的 (3)友元类是单向的,代码实战验证 互为友元类 (1)2个类可以互为友元类,代码实战…

DP讨论——组合模式

学而时习之,温故而知新。 组合模式 和代理模式相比 和代理模式相比,有点类似。引用类和被引用类都继承于同一个接口类。 但是感觉组合模式是对代理模式的更加丰富化(升级版、超进化),集合化或者说聚合化。 组合模…

高并发小结

高并发是指系统能够处理大量的并发请求的能力。处理高并发问题需要从多个层面进行优化,包括架构设计、代码优化、数据库优化和运维管理等。以下是一些处理高并发的关键技术和方法: 1. 架构设计 分布式架构:将系统功能分解为多个独立的服务&…

linux学习笔记整理: 关于linux:Redis数据库 2024/7/20;

Redis数据库: 自理解: 通过Map(多层字典类型)进行存储查找资源,key为字符串,value可为多种类型; Redis介绍 Redis是一种开放源代码(BSD许可)的内存中数据结构存储,用作数据库,缓存和消息代理。Redis提供数据结构,例如字…

tmp - configmap动态更新配置?

# 这是刚刚更新过的configmaps controlplane $ k describe configmaps nginx-conf Name: nginx-conf Namespace: default Labels: <none> Annotations: <none> Data nginx.conf: ---- user nginx; worker_processes 1; events { worker_co…

react-draft-wysiwyg API

目录 一、class / style(样式) 二、state(编辑器状态) 三、toolbar(工具栏) 四、localization(语言翻译) 五、mention / hashtag(提及) mention hashtag 六、callbacks(回调) toolbar 配置 一、class / style(样式) wrapperClassName: 工具栏 编辑区 classNameedito…

【LeetCode】二叉树的最大深度

目录 一、题目二、解法完整代码 一、题目 给定一个二叉树 root &#xff0c;返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff1a;3 示例 2&#x…

Leetcode2160. 拆分数位后四位数字的最小和:

问题描述&#xff1a; 给你一个四位 正 整数 num 。请你使用 num 中的 数位 &#xff0c;将 num 拆成两个新的整数 new1 和 new2 。new1 和 new2 中可以有 前导 0 &#xff0c;且 num 中 所有 数位都必须使用。 比方说&#xff0c;给你 num 2932 &#xff0c;你拥有的数位包括…

InnoDB 的 Buffer Pool

InnoDB 的 Buffer Pool 是一个关键组件&#xff0c;用于提高数据库的性能和效率。它充当内存中的缓存&#xff0c;用于存储数据页、索引页和其他频繁访问的数据。以下是 InnoDB Buffer Pool 的详细介绍&#xff1a; 1. Buffer Pool 的作用 Buffer Pool 是 InnoDB 的缓冲区&am…

怎么剪辑音频文件?4款适合新的音频剪辑软件

是谁还不会音频剪辑&#xff1f;无论是个人音乐爱好者&#xff0c;还是专业音频工作者&#xff0c;我们都希望能找到一款操作简便、功能强大且稳定可靠的音频剪辑工具。今天&#xff0c;我就要为大家带来四款热门音频剪辑软件的体验感分享。 一、福昕音频剪辑 福昕音频剪辑是…

YOLO 模型基础入门及官方示例演示

文章目录 Github官网简介模式数据集Python 环境Conda 环境Docker 环境部署 CPU 版本官方 CLI 示例官方 Python 示例 任务目标检测姿势估计图像分类 Ultralytics HUB视频流示例 Github https://github.com/ultralytics/ultralytics 官网 https://docs.ultralytics.com/zhhttp…