OBV指标的源码公式如下:
def on_balance_volume(close_prices, volumes):
obv = [0]
for i in range(1, len(close_prices)):
if close_prices[i] > close_prices[i-1]:
obv.append(obv[-1] + volumes[i])
elif close_prices[i] < close_prices[i-1]:
obv.append(obv[-1] - volumes[i])
else:
obv.append(obv[-1])
return obv
其中,close_prices是收盘价序列,volumes是成交量序列。在代码中,我们根据当前收盘价与前一日收盘价的大小关系,计算出当日OBV值,从而得到OBV指标的序列。
OBV(On-Balance Volume,能量潮)是技术分析中一种重要的指标之一,用于在量价关系方面提供信号。其计算公式如下:
首先,选定一个开始日期并令 OBV=0.
然后,对于每个随后的交易日,根据以下规则来计算能量潮(OBV)值:
如果今天的收盘价高于昨天的收盘价,则将今天的交易量加入到 OBV 上。
如果今天的收盘价等于昨天的收盘价,则 OBV 保持不变。
如果今天的收盘价低于昨天的收盘价,则将今天的交易量从 OBV 上减去。
因此,OBV 的计算公式为:
OBV = OBV(n-1) + volume, n 当日收盘价 > 前一日收盘价 OBV = OBV(n-1), n 当日收盘价 = 前一日收盘价 OBV = OBV(n-1) - volume, n 当日收盘价 < 前一日收盘价
其中 OBV(n-1) 是前一天的 OBV 值。volume 是今天的交易量。