iT邦幫忙

2021 iThome 鐵人賽

DAY 14
1
永豐金融APIs

從零開始使用python打造簡易投資工具系列 第 14

[Day14] 永豐shioaji API,期貨篇

  • 分享至 

  • xImage
  •  

今天先測試一下永豐期貨部分的api,再看看接下來可以做什麼。首先是之前抓股價k棒的函數,因為現在要抓的不只有股票現貨價格了,輸入改成contract,這樣比較通用。
https://ithelp.ithome.com.tw/upload/images/20210914/20141238DE5dK7yRP8.png

以下是今天執行的本體,每一段程式碼的功能圖上都有標示,細節後面慢慢寫出來
https://ithelp.ithome.com.tw/upload/images/20210914/20141238yJKWIUPJpu.png

一開始的部分先列印出期貨合約的代號,列表大概長的像下面這樣,直接看的話是無法看出期貨合約和現貨合約有甚麼關聯性的
https://ithelp.ithome.com.tw/upload/images/20210914/20141238hc1RlMXYyM.png

在這邊可以找到期貨合約的中文對應,直接在網頁上查找就能找到中文名字,不過我另外做一個funtion在python裡也可以查找
https://www.taifex.com.tw/cht/4/contractName

第一步先把上面網頁的東西複製貼上到文字檔,最前面#號那一行不要複製到(這邊會需要notepad++,要另外下載)
https://ithelp.ithome.com.tw/upload/images/20210914/20141238HifAsWPCON.png

再來選取空白的部分,取代成逗號 , 取代完之後存檔成SYMBOL.csv,跟程式碼放在一起
https://ithelp.ithome.com.tw/upload/images/20210914/20141238il6nFkA9Xl.png

要找中文名字的時候要先把英文代號取出來
https://ithelp.ithome.com.tw/upload/images/20210914/20141238whNWYaRJni.png

然後用以下程式碼可以從csv裡面找出對應的中文名稱,可以看到BRF就是去年讓很多人賠大錢的布蘭特原油
https://ithelp.ithome.com.tw/upload/images/20210914/201412381LmZKfVc3h.png

要製作完整的對照表可以用以下程式碼,執行完會告訴你TXF就是台股期貨(俗稱大台)
https://ithelp.ithome.com.tw/upload/images/20210914/201412385vqlA4yU8O.png

lookup變數執行完之後長這樣,看起來有比較好懂了
https://ithelp.ithome.com.tw/upload/images/20210914/20141238SiaKzdI9qF.png

最後面參數化的部分則是在示範如何輸入英文代號名稱跟到期日選擇合約,最後面會抽取k棒,不過如下圖k棒並不是非常的連續,所以要拿來用的話需要再做一些修改,而且歷史資料並不算長。
https://ithelp.ithome.com.tw/upload/images/20210914/20141238UhKszCJX0S.png

資料不連續的原因應該不是期貨k棒資料格式比較特別,而是他那段時間沒成交自然就沒k棒,以下拿現貨的0050和006204當作對照組,比較出名的0050每一分鐘都有資料,006204一樣缺了不少資料。
https://ithelp.ithome.com.tw/upload/images/20210914/20141238GUteJhUO5e.png
https://ithelp.ithome.com.tw/upload/images/20210914/20141238RJQMpWyBNi.png

由於缺少歷史資料的關係,寫策略還是比較困難的,之後看有沒有辦法從其他地方拿資料來用,接下來先回去下點功夫把最佳化那邊收尾比較實在。


上一篇
[Day13] 策略最佳化模組改造(3)
下一篇
[Day15] 策略最佳化模組改造(4)
系列文
從零開始使用python打造簡易投資工具43
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言