練功房推薦書單

  • 猛虎出柙雙劍合璧版--最新 OCA / OCP Java SE 7 Programmer 專業認證 (電子書)
  • 流浪教師存零股存到3000萬(全新增修版)(書+DVD)
  • 開始在關西自助旅行(京都‧大阪‧神戶‧奈良)(全新增訂版)
  • 不敗教主的300張股票存股術

[程式交易]群益期貨Python API入門 2 RSS feed
Forum Index » 投資理財 Financial Investment
Author Message
andowson

七段學員
[Avatar]

Joined: 2007/1/2
Messages: 713
Location: 台北
Offline
第二步 建立程式執行環境並執行範例程式

1.安裝Anaconda
1.1 下載Andconda
https://www.anaconda.com/download
1.2 安裝Anaconda
(註: 群益期貨的API文件對開發環境IDE是建議安裝Visual Studio Code,但這樣需要另外安裝Python套件,目前我比較偏好使用Anaconda整合環境,內含Python套件,同時可以搭配Jupyter Notebook使用,故選擇以安裝Anaconda為執行環境)
(參閱文件: 群益PythonAPI使用前看我看我.docx)

2.安裝群益期貨API依賴的Python套件
2.1 開啟Anaconda Prompt
2.2 安裝comtypes及pywin32: 在Anaconda Prompt下輸入
pip install comtypes pywin32

(參閱文件: 群益PythonAPI使用前看我看我.docx)

3.複製範例程式到D:\SKCOM\x64目錄下
3.1 複製D:\SKCOM\CapitalAPI_2.13.51_PythonExample\PythonExampleV2\Quote\Quote目錄底下所有程式到D:\SKCOM\x64目錄下

4.執行Quote.py
4.1 回到Anaconda Prompt
4.2 切換目錄到D:\SKCOM\x64目錄下: cd D:\SKCOM\x64
4.3 用Python執行Quote.py: python Quote.py
4.4 確認有跳出一個視窗顯示Quote

5.測試Quote.py
5.1 輸入UserID和Password,按下Login
5.2 登入後請選擇這裡=>:選擇更新帳號
5.3 登入後請選擇這裡=>:下拉式選單選擇身分證字號,後面的下拉式選單選擇期貨帳號
5.4 連線環境:選擇正式環境
5.5 按下連線,確認有跳出另一個視窗Connect
5.6 按連線報價主機
5.7 按檢查連線狀態: 確認出現連線中(其他按鈕也可以按按看,自行測試),然後關閉這個視窗
5.8 按下即時報價,確認出現一個新的視窗顯示Request
5.9 在Page輸入1,請輸入商品代號輸入TX00,MTX00,TM0000,按下訂閱
5.10檢查是否出現報價
5.11關閉視窗,結束程式




  • [Thumb - Quote.py測試畫面.PNG]
 Filename Quote.py測試畫面.PNG [Disk] Download
 Description 群益期貨API範例程式Quote.py測試畫面
 Filesize 75 Kbytes
 Downloaded:  0 time(s)


分享經驗 累積智慧
[WWW]
andowson

七段學員
[Avatar]

Joined: 2007/1/2
Messages: 713
Location: 台北
Offline
如果有執行到Quote.py的五檔&成交明細,會發現在成交彙總(時間/成交價/成交量)上的時間顯示出現奇怪的時間,例如45:95:8。
原來是群益期貨的程式範例Quote.py在259~261這三行對時間45958的拆解有誤,夜盤結束時間是上午5:00:00,最後成交時間應該是4:59:58才對。

另外在凌晨12點或0點到1點時,前面的0會被去掉,變成長度只有4碼,只有分跟秒。

因為一般時間格式通常是六位數hhmmss,如果當時間變成五位數hmmss時用原來的方式會拆分錯誤,所以我們可以補上字串長度判斷,決定要用哪種格式來解析時間數字
修正前:

hour = str(nTimehms)[:2]
min = str(nTimehms)[2:4]
sec = str(nTimehms)[4:6]

修正後:

if len(str(nTimehms)) == 6:
hour = str(nTimehms)[:2]
min = str(nTimehms)[2:4]
sec = str(nTimehms)[4:6]
elif len(str(nTimehms)) == 5:
hour = str(nTimehms)[:1]
min = str(nTimehms)[1:3]
sec = str(nTimehms)[3:5]
else:
hour = "0"
min = str(nTimehms)[:1]
sec = str(nTimehms)[1:3]

分享經驗 累積智慧
[WWW]
 
Forum Index » 投資理財 Financial Investment
Go to:   
Mobile view