Google Analytics

2013年8月23日 星期五

SP Trader API (5)

試過SP Trader的DDE 後, 只能說, 比沒有好, 但仍有不少改進空間 , 特別是技術文件說明 , 以及下單回饋介面的支援. 接著筆者測試一下API .

SP 的 API 其實也算全面 , 從登入登出, 下單及覆盤, 獲取報價, 帳戶資訊等都有相當支援 , 美中不足也是說明文件比較簡化, 似參考卡多於說明. 幸好所帶的範例補充了說明的不足, 稍有編程經驗的都該能看得懂並大概掌握運作. 這點是要比DDE部份做得好.

不過SP的API明顯是為C++/C#開發者設計 , 在Excel VBA / VB.Net 方面要順利應用便不那麼順心. 主要是SP API運用大量的指針參數, 以及與VB不相容的C++數據存儲方式,因此在以VBA測試時不時出現一些意想不到的結果又或程式當掉。



例如 SPAPI_SetLoginInfo 方法,當在Excel VBA上應用時,即使用上一般建議的ByVal String 去傳送Char * 參數,也會發現程式不少時候當掉, 又或需要重覆登入才成功的怪現象. Order 結構也因存儲方式不同對不上,即使在Order 相關的API都傳回成功值, 也會發現傳入的參數大部分錯掉。

所以建議使用 C++/C#去開發相關程式,直至SP 改良相關DLL定義或編譯以跟VB相容。

反觀其他一些交易商, 像IB 都可透過DDE方式下單和覆盤,除了較易操作外,也保證了兼容。 

除了相容性問題外,SP API還有個比較大的問題,就是下單後程式不會立即回傳下單號,相關的Order 結構並沒有在下單後更新回傳值。那就回到筆者之前所說的問題,要透過查看下單報表去確定下單號, 而非在下單後立刻知道,那就增加了一點不必要的複雜性,希望在將來會有改善。(後記 ,看漏眼, 其實透過ApiOrderReportBack 回調函數可以取回單號, 但增加一點複雜性)

另一方面, Order結構中一些欄位, 如tradetime 如何解讀在文件中也沒說明, 得物無所用.

那麼如果之前已開發了在Excel VBA上的交易流程,能否配合SP API實作?其實透過將SP API 獨立實作成下單機 , 那相容問題就變得簡單易解決了。 單獨成機也有好處, 就是可以像萬能插般接上不同的交易程式。




沒有留言:

張貼留言