SP Trader API (6)_程式交易

时间:2016-01-15
掌握C#/C++ SP Trader API 的效率, 配合Excel VBA的靈活 , 加上一款合意的分析/繪圖軟體(e.g Metastock , MT4, Amibroker ,TS ...) , 對一個散戶來說已可照顧到不少程式交易的細節實現 , 而又不會浪費之前開發的努力/重用之前開發的思路.
這比使用SP DDE接去Excel 有優勢. 首先API的速度較快和損耗比較小, 這對需要比較高頻和精確交易的投資者尤其有用, 另一方面SP DDE的使用, 正如之前文章所說, 比較有限制, 特別在下單及獲得成交資訊方面, 技術說明亦不是很充足.
而把SP API接去Excel 又比單以一般程式語言開發SP API的交易程式開發更容易 , 更省時. 試想想要參考SP 提供的範本改成一個XO圖雙頂雙底或突破交易程式, 需要多花多少時間人力? 單是加入股票圖以及增益分析 , Web Query 等, 在Excel 只需數個步驟便可以有個可用的初型, 要把同樣的東西實現在純C#/C++/VB/Java 上要花的功夫何止數倍. 而且要加減或修改交易思路亦花功夫. 下圖是筆者曾在Excel實現過的交易介面 ,讀者可衡量如轉用C#/ Java等來實現的功夫. 這過在SP API 面世前的Excel 交易程式, 只需透過局部改變就可以接上C# SP API介面, 這比重新開發更化算, 也達到重用的效果.

正如筆者的交易程式模板所示, 在Excel 接入的實時數據可以即市整理成不同周期的價位, 以及計算技術指標 , 又或跟其他歷史數據比較, 可以產生一些非標準的指標, 例如一些綜合基本因素或跨市場/產品表現的評估值, 在每日收盤後可以立即利用這些數據進行其他交易策略回測, 這也是把將SP API的機械部分和交易思路在不同平台上分開實現而又互相協作的好處.
另一個使用Excel 作中間人好處就是把Excel 作為控制台集合不同交易商的API/DDE 在一個介面上集中控制 , 然後把單一信號接入分析/繪圖軟體 . 比如可以在某一交易商信號有問題時轉接上另一間的信號, 又或是不同交易時段接上不同信號等, 這個在台灣已有部份投資人這樣實現.
最後一個連接就是把Excel 和分析/繪圖軟體連接, 現在不少軟體都可以支援DDE 接入(e.g. Amibroker , Multicharts) 又或透過第三方接入(像MT4 , Metastock) , 要更精準的可以透過軟體自身的API , 當然, 那可能涉及自身開發成本, 又或購買第三方的接入工具. 如果是透過DDE接入, 那麼經由API接進Excel再接DDE上分析/繪圖軟體會比透過兩重DDE上軟體更能減少即市成交數據的失真. 而在Excel建立的非標準指標可以作為一個新的證券工具加上去比較. 使用分析/繪圖軟體的好處是有更多現成的分析/繪圖/回測的工具使用, 特別是根據條件在不同的市場證券中尋找合資格的, 這比使用Excel 去做簡單而有效率. 而且有部份軟體提供免費網上抓取的盤後數據 , 如Amibroker. 在繪圖程式發出的信號又可透過 SP API 下單, 再由Excel 接獲成交資訊分析及作風險控制 .
在筆者的構思中, 這三個部件就可以這樣互相緊密合作 , 互補不足.
分析/繪圖軟體方面, 比較通行的有Metastock ,Multicharts, Amibroker , Ninjatrader, MT4/5 等. Metastock 自12版開始只能接上 Reuters數據, 加上Formula Language的局限性 , 筆者預期在海外的市場份額將萎縮 , MultiCharts 有不少用家, 有些部份也比Metastock出色, 就是有點昂貴 . 功能不俗而價錢相宜的筆者推薦Amibroker 及 Ninjatrader. 像Amibroker 只售USD 299 但已提供包括DDE在內數種即市數據接入 , Ninjatrader亦有免費盤後及回測數據, 這些方面比Metastock實在強多.
【推荐】 大尺寸电视为什么不能当显示器用?看完你就懂了!
【推荐】 Spark2.1.0入门:Spark MLlib介绍_厦大数据库实验室博客
【推荐】 招商期货交易项目及手续费
【推荐】 从JDK8飞升到JDK17,再到未来的JDK21