COCO研究院

 找回密碼
 註冊
搜索
查看: 4011|回復: 3

[API] 問一個關於API的問題

[複製鏈接]
發表於 15-11-25 22:31 | 顯示全部樓層 |閱讀模式
因為很基本,有點小害羞API是做什麼的?在全自動下單機裡的角色是什麼@@?大約知道API不用登看盤軟體,跳過登入稽核可直接下單
要怎麼實作勒?


小弟現在有用程式交易去做現股的蛛網交易
不過是用EXCEL+AUTOIT
最大資金大約動到100W,一年約賺3W,中間有停或手動下單

感覺可以頗安全的,但績效不是很OK









發表於 15-11-25 23:04 | 顯示全部樓層
發表於 15-11-25 23:49 | 顯示全部樓層
API就是讓你的程式與第三方軟體做介接的程式介面(函數)

"下單API"顧名思義~是一個提供下單功能的程式介面

通常營業員可以提供API的使用範例程式碼
發表於 15-11-25 23:55 | 顯示全部樓層
本帖最後由 zaqimon 於 15-11-26 00:30 編輯

握個手
我現在也正在用Excel+AutoIt弄一套自己的東西
其實也沒什麼
就是依照我想要的功能寫個fancy一點的下單機而已

我做的東西簡單說就是
RTD或DDE即時報價接到Excel
條件判斷成立後用Mailslot下指令到AutoIt下單介面
AutoIt連接到IB TWS/IB Gateway提供的ActiveX API下單

API就是各家券商提供的下單介面
通常是ActiveX或dll介面
有些券商還會提供報價API
不過我覺得RTD/DDE就很夠用了

網路上也有人寫下單機可以支援多家不同券商的下單API
不過我覺得下單機還是自己寫比較保險
反正我要的功能很簡單就是下單改單刪單而已

例如AutoIt可以透過以下的程式連接IB API
  1. $g_oTws = ObjCreate('Tws.TwsCtrl.1')
  2. ObjEvent($g_oTws, "_TWSEvent_")
  3. $g_oTws.connect("", $port, $clientId, False)
複製代碼
下單部分也很簡單
  1. $oContract = $g_oTws.createContract()
  2. $oOrder = $g_oTws.createOrder()

  3. ; 正確設定好所需的$oContract, $oOrder內容之後...

  4. $g_oTws.placeOrderEx($g_nOrderId, $oContract, $oOrder)
  5. $g_nOrderId += 1
複製代碼
然後透過_TWSEvent_orderStatus()的event callback就可以得知剛才下的單是否成交

其他券商大概也是類似的方式就可以透過API下單

當然也可以在Excel裡面直接呼叫下單API
但我覺得把下單的部分拆開到AutoIt比較有彈性
之後就算轉換成其他軟體(例如Multicharts)也可以繼續沿用下單機的部分
只要該軟體有支援呼叫"Scripting.FileSystemObject"就可以送出Mailslot下單指令到我的下單機
或是任何可以呼叫CreateFile的程式都可以送出Mailslot下單

我選擇使用Mailslot因為我覺得Mailslot比讀寫檔案的方式來的好
Mailslot完全是在記憶體內運作而不需要實體的檔案存取動作
因此理論上應該會更快速速也更不消耗硬體資源

評分

參與人數 1金錢 +2 收起 理由
棒的 + 2 太強了

查看全部評分

您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則

手機版|Archiver|站長信箱|廣告洽詢|COCO研究院

GMT+8, 24-12-21 22:37

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回復 返回頂部 返回列表
理財討論網站 |