SP Trader 程式交易這個題目在本地投資者一直是個很感興趣的話題. 在本博客的點擊率也是名列前矛的. 有這麼大的需求廠商竟沒有開發相關的API, 也是一個可惜. 所以在筆者接過的程式交易系統Project, 也以炒賣美國及台灣產品的有較大的靈活發揮, 也是一點諷刺.
雖然沒有完美的API, 但要開發出不那麼完美的解決方案還是可行.筆者之前, 也曾在班上教授過利用Windows API 去自動化下單, 也總會有人興致勃勃的問, 是否也可查知下單成功與否, 過往筆者都會一概說做不到. 其實不是做不到, 是解決方案不夠完美. 其實心水清的讀者也曾在筆者的Youtube 教學中看過其中獲得成交訂單的一小片段.
不完美的地方在於, 下單成功與否不是透過當事人(即程式本身)說出來, 而是透過第二人(它顯示出來的數字)推出來 , 就好像一間屋好像失火, 不是透過看看間屋裡面是否出了火頭, 而是看到間屋周圍出現火光, 而推出間屋著了火.
實在點說, 筆者用的方法是透過程式觀察SP Trader 的下單狀況(order status)的變化來推算可能的訂單號, 從而追蹤它的狀況變化, 比如說, 送出訂單後, 以及得到成交確認(Trade alert)後,比較成交確認之前及之後的訂單量及狀態 , 可以大致準確的推出所留意的訂單號, 從而得出成交狀態及時間等. 這當然比從API得到訂單號間接, 也是不得已.
從一個程式抓取/控制另一個程式從來不是易事, 也沒有在任何情況都可行的解決方案, 在設計對SP 的控制程式, 亦要面對SP 改版的變更而使控制程式不可用或需更改, 在此筆者在從R8.3 升級至現在R8.4的過程中也改過一次程式, 也幸好SP 沒有來個翻天覆地的變化, 所以原理還是能使用.
在獲得像SP之類的股票軟件成交資訊的技術中, 以DLL 注入的方法最多人提及以及嘗試過, 不過效用還是沒有定論, 筆者一來沒有那麼高的能力, 二來也不想打無把握的仗, 空費人力和時間, 其實透過程式操控SP 抄錄訂單的功能 , 得出的效果也跟DLL 注入差不遠 , 要花的功夫也小得多. 在此也真的謝謝SP留了個不完美的偷雞的方法.
我有看到SP已有開放API?
回覆刪除http://www.sharppoint.com.hk/algo.php?lang=2