棒的 發表於 15-11-25 22:31

問一個關於API的問題

因為很基本,有點小害羞{:4_90:}API是做什麼的?在全自動下單機裡的角色是什麼@@?大約知道API不用登看盤軟體,跳過登入稽核可直接下單
要怎麼實作勒?


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

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









新手學期貨 發表於 15-11-25 23:04

https://zh.wikipedia.org/wiki/%E ... F%E6%8E%A5%E5%8F%A3
維基百科的解答

jinace 發表於 15-11-25 23:49

API就是讓你的程式與第三方軟體做介接的程式介面(函數)

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

通常營業員可以提供API的使用範例程式碼

zaqimon 發表於 15-11-25 23:55

本帖最後由 zaqimon 於 15-11-26 00:30 編輯

握個手{:8_536:}
我現在也正在用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$g_oTws = ObjCreate('Tws.TwsCtrl.1')
ObjEvent($g_oTws, "_TWSEvent_")
$g_oTws.connect("", $port, $clientId, False)
下單部分也很簡單$oContract = $g_oTws.createContract()
$oOrder = $g_oTws.createOrder()

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

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

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

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

我選擇使用Mailslot因為我覺得Mailslot比讀寫檔案的方式來的好
Mailslot完全是在記憶體內運作而不需要實體的檔案存取動作
因此理論上應該會更快速速也更不消耗硬體資源
頁: [1]
查看完整版本: 問一個關於API的問題