之前使用官方範例後,再轉到實際環境,發現仍有不同,於是再看看資料吧!
廢話不多說,直接使用:
ticks = api.ticks(contract=api.Contracts.Stocks["2330"], date="2021-09-22")
print(ticks)
df = pd.DataFrame({**ticks})
df.ts = pd.to_datetime(df.ts)
print(df.head())
print(df.tail())
發現資料超多,與他們範例不太一樣,光是前面幾個狀態,就超多筆,無法用肉眼觀察,所以就用他們的範例,也就是轉乘為Dataframe,轉化後就不但好閱讀,也清楚的看出來資料長什麼樣子。就會從原本的:
588.0, 588.0, 588.0, 588.0, 588.0, 588.0,....
變成整齊的:
close ask_price ask_volume bid_volume bid_price ts volume
0 586.0 587.0 122 111 586.0 2021-09-22 09:00:05.091164 4251
1 586.0 587.0 122 111 586.0 2021-09-22 09:00:05.164357 2
2 587.0 587.0 122 111 586.0 2021-09-22 09:00:05.170070 8
3 586.0 587.0 122 111 586.0 2021-09-22 09:00:05.206461 5
4 586.0 587.0 122 111 586.0 2021-09-22 09:00:05.215926 2
可以看得出來,這邊的資料,應該是屬於tick等級,所以像台積電這個交易量很多的熱門股,會有很多成交資訊,用len()看後發現有12032...
不過變成DataFrame才是處理資料的正解!
不過看最後一筆資料,需要注意,他的交易時間為14:30,看起來是盤後零股,但是他的數量應該為「51,293」股,共「1,316」筆,感覺很奇怪,暫時找不到是啥,如果有找到再補上。不過這筆資料在研究的時候需要移除!
ts bid_volume volume close ask_volume bid_price ask_price
12027 2021-09-22 13:24:59.925825 317 1 586.0 26 586.0 587.0
12028 2021-09-22 13:24:59.956300 317 1 586.0 26 586.0 587.0
12029 2021-09-22 13:24:59.985980 313 1 586.0 26 586.0 587.0
12030 2021-09-22 13:30:00.000000 239 2961 586.0 73 586.0 587.0
12031 2021-09-22 14:30:00.000000 239 63 586.0 73 586.0 587.0
歷史資料還可以抓時間,還有k線。這幾個就是接下來的學習題目~