這篇博客用來把在Mac平台上使用python接入東方財富Choice接口的流程細化並重寫,官方文檔有些地方說的太含糊了,有的地方博主嘗試了多種方法才試出來,這裡直接把標准答案給到大家,盡量避坑吧~
吐槽:同花順科技感很足,贊,但是沒有Mac版本的,而且券商數據太少太少啦,希望再接再厲吧
首先使用這個接口的時候,需要有購買的賬號哈,價格請參考:https://choice.eastmoney.com/buyingcenter,應該是每年3w
一般你注冊賬號之後會有人打電話聯系你,或是主動打客服,都可以的。
然後給賬號綁定一個手機號,後續需要這個手機號
Choice 官方使用接口的文檔如下:http://quantapi.eastmoney.com/Manual/Index?from=web&loc=%E6%8E%A5%E5%8F%A3%E9%85%8D%E7%BD%AE&ploc=%E6%8E%A5%E5%8F%A3%E9%85%8D%E7%BD%AE
首先進入網站:http://quantapi.eastmoney.com/Download?from=web,下載python的版本:
下載的鏈接是:http://updates.jg.eastmoney.com/Choice/EMQuantAPI/EMQuantAPI_Python.zip
下載壓縮包後,使用:
unzip EMQuantAPI_Python.zip
cd EMQuantAPI_Python
cd python3
python installEmQuantAPI.py
這樣就在當前的環境中添加依賴了
運行命令:
brew install gtk+3
cd libs/mac
chmod +x loginactivator_mac
./loginactivator_mac
然後打開了一個界面:
點擊激活,這裡需要賬號當時綁定的手機號,配置完成後就OK啦
此時當前的文件夾下會有一個文件userInfo
,文件中是一串字符串
大家可以嘗試運行下面的示例代碼:
代碼拉取的數據是000001.SZ,000002.SZ
這兩個證券的股票名稱與IPO時間
from EmQuantAPI import c
import pandas as pd
# 登錄
loginresult = c.start()
print(loginresult)
# 數據
choice_data = c.css("000001.SZ,000002.SZ", "NAME,LISTDATE", "")
if choice_data.ErrorMsg == "success":
data_df = pd.DataFrame(choice_data.Data).T
data_df.columns = choice_data.Indicators
print(data_df)
# 登出
logoutresult = c.stop()
結果:
[EmQuantAPI Python] [Em_Info][2022-07-01 11:24:10]:The current version is EmQuantAPI(V2.5.3.4).
[EmQuantAPI Python] [Em_Info][2022-07-01 11:24:10]:verifying your token...
[EmQuantAPI Python] [Em_Info][2022-07-01 11:24:10]:connect server...
[EmQuantAPI Python] [Em_Info][2022-07-01 11:24:11]:start success!
ErrorCode=0, ErrorMsg=success, Data={}
[EmQuantAPI Python] [Em_Info][2022-07-01 11:24:11]:percentflag(for csd/css/cses) update success.
NAME LISTDATE
000001.SZ 平安銀行 1991/4/3
000002.SZ 萬科A 1991/1/29
[EmQuantAPI Python] [Em_Info][2022-07-01 11:24:12]:heartbeatthread end.
其中,前面的[EmQuantAPI Python]
是登錄登出的日志,中間的對應data_df
的數據如下:
NAME LISTDATE
000001.SZ 平安銀行 1991/4/3
000002.SZ 萬科A 1991/1/29
請參考代碼生成的工具:http://quantapi.eastmoney.com/Cmd/ChoiceSerialSection?from=web
量化接口的數據是有每周的調用限制的: