問一個關於API的問題
因為很基本,有點小害羞{:4_90:}API是做什麼的?在全自動下單機裡的角色是什麼@@?大約知道API不用登看盤軟體,跳過登入稽核可直接下單要怎麼實作勒?
小弟現在有用程式交易去做現股的蛛網交易
不過是用EXCEL+AUTOIT
最大資金大約動到100W,一年約賺3W,中間有停或手動下單
感覺可以頗安全的,但績效不是很OK
https://zh.wikipedia.org/wiki/%E ... F%E6%8E%A5%E5%8F%A3
維基百科的解答
API就是讓你的程式與第三方軟體做介接的程式介面(函數)
"下單API"顧名思義~是一個提供下單功能的程式介面
通常營業員可以提供API的使用範例程式碼 本帖最後由 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]