OBV主要计算累积成交量,将股价上涨的成交量进行正累加,股价下跌时的成交量进行负向累加。其计算公式为:

O B V n = ± V n + O B V n − 1 \displaystyle OBV_n=\pm V_n + OBV_{n-1} OBVn​=±Vn​+OBVn−1​

其中,OBVn和OBVn-1分别是本期和前一期的OBV值,而Vn则是当日的成交量。

  • 当本期股价上涨,Vn的符号为正, O B V n = O B V n − 1 + V n \displaystyle OBV_n=OBV_{n-1}+V_n OBVn​=OBVn−1​+Vn​

  • 当本期股价下跌,Vn的符号为负, O B V n = O B V n − 1 − V n \displaystyle OBV_n=OBV_{n-1}-V_n OBVn​=OBVn−1​−Vn​

以东方雨虹为例,计算OBV。Python代码如下:

import matplotlib.pyplot as plt

difClose = df.Close.diff()

difClose[0] = 0

OBV = (((difClose >= 0)*2-1)*Volume).cumsum()

OBV = OBV.dropna()

OBV.name = ‘OBV’

1.2 移动型OBV


移动型OBV是由累积OBV进行简单移动平均得到,一般选择9日或者12日为时间跨度,移动型OBV的计算公式为:

s m O B V t = O B V t + O B V t − 1 + ⋅ ⋅ ⋅ + O B V T − 8 9 , t = 9 , 10 , ⋅ ⋅ ⋅ \displaystyle smOBV_t = \frac{OBV_t+OBV_{t-1}+ ··· +OBV_{T-8}}{9}, t=9,10,··· smOBVt​=9OBVt​+OBVt−1​+⋅⋅⋅+OBVT−8​​,t=9,10,⋅⋅⋅

用python计算东方雨虹移动型OBV

定义简单移动平均函数

def smaCal(tsPrice, k):

import pandas as pd

Sma = pd.Series(0.0, index=tsPrice.index)

for i in range(k-1, len(tsPrice)):

Sma[i] = sum(tsPrice[(i-k+1):(i+1)])/k

return(Sma)

计算移动型OBV

smOBV=smaCal(OBV,9)[8:]

![在这里插入图片描述](https://img-blo

g.csdnimg.cn/20210502212920607.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80ODk2NDQ4Ng==,size_16,color_FFFFFF,t_70)

1.3 修正型OBV


计算累积成交量时,无论股价变化幅度与趋势如何,当期的成交量的权重是一样的。为了将股价这些因素考虑进去,人们一般用多空比率净额(Volume Accumulation)来替代单纯的成交量。多空比率净额的计算公式为:

V A n = V A n − 1 + V n ( C n − L n ) − ( H n − C n ) H n − L n \displaystyle VA_n=VA_{n-1}+V_n\frac{(C_n-L_n)-(H_n-C_n)}{H_n-L_n} VAn​=VAn−1​+Vn​Hn​−Ln​(Cn​−Ln​)−(Hn​−Cn​)​

其中V_n为当日成交量,而Hn,Ln,Cn则分别是当日的最高价、最低价和收盘价。收盘价与最低价的差值表示多头力量的强度,最高价与最低价的差值表明空头力量的强度,两者之差表示多头的净力量幅度。

再用这个差值 ( C n − L n ) − ( H n − C n ) \displaystyle (C_n-L_n)-(H_n-C_n) (Cn​−Ln​)−(Hn​−Cn​)与最高价最低价差值 H n − L n \displaystyle H_n-L_n Hn​−Ln​之比,表示多头相对力量对于成交量的贡献程度。

计算修正型OBV

AdjOBV = ((df.Close-df.Low)-(df.High-df.Close))/(df.High-df.Low)*df.Volume

AdjOBV.name = ‘AdjOBV’

AdjOBVd = AdjOBV.cumsum()

AdjOBVd.name = ‘AdjOBVd’

AdjOBVd.describe()

绘制能量潮线图 2020年数据

import matplotlib.pyplot as plt

plt.rcParams[‘font.sans-serif’] = [‘SimHei’]

plt.rcParams[‘axes.unicode_minus’] = False

ax1 = plt.subplot(3,1,1)

df.Close[‘2020’].plot(title=‘东方雨虹2020年收盘价时序图’)

plt.xticks(df.Close[‘2020’].index[1:3],(’’))

ax2 = plt.subplot(3,1,2)

OBV[‘2020’].plot(label=‘OBV’,title=‘东方雨虹2020年累积能量潮与移动能量潮’)

smOBV[‘2020’].plot(label=‘smOBV’,linestyle=’-.’,color=‘r’)

plt.legend()

plt.xticks(df.Close[‘2020’].index[1:3],(’’))

ax3 = plt.subplot(3,1,3)

AdjOBVd[‘2020’].plot(title=‘成交量多空比率净额’)

for ax in ax1,ax2,ax3:

ax.grid(True)

结果如下所示:

2. OBV指标理论依据

===================================================================================

OBV指标的理论依据主要有以下三点:

  1. 当投资者对于股价的预期不一致时,成交量很大;当投资者对于股价的预期一致时,成交量则较小。

  2. 物理学中物体不会一直上升,总会下跌,而且物体在上升时所需要的能量要比下降时要多。我们把这个原理类比到股市,会得到一个量与价的关系:股价易跌难涨;而且股价下跌时需要的成交量,要小于股价上升时需要的成交量。

  3. 由惯性原理,热门股在相当长的一段时间内都会保持较大的成交量和价格波动。而冷门股则相反。

最后

