iT邦幫忙

2021 iThome 鐵人賽

DAY 17
0
永豐金融APIs

永豐金API之30天不中斷Q&A系列 第 17

Day17 - 如何用shioaji搭配Ta-Lib計算技術指標: 應用篇

昨天我們學會了安裝ta-lib的方法,今天我們來看看如何用shioaji搭配Ta-Lib計算技術指標吧。

首先可以用以下程式碼查看TA-Lib所有技術指標的代號,

import talib

talib.get_functions() # 查看TA-Lib所有技術指標的代號

搭配ta-lib 官方文件https://mrjbq7.github.io/ta-lib/doc_index.html, 就可以知道每個技術指標的定義與使用方式。

或是用以下程式碼也可以直接查看各個技術指標的用法

talib.SMA?

以下示範如何用要shioaji搭配Ta-Lib計算SMA(簡單移動平均線)。

計算技術指標基本上一定會用到K棒,可以用以下方式從shioaji取得1分K,

import shioaji as sj
api = sj.Shioaji(simulation=True) 
api.login(              #登入模擬帳號
    person_id="PAPIUSER02", 
    passwd="2222", 
    contracts_cb=print,
)

import pandas as pd
kbars = api.kbars(api.Contracts.Stocks["2330"], start="2021-09-27", end="2021-09-27")  #取得2330在2021-09-27的1分K
df = pd.DataFrame({**kbars})                #將資料格式轉成dataframe
df.ts = pd.to_datetime(df.ts)
df.head(5)
Low High Volume ts Close Open Amount
0 597 600 1751 2021-09-27 09:01:00 597 600 1.05026e+09
1 596 598 131 2021-09-27 09:02:00 596 597 7.8192e+07
2 596 597 91 2021-09-27 09:03:00 596 596 5.4257e+07
3 594 596 223 2021-09-27 09:04:00 594 596 1.32744e+08
4 593 595 250 2021-09-27 09:05:00 594 594 1.48505e+08

而1分K的計算只需用到收盤價,因此從一分K的dataframe取出收盤價

df['Close']

然後將收盤價丟入talib.SMA中,timeperiod設定為5,即可計算出一分K的5MA

talib.SMA(df['Close'],5)
0
0 nan
1 nan
2 nan
3 nan
4 595.4
5 594.8
6 594.6
7 594.2
8 594.4
9 595.2

今天學會了如何用talib進行指標運算,明天將介紹如何在盤中即時計算技術指標,且當技術指標達到我們的要求時,自動送出通知到line裡。


上一篇
Day16 - Shioaji X Backtesting - 參數最佳化
下一篇
Day18 - 如何盤中計算技術指標且發送訊號到line: line notify權杖申請
系列文
永豐金API之30天不中斷Q&A26
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
boltnut
iT邦新手 5 級 ‧ 2022-09-16 19:10:16

請問如何用 TA-Lib 計算台積電(2330) Beta 值?

我要留言

立即登入留言