金融大數據分析 巨量資料科學 交易策略建構 量化交易系統 動態槓桿控管
加密貨幣技術指標-移動平均線實作
在金融交易分析中,移動平均線(Moving Average,簡稱MA)是一個常見且重要的技術指標,用來平滑價格走勢,進而提供交易者關於趨勢變化的訊息。我們將進一步探討移動平均線的概念以及其計算方法,以便更深入了解這個實用的分析工具。
移動平均線的基本概念:
移動平均線是一種將一段特定期間內的價格進行平均計算的指標。由於金融市場的資料是時間序列的,所以移動平均值會隨著時間的推移而變化,這也是它得名為「移動」平均線的原因。當價格走勢呈現劇烈波動時,移動平均線可以幫助我們觀察到趨勢的變化趨勢,從而作出更明智的交易決策。
移動平均線的命名方式:
在談論移動平均線時,我們通常會先提到其計算的週期,再加上「MA」的縮寫。舉例來說,如果我們計算了10個K線的平均價格,我們會稱其為「10MA」。以日K線為例,一個月內通常有約20個交易日(排除假日),因此我們可以使用「20MA」來計算月均線,而如果我們想計算季均線,則可以使用「60MA」。
移動平均線的類型:
移動平均線有不同的類型,其中包括「簡單移動平均」(Simple Moving Average,簡稱SMA)、「指數移動平均」(Exponential Moving Average,簡稱EMA)和「加權移動平均」(Weighted Moving Average,簡稱WMA)。在這些不同類型中,SMA是最常見且基本的一種。SMA是通過將特定週期內的收盤價平均計算出來,從而平滑價格走勢。
計算移動平均線的方法:
計算移動平均線可以利用Python的豐富函數庫來實現。一個常用的方法是使用「talib.abstract」庫中的「MA」函數。這個函數有兩個重要的參數,一個是「timeperiod」,表示計算的週期;另一個是「matype」,表示移動平均的計算方式,默認為SMA,但也有其他七種計算方式可供選擇。透過這個函數,我們可以方便地計算出相應的移動平均值。
移動平均線的示意圖如下:
程式碼我放在github,連結,繪製移動平均線的程式碼如下:
from historical_data import get_klines_df
import pandas as pd
from talib.abstract import SMA, EMA, WMA, KAMA
# 取得歷史資料
symbol = "BTCBUSD"
interval = "6h"
klines = get_klines_df(symbol, interval)
# 繪製K線圖
data = klines.copy()
data['sma'] = SMA(data, timeperiod=20)
data['ema'] = EMA(data, timeperiod=20)
data['wma'] = WMA(data, timeperiod=20)
data['kama'] = KAMA(data, timeperiod=20)
addp = []
addp.append(mpf.make_addplot(data['sma'], color='orange'))
addp.append(mpf.make_addplot(data['kama'], color='blue'))
mcolor = mpf.make_marketcolors(up='r', down='g', inherit=True)
mstyle = mpf.make_mpf_style(base_mpf_style='yahoo', marketcolors=mcolor)
mpf.plot(data, style=mstyle, addplot=addp, type='candle')
執行後如下圖。
如果想知道更多加密貨幣量化的案例可以參考Python加密貨幣指南,也可以至首頁訂閱電子報,定期有學習資源釋出哦。