1. 首页 > 知识问答

sobv的指标公式(如何用OBV指标实现高成功率)

OBV指标全称为“On-balance Volume”,即“能量潮指标”,是应用在股票市场和其他金融市场中的一种技术分析工具。OBV指标本质上是一个基于成交量和价格的趋势指标。OBV指标由Joe Granville于1963年首次提出,他认为股价与成交量的关系非常重要,OBV指标就是通过将成交量与股价相对的趋势综合起来计算出来的。

 

下面我们将基于easytrader库,编写一个OBV指标的交易策略。首先,导入easytrader库和Pandas库。

import easytrader as et
import pandas as pd

其次,定义一个函数来计算OBV指标。OBV指标的计算方法如下:

  • 当当前股价大于前一日收盘价,则当前OBV值为前一日OBV值加上当日成交量。
  • 当当前股价等于前一日收盘价,则当前OBV值与前一日OBV值相同。
  • 当当前股价小于前一日收盘价,则当前OBV值为前一日OBV值减去当日成交量。
def calculate_obv(df):
    obv = [0]
    for i in range(1, len(df.Close)):
        if df.Close[i] > df.Close[i-1]:
            obv.append(obv[-1] + df.Volume[i])
        elif df.Close[i] < df.Close[i-1]:
            obv.append(obv[-1] - df.Volume[i])
        else:
            obv.append(obv[-1])
    return obv

 

 

再次,获取股票数据并计算OBV指标。这里我们以“华泰证券”(601688.SH)为例。

user = et.use('ths')
user.prepare('trader.json')
df = user.get_k_data('601688', start='2020-01-01', end='2022-12-31', index=False, ktype='D')
df['OBV'] = calculate_obv(df)

最后,定义交易逻辑。当股票价格上涨且OBV指标也上涨时,我们认为股票处于上涨趋势,此时我们选择买入股票;当股票价格下跌且OBV指标也下跌时,我们认为股票处于下跌趋势,此时我们选择卖出股票。

 

balance = user.balance[0]['asset_balance']
for i in range(1, len(df)):
    if df.Close[i] > df.Close[i-1] and df.OBV[i] > df.OBV[i-1]:
        user.buy('601688', price=df.Close[i], amount=100)
        balance = user.balance[0]['asset_balance']
    elif df.Close[i] < df.Close[i-1] and df.OBV[i] < df.OBV[i-1]:
        user.sell('601688', price=df.Close[i], amount=100)
        balance = user.balance[0]['asset_balance']

运行上述代码即可实现基于OBV指标的交易策略。需要注意的是,该策略仅作为参考,并不能保证盈利。在实际操作中,应该配合公司基本面以及市场环境等因素综合考虑。

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站不拥有所有权,不承担相关法律责任。如发现有侵权/违规的内容, 联系QQ15101117,本站将立刻清除。

联系我们

在线咨询:点击这里给我发消息

微信号:666666