iT邦幫忙

2021 iThome 鐵人賽

DAY 9
0
永豐金融APIs

永豐證API X Python系列 第 9

【D9】廚具熟練後製作精緻:使用歷史資料的Kbar做MA(移動平均線)圖

前言

當熟悉了歷史資料,發現有更厲害的K線,這時候就要善用工具,好好的料理資料一番,這次我們來用K線製作20MA圖吧!

本日程式碼使用:d9_kbar.ipynb


K線

直接看Kbars的Class資料,可以看到他的類別屬性(Class attribute)有tsOpenHighLowCloseVolumn,分別表示k線時間、開、高、低、收、量。

class Kbars(BaseMapping):
    ts: typing.List[int]
    Open: typing.List[float]
    High: typing.List[float]
    Low: typing.List[float]
    Close: typing.List[float]
    Volume: typing.List[int]

看到這些後,直接拿資料看最準,這次也是拿台積電(2330)的來看:

kbars = api.kbars(api.Contracts.Stocks["2330"], start="2021-09-15", end="2021-09-23")
df = pandas.DataFrame({**kbars})
df.ts = pandas.to_datetime(df.ts)

print(df.tail())

可以看到結果是:

                      ts   High  Close    Low  Volume   Open
1329 2021-09-23 13:26:00  589.0  589.0  589.0       0  589.0
1330 2021-09-23 13:27:00  589.0  589.0  589.0       0  589.0
1331 2021-09-23 13:28:00  589.0  589.0  589.0       0  589.0
1332 2021-09-23 13:29:00  589.0  589.0  589.0       0  589.0
1333 2021-09-23 13:30:00  588.0  588.0  588.0    3606  588.0

所以永豐證的API提供的是一分鐘的k線

畫K線圖

運用1分K線來畫圖,看看呈現的結果如何。

安裝套件

首先別忘記安裝matplotlib、ipykernel

pipenv install matplotlib
pipenv install ipykernel --dev

畫MA線圖(移動平均線)

先來看看我們的圖片,如果只接畫出來會變成怎樣。

df.plot(x="ts", y="Close")

https://ithelp.ithome.com.tw/upload/images/20210923/20103826242mMOfV51.png

做線圖,我們用rolling(),這代表滾動的值,然後給予要滾動的資料長度-20筆資料-以及區間單位-1單位-,然後再用mean()算平均,這樣就可以得到一個值囉,之後串在一起就可以畫成一張趨勢線圖(詳細可參考之前系列的文章)。

# 近20分收盤價圖
close_price_20 = df["Close"].rolling(20, min_periods=1).mean()
close_price_20.plot()

https://ithelp.ithome.com.tw/upload/images/20210923/20103826L4Vg9sz2aW.png


後記

雖然是分K,但是也可以製作成日K、週K等等。他們提供還滿完整的資料,除了tick,連K線都準備好,真的還滿方便的!


上一篇
【D8】重新磨刀:重看Stocks
下一篇
【D10】廚房門被鎖住怎麼辦?(帳號鎖著了!)
系列文
永豐證API X Python30

尚未有邦友留言

立即登入留言