背景
話說(shuō)江湖盛傳,程序化交易疏虫,得接口者得天下永罚。為了解放人力,不再盯盤卧秘。編寫自動(dòng)化程序的思路有兩個(gè):1呢袱、是分析交易軟件的app,利用hack的技術(shù)模擬下單 2翅敌、找到一個(gè)穩(wěn)定靠譜的trade.dll活著tradex.dll
方案
最后兩種方法我們都有實(shí)現(xiàn)羞福,但總穩(wěn)定性和接口的功能的完整性考慮出發(fā),我們選擇的第二種方案蚯涮,GitHub - emeimonkey/ZMTradeService: 交易通股票程序化交易治专、普通行情、擴(kuò)展行情遭顶、Level2行情及板塊數(shù)據(jù)的WebSocket接口服務(wù)张峰,支持委托單成交回報(bào)及行情數(shù)據(jù)推送!
簡(jiǎn)單的說(shuō)液肌,就是利用ZMTradeService在windows機(jī)器部署一臺(tái)交易服務(wù)器挟炬,利用websocket進(jìn)行通信,而我們所需要做的就是通過(guò)python寫一個(gè)交易的client,用于其他場(chǎng)景的調(diào)用谤祖。
實(shí)現(xiàn)
由于券商接口本身是異步的形式婿滓,不太容易直接被上層策略所直接使用,因此這里的trade-client的主要功能就是將異步封裝成同步接口粥喜,以下以下單為例:
下訂單流程分:
1凸主、下訂單指令
2、代理服務(wù)器異步返回訂單指令已經(jīng)被成功下單到證券服務(wù)器端
3额湘、代理服務(wù)器異步返回事件卿吐,訂單指令已經(jīng)成功被券商發(fā)送到交易市場(chǎng)
因此,trade-client需要合并以上多部操作锋华,增加接口的簡(jiǎn)易性
整體需要考慮到的問(wèn)題為:1嗡官、對(duì)象的單例 2、每個(gè)接口的超時(shí)異常拋出機(jī)制 3毯焕、內(nèi)部狀態(tài)的維護(hù)
具體代碼實(shí)現(xiàn)https://code.aliyun.com/gravity_quant/trade