用python计算股票的平衡交易量(OBV)

2023-12-04

我正在用 python 做我的第一个项目。我有一个名为 df 的 pandas 数据框,有两列“close”和“volume”。我想根据前两列计算/获取 OBV 列。公式如下;

如果收盘价高于前一收盘价,则: 当前 OBC = 先前 OBC + 当前交易量

如果收盘价低于前收盘价,则: 当前 OBV = 先前 OBV - 当前交易量

如果收盘价等于前收盘价,则: 当前 OBV = 之前的 OBV(无变化)

close volume  OBC
30    2500    nan
32    3000    5500
25    2700    2800
35    4000    6800
20    1000    5800

我正在使用这段代码:

for i in df.close[1:]:
    if i > df.close.shift(-1):
        df["OBC"] = df.volume + df.OBC.shift(-1) 
    elif i < df.close.shift(-1):
        df["OBC"] = df.OBC.shift(-1) - df.volume
    else:
        df["OBC"] = df.OBC

我收到此错误:

ValueError:系列的真值不明确。使用a.empty, a.bool()、a.item()、a.any() 或 a.all()。

我看过这个问题但没有得到任何帮助。系列的真值是不明确的。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()

除了这个错误之外,我觉得代码在计算正确的 OBV 时可能会遇到麻烦。任何帮助都将非常有价值。


我不知道你为什么会收到错误,但这里有一个获取 OBV 的解决方案:

np.where(df['close'] > df['close'].shift(1), df['volume'], 
np.where(df['close'] < df['close'].shift(1), -df['volume'], 0)).cumsum()

它也更快,如果您要进行多次迭代,这很好!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用python计算股票的平衡交易量(OBV) 的相关文章

  • 计算另一个字符串中多个字符串的出现次数

    在 Python 2 7 中 给定以下字符串 Spot是一只棕色的狗 斑点有棕色的头发 斑点的头发是棕色的 查找字符串中 Spot brown 和 hair 总数的最佳方法是什么 在示例中 它将返回 8 我正在寻找类似的东西string c
  • 如何在 Matplotlib 饼图周围绘制箭头以将每个标签指向圆圈中各自的部分?

    我一直在用 Matplotlib 绘制一些图表 我有一个饼图 想要在图表周围绘制箭头 使每个标签都指向图表 我有一个例子 这是我当前的代码 import matplotlib pyplot as plt plt rcParams font
  • matplotlib 图中点的标签

    所以这是一个关于已发布的解决方案的问题 我试图在我拥有的 matplotlib 散点图中的点上放置一些数据标签 我试图在这里模仿解决方案 是否有与 MATLAB 的 datacursormode 等效的 matplotlib https s
  • Django Rest Framework 是否有第三方应用程序来自动生成 swagger.yaml 文件?

    我有大量的 API 端点编写在django rest framework并且不断增加和更新 如何创建和维护最新的 API 文档 我当前的版本是 Create swagger yaml文件并以某种方式在每次端点更改时自动生成 然后使用此文件作
  • 使用主题交换运行多个 Celery 任务

    我正在用 Celery 替换一些自制代码 但很难复制当前的行为 我期望的行为如下 创建新用户时 应向tasks与交换user created路由键 该消息应该触发两个 Celery 任务 即send user activate email
  • 从Django中具有外键关系的两个表中检索数据? [复制]

    这个问题在这里已经有答案了 This is my models py file from django db import models class Author models Model first name models CharFie
  • python multiprocessing 设置生成进程等待

    是否可以生成一些进程并将生成进程设置为等待生成的进程完成 下面是我用过的一个例子 import multiprocessing import time import sys def daemon p multiprocessing curr
  • 在 Django Admin 中调整字段大小

    在管理上添加或编辑条目时 Django 倾向于填充水平空间 但在某些情况下 当编辑 8 个字符宽的日期字段或 6 或 8 个字符的 CharField 时 这确实是一种空间浪费 字符宽 然后编辑框最多可容纳 15 或 20 个字符 我如何告
  • 为什么 web2py 在启动时崩溃?

    我正在尝试让 web2py 在 Ubuntu 机器上运行 所有文档似乎都表明要在 nix 系统上运行它 您需要下载源代码并执行以下操作 蟒蛇 web2py py 我抓住了source http www web2py com examples
  • PyQt 使用 ctrl+Enter 触发按钮

    我正在尝试在我的应用程序中触发 确定 按钮 我当前尝试的代码是这样的 self okPushButton setShortcut ctrl Enter 然而 它不起作用 这是有道理的 我尝试查找一些按键序列here http ftp ics
  • 如何将特定范围内的标量添加到 numpy 数组?

    有没有一种更简单 更节省内存的方法可以单独在 numpy 中执行以下操作 import numpy as np ar np array a l r ar c a a 0 l ar tolist a r 它可能看起来很原始 但它涉及获取给定数
  • Java 和 Python 可以在同一个应用程序中共存吗?

    我需要一个 Java 实例直接从 Python 实例数据存储中获取数据 我不知道这是否可能 数据存储是否透明 唯一 或者每个实例 如果它们确实可以共存 都有其单独的数据存储 总结一下 Java 应用程序如何从 Python 应用程序的数据存
  • 嵌套作用域和 Lambda

    def funct x 4 action lambda n x n return action x funct print x 2 prints 16 我不太明白为什么2会自动分配给n n是返回的匿名函数的参数funct 完全等价的定义fu
  • Pandas 组合不同索引的数据帧

    我有两个数据框df 1 and df 2具有不同的索引和列 但是 有一些索引和列重叠 我创建了一个数据框df索引和列的并集 因此不存在重复的索引或列 我想填写数据框df通过以下方式 for x in df index for y in df
  • Python GTK+ 画布

    我目前正在通过 PyGobject 学习 GTK 需要画布之类的东西 我已经搜索了文档 发现两个小部件似乎可以完成这项工作 GtkDrawingArea 和 GtkLayout 我需要一些基本函数 如 fillrect 或 drawline
  • Protobuf 如何编码 oneof 消息结构

    对于这个 python 程序 在编码时运行 protobuf 编码会给出以下输出 0a 10 08 7f8a 0104 08 02 10 0392 0104 08 02 10 03 18 01 我不明白的是为什么8a后面有一个01 为什么9
  • PySpark groupByKey 返回 pyspark.resultiterable.ResultIterable

    我试图找出为什么我的 groupByKey 返回以下内容 0
  • 如何从pandas中的多列计算多列

    我正在尝试使用函数从 pandas 数据框中的多个列计算多个列 该函数采用三个参数 a b 和 c 并返回三个计算值 sum prod 和 quot 在我的 pandas 数据框中 我有三个列 a b 和 c 我想从中计算列 sum pro
  • 将索引与值交换的最快方法

    考虑pd Series s s pd Series list abcdefghij list ABCDEFGHIJ s A a B b C c D d E e F f G g H h I i J j dtype object 交换索引和值并
  • 如何在Python脚本中从youtube-dl中提取文件大小?

    我是 python 编程新手 我想在下载之前提取视频 音频大小 任何 YouTube 视频 gt gt gt from youtube dl import YoutubeDL gt gt gt url https www youtube c