Python崛起并且风靡,因为优点多、应用领域广、被大牛们认可。学习 Python 门槛很低,但它的晋级路线很多,通过它你能进入机器学习、数据挖掘、大数据,CS等更加高级的领域。Python可以做网络应用,可以做科学计算,数据分析,可以做网络爬虫,可以做机器学习、自然语言处理、可以写游戏、可以做桌面应用…Python可以做的很多,你需要学好基础,再选择明确的方向。这里给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

OBV指标交易策略(累积能量潮与移动能量潮,成交量多空比率净额及相关应用原则)相关推荐

  1. 【量化笔记】OBV指标交易策略

    本篇博客是量化笔记系列的最后一篇了,之后会停更一段时间量化内容,后面会写什么还待定 OVB主要计算累计成交量,将股价上涨时的成交量进行正累加,对股价下跌时的成交量进行负累加,计算公式是: O B V ...

  2. 【量化笔记】随机指标交易策略 KDJ

    KDJ指标的计算公式 未成熟随机指标RSV RSV=第n天的收盘价−最近n天内的最低价最近n天内的最高价−最近n天内的最低价RSV=\frac{第n天的收盘价-最近n天内的最低价}{最近n天内的最高价 ...

  3. Python 金融量化 随机指标交易策略

    目录 1.随机指标概述 2.随机指标原理 3.获取数据 4. 计算RSV 5. 计算K.D指标值 5.1 K值.D值指标概述 5.2 计算代码 6.计算J值 7.绘制KDJ线 8. KDJ交易策略 1 ...

  4. 用Python语言绘制股市OBV指标效果

    我的新书<基于股票大数据分析的Python入门实战>于近日上架,在这篇博文向大家介绍我的新书:<基于股票大数据分析的Python入门实战>里,介绍了这本书的内容.这里将摘录出部 ...

  5. obv代码matlab,obv指标源代码,标准obv指标源代码

    内容导航: Q1:谁知道这个指标源代码?主图!谢谢 input:P1(5); 年:MA(CLOSE,26),color00ff00; cp:="cpzb@cp"; cp,LINET ...

  6. python n个list如何组成矩阵_如何用马科维茨投资组合优化法和现代资产组合理论生成交易策略?...

    全文共6852字,预计学习时长14分钟 图源:pixabay 本文旨在展示如何用马科维茨(Markowitz)的投资组合优化法和现代资产组合理论(MPT)来生成交易策略. 本文首先对均值-方差优化法进 ...

  7. 均线交易策略的回测 r_使用r创建交易策略并进行回测

    均线交易策略的回测 r R Programming language is an open-source software developed by statisticians and it is w ...

  8. 在Elasticsearch中回测超级趋势线(Supertrend)交叉交易策略

    我们已经讨论了好几个单一指标交易策略,其中简单的相对强弱指数(RSI)交易策略取得的利润最高. 在本文中,我们将使用 Elasticsearch 实现超级趋势线(Supertrend)交叉交易策略,并 ...

  9. 基于量能的抄底摸底+追涨杀跌的交易策略

    致力于量化策略开发,高质量社群,交易思路分享等相关内容 大家好,我是乌克兰剑圣. 这一期我们开发一个基于量能的交易策略,提到量能第一想到的就是成交量,持仓量,委托量这些耳熟能详的名词.然而,利用量能因 ...

  10. 量化投资实战(一)之KDJ交易策略

    点赞.关注再看,养成良好习惯 Life is short, U need Python 初学量化投资实战,[快来点我吧] 1. 前言 由于最近博主比较忙,所以有一段时间没写博文了:另外,量化投资基础系 ...

最新文章

  1. MLeaksFinder简单实现原理
  2. ARP协议的报文格式
  3. grep、cut、awk、sed文本处理
  4. 分库分表 springboot+dubbo+mybatisPlus+shardingSphere
  5. vs2008环境下MFC对注册表的读写操作
  6. python遍历数组冒泡排序法_十种排序七种搜索算法的Python实现——气泡排序,十大,七大,查找,python,冒泡排序,bubblesort...
  7. P1313-计算系数【组合数,二项式定理】
  8. linux内核cpu负载计算,CPU 负载 — The Linux Kernel documentation
  9. Keras-4 mnist With CNN
  10. 【转载】Android之用PopupWindow实现弹出菜单
  11. GStreamer基础教程01 - Hello World
  12. SignalR+Redis,SignalR+Sqlserver集群部署应对海量链接
  13. C/C++[codeup 2003, 2056]图形输出
  14. 【sketchup 2021】草图大师的场景优化工具2【草图大师动态组件的详细使用说明和各个函数说明】【重要】
  15. 华硕x450jn拆机_自己动手丨 轻松搞定华硕X450JN笔记本 内存扩展
  16. 对于神经网络学习 Maxwell 方程的思考——泛化能力
  17. smartbi v7 Linux,配置Smartbi
  18. iOS 17 开放侧载,微信双开要来了?
  19. 基于SDN环境下的DDoS异常攻击的检测与缓解--实验
  20. 信息系统安全概述(课程笔记)

热门文章

  1. CMOS Image Sensor的接口硬件设计(DVP/MIPI CSI)
  2. 智能汽车领域的开源软件供应链安全检测工具分享
  3. 百度AI C#客户端车辆检测找不到VehicleDetect解决
  4. 计算机第一代及第四代发展概况,1计算机发展概况解析.ppt
  5. PINN物理驱动的深度学习方法入门到详解
  6. 应急响应— 操作系统分析(病毒、后门)
  7. (亲测有效)windows10和11如何卸载Microsoft Edge浏览器
  8. 如何下载高程地图并处理
  9. html中字体都可以设置哪些,html中设置字体的属性有哪些
  10. 集中式网络、分散式网络及分布式网络的概念、定义、差别 以及 多智能体一致性控制问题