本文說明使用TA-Lib函式庫計算ADX指標。
平均趨向指標:ADX(Average Directional Movement Index),一種趨勢衡量指標,威爾斯•威爾德所提出,利用多空趨勢變化之差與總和判定價格變動的平均趨勢,可反映價格高低的趨勢轉折。值介於0至100之間。通常,ADX超過30代表匯價已進入趨勢。而低於30則表示匯價在區間內波動。當ADX超過30時,ADX的讀值越大,說明價格趨勢越明顯。
git clone https://github.com/mrjbq7/ta-lib.git
python setup.py install
import numpy as np
import pandas as pd
import talib
import datetime as dt
import yfinance as yf
# 利用「get_functions」,查看 TA-Lib 提供的所有技術指標
all_ta_function = talib.get_functions()
#print("all_ta_function:\n" ,all_ta_function)
df_funs = pd.DataFrame(all_ta_function)
print("all_ta_function:\n" ,df_funs)
# 利用「get_function_groups」,查看 TA-Lib 提供的所有技術指標類別群組
all_ta_groups = talib.get_function_groups()
df_group_funs = pd.DataFrame(
{
'技術指標類別': list(all_ta_groups.keys()),
'類別指標總數': list(map(lambda x: len(x), all_ta_groups.values()))
})
print("df_group_funs:\n" ,df_group_funs)
# 開始時間
start=dt.datetime.today()-dt.timedelta(100)
# 結束時間
end=dt.datetime.today()
# 下載台股長榮(2603)歷史交易資料
df = pd.DataFrame(yf.download("2603.TW", start=start, end=end))
adx = talib.ADX(df.High, df.Low, df.Close, timeperiod = 14)
print("ADX:\n" ,adx)
使用yfinance函式字取得個股歷史資料及利用TA-Lib函式庫計算ADX指標。