随机推荐

  • 禁止目录内容,但允许 robots.txt 中的目录页面

    这是否适用于禁止目录下的页面 但仍允许该目录 url 上的页面 Allow special offers Disallow special offers 允许 www mysite com special offers 但阻止 www my
  • DC.js - 取消选择功能或过滤除单击的功能之外的所有功能

    我不确定这是否可能 并且对此进行研究没有运气 我正在使用 DC js 图表和 crossfilter js 开发仪表板 我将使用行图作为示例 是否可以做相反的事情 而不是点击要过滤的项目 例如 当我单击行图中的某个项目时 它将取消选择该项目
  • Fedora bash 程序无法正常工作

    我正在尝试运行一个简单的 bash 命令 但我不确定我错过了什么 bin bash person Craig Baiey echo person echo person echo person 每次我运行它时都会出现错误 第 2 行 未找到
  • 如何子类化UITableView?

    老实说 我不知道如何子类化 UITableView 我非常困惑 正在寻找我能得到的任何帮助 如何对 UITableView 进行 子类化 我需要这样做的原因是因为我需要表格响应背景上的触摸 以便隐藏键盘 我尝试过谷歌搜索但找不到任何东西 非
  • 从两个不同的数据框中查找唯一的列值

    如何从 DF1 和 DF2 中查找第一列的唯一值 DF1 67 Hij 14 Xyz 87 Pqr DF2 43 Def 67 Lmn 14 Xyz Output 87 Pqr 43 Def 这就是阅读方式 import pandas as
  • 检查文件是否从另一个进程打开

    如何检查 Powerscript 中的文件是否已被另一个进程使用 我发现的最好方法是调用 WinAPI CreateFile 以独占模式打开给定文件 首先 声明以下本地外部函数 PB10 FUNCTION Long CreateFile r
  • .NET 中的性能分析

    我写了一个类 它使用Stopwatch分析方法和for foreach循环 和for and foreach循环它针对一个标准循环进行测试Parallel For or Parallel ForEach执行 您可以像这样编写性能测试 Met
  • 有没有办法通过 REST API 检索 Office365 OneDrive 已删除项目(文件/文件夹)的元?

    我正在寻找一种方法来检索已删除项目 文件 文件夹 的元 我能够获取更改日志 表明已对某个项目执行了特定操作 并且如果该项目尚未被删除 我也能够检索该项目本身 当该项目被删除时就会出现问题 在这种情况下 我只知道该项目的 ID 当我查询该项目
  • 使用“grep -f”列出不匹配的条目

    以下命令给出了匹配表达式的列表 grep f tmp list Filename gt tmp output The list然后解析文件并用于搜索Filename 对于解析后的字符串 然后将结果保存到output 我将如何输出解析后的字符
  • Pandas excel导入更改日期格式

    我正在学习 python 3 6 with anaconda 以进行学习 我使用 pandas 导入一个包含 2 列的 xls 文件 日期 dd mm yyyy 和价格 但 pandas 改变了日期格式 xls file pd read e
  • 如何处理Java中的链接错误?

    在开发一个高度基于 XML 的 Java 应用程序时 我最近在 Ubuntu Linux 上遇到了一个有趣的问题 我的应用程序 使用Java插件框架 似乎无法转换dom4j 创建 XML 文档Batik sSVG 规范的实现 在控制台上 我
  • 如何在 Windows 控制台上输出 Unicode 字符串

    已经有一些与此问题相关的问题 我认为我的问题有点不同 因为我没有实际的问题 我只是出于学术兴趣而问 我知道 Windows 的 UTF 16 实现有时与 Unicode 标准 例如排序规则 相矛盾 或者更接近旧的 UCS 2 而不是 UTF
  • C++:如何在使用 getline() 和 ifstream 对象从文件中读取行时跳过第一个空格?

    我有一个名为 items dat 的文件 其内容按 itemID itemPrice 和 itemName 的顺序排列 item0001 500 00 item1 name1 with spaces item0002 500 00 item
  • 保存 VBA 之前检查文件夹权限

    我创建了一个用户表单 它将打开一个 Excel 文件 打开并隐藏 Excel 关闭用户表单时将保存并关闭 Excel 文件 然而 Excel 文件有两种类型的用户 编辑者 将数据输入文件的人员 查看者 正在查看文件的人 包含 Excel 文
  • 使用MSBuild构建EXE时如何指定文件版本?

    我正在尝试使用 MSBuild Delphi 2010 编译 EXE 我尝试了以下方法 MSBuild exe t Clean Build p config Release ExtraDefines CodeTest property Fi
  • 查找c++执行时间

    我很好奇 C 中是否有内置函数来测量执行时间 我现在使用的是 Windows 在 Linux 中这非常简单 据我所知 Windows 上最好的方法是使用QueryPerformanceCounter and QueryPerformance
  • 我是否需要心跳来保持 TCP 连接打开?

    我有两个通过 TCP IP 进行通信的组件 组件 A 充当服务器 侦听器 组件 B 充当客户端 两人应该尽快沟通 任何时候只能有一个连接 尽管这是这个问题的一部分 我公司的一位高级开发人员表示 我需要在两个组件之间使用应用程序级心跳来确保连
  • SVN 中工作副本 XXX 已锁定且清理失败

    当我执行以下操作时出现此错误svn update 工作副本 XXXXXXXX 已锁定 请 执行 清理 命令 当我运行清理时 我得到 清理无法处理 以下路径 XXXXXXX 我该如何摆脱这个循环 一种方法是 将编辑的项目复制到另一个位置 删除
  • 为什么我需要对这个 .rds 文件使用 mode = wb 和 download.file() ?

    我被挂断了闪亮的应用程序教程第 5 课因为我无法打开counties rds file readRDS threw error reading from connection 我发现我可以打开 rds如果我下载它就好了download fi
  • 用python计算股票的平衡交易量(OBV)

    我正在用 python 做我的第一个项目 我有一个名为 df 的 pandas 数据框 有两列 close 和 volume 我想根据前两列计算 获取 OBV 列 公式如下 如果收盘价高于前一收盘价 则 当前 OBC 先前 OBC 当前交易