首先要先去cmd安裝bta-lib
pip install bta-lib
讓我們嘗試用庫計算相同的移動平均線作為比較
sma = btalib.sma(btc_df.close)
print(sma.df)
請注意,bta-lib 將返回一個對象到我們的 sma 變數。若要訪問其中包含的數據幀,只需在變數名稱后鍵入即可。.df
默認情況下,該庫使用 30 週期移動平均線。
我們可以複製我們之前的相同函數,並計算20條移動平均線,並將其作為列附加到我們原來的DataFrame上,就像這樣。
btc_df['sma'] = btalib.sma(btc_df.close, period=20).df
print(btc_df.tail())
讓我們再創建幾個指標。
以下是我們使用bta-lib庫計算RSI的方法。
rsi = btalib.rsi(btc_df, period=14)
以下是我們如何計算bta-lib中比特幣的MACD。
macd = btalib.macd(btc_df, pfast=20, pslow=50, psignal=13)
最後,我們將把RSI和MACD值加入到我們的原始比特幣價格DataFrame中。
btc_df = btc_df.join([rsi.df, macd.df])
print(btc_df.tail())
這邊附上完整的程式碼
import btalib
import pandas as pd
# load DataFrame
btc_df = pd.read_csv('binance_demo.csv', index_col=0)
btc_df.set_index(['date'], inplace=True)
btc_df.index = pd.to_datetime(btc_df.index, unit='ms')
btc_df['20sma'] = btc_df.close.rolling(20).mean()
btc_df['sma'] = btalib.sma(btc_df.close, period=20).df
rsi = btalib.rsi(btc_df, period=14)
macd = btalib.macd(btc_df, pfast=20, pslow=50, psignal=13)
btc_df = btc_df.join([rsi.df, macd.df])
print(btc_df.tail())