iT邦幫忙

2021 iThome 鐵人賽

DAY 26
0
永豐金融APIs

理財達人Mx. Ada系列 第 26

[第26天]理財達人Mx. Ada-OBV指標

前言

本文說明使用TA-Lib函式庫計算OBV指標。

OBV指標

OBV能量潮指標(On Balance Volume)簡稱為OBV,由葛蘭碧(Joseph Granville)提出,是一種依據行情的漲跌,來累計或刪去市場的成交量值,而以此累算值作為市場行情動能變化趨勢的指標。同時它也是一種將一根一根起起伏伏不易觀察的成交量圖,轉變而成較易觀看分析的連續線圖的一種指標。
OBV指標在算法上相當簡單,只要依照行情的漲跌來累計市場上每日的成交量值即可。亦即是將上漲日的成交量值視為買進的正值累加,而下跌日的成交量值則視為賣出的負值減去,依此而得出漲勢與跌勢雙方動能消長的變化。
OBVt = OBVsub>t-1 + Volume 若 Close t > Close t-1
OBVt = OBVsub>t-1 - Volume 若Close t < Close t-1

程式實作

程式

import numpy as np
import pandas as pd
import talib
import datetime as dt
import yfinance as yf
import matplotlib.pyplot as plt

# 開始時間
start=dt.datetime.today()-dt.timedelta(14)
# 結束時間
end=dt.datetime.today()
# 下載台股長榮(2603)歷史交易資料
df = pd.DataFrame(yf.download("2603.TW", start=start, end=end))

obv = talib.OBV(df.Close, df.Volume)
#df_obv = pd.DataFrame(obv)
df_obv =pd.DataFrame(obv, index=df.index, columns=['OBV'])
print("OBV:\n" ,df_obv)

df_obv.loc['2021-09-27':'2021-10-08'].plot(figsize=(16, 6))
plt.savefig("OBV.png")

程式列印結果

https://ithelp.ithome.com.tw/upload/images/20211010/20107143S0Wt0KI3fp.png

繪圖成果

https://ithelp.ithome.com.tw/upload/images/20211010/20107143RW5KlpFOpG.png

小結

使用yfinance函式字取得個股歷史資料及利用TA-Lib函式庫計算OBV指標。


上一篇
[第25天]理財達人Mx. Ada-ADX指標
下一篇
[第27天]理財達人Mx. Ada-BETA指標
系列文
理財達人Mx. Ada30

尚未有邦友留言

立即登入留言