上篇已經可以算出我要的 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大概只有我自己用得上),慶祝一下!🎉
