程式小專題 – 計算ATR #4 從API取得資料

上篇已經可以算出我要的 ATR 數字了,資料的取得是從台灣券商軟體直接下載 (其實呀,軟體早幫我把 ATR 算好惹),然後存進檔案夾,之後再從程式讀資料。

不過這樣是有點麻煩 (例如我昨天過度交易,想多建幾個小部位,就得重複這些動作很多次… 後話是),因此決定改用API查美股的資料。這篇就是嘗試用TD Ameritrade 的 API 查資料 (它是我美股交易的券商之一,本來想用Futu但是),然後轉換成我可以操作的 pandas DataFrame。

我不知道 API 怎麼搞耶,沒關係 Google 一下就在 youtube 找到教學影片啦!

總之呢,我就是依樣畫葫蘆,結果看起來也還行。(CAllback URL 我瞎設
http://localhost,我不知道這在幹嘛)

import requests
import pandas as pd
client_id = '你的Consumer Key' #要註冊才會有

endpoint = r"https://api.tdameritrade.com/v1/marketdata/{}/pricehistory".format('SE')

payload ={'apikey':client_id,
         'periodType':'month',
         'frequencyType':'daily',
         'frequency':'1',
         'period':'2',
         'needExtendedHoursData':'true'}

content = requests.get(url= endpoint, params = payload)
data = content.json() #把json轉成字典

df = pd.DataFrame(data['candles']) #把candles字典裝進DataFrame
df_se = df.tail(23) #取最後23天的資料。

df_se.head() #來瞧瞧長什麼樣
	close	datetime	high	low	open	volume
20	37.35	1574661600000	38.05	37.1200	37.36	6603204
21	37.75	1574748000000	38.09	37.2200	37.35	4103818
22	37.78	1574834400000	37.98	37.3058	37.95	3038199
23	37.04	1575007200000	37.73	36.8100	37.52	2219264
24	36.57	1575266400000	37.08	35.8700	37.08	3058245

嗯,挺好的嘛~ 而且column就已經是英文了。那是不是這個程式的屁股再裝上之前寫的code就可以跑了? 🎈這就留給下一篇吧。😏

這是我第一次用API拿到「需要的」資料耶 (書裡面的練習,通常跟需要得不一樣,就如同這裡的code大概只有我自己用得上),慶祝一下!🎉

發表留言