NGES交易系統(tǒng)交易API和行情API接口規(guī)范_第1頁
NGES交易系統(tǒng)交易API和行情API接口規(guī)范_第2頁
NGES交易系統(tǒng)交易API和行情API接口規(guī)范_第3頁
NGES交易系統(tǒng)交易API和行情API接口規(guī)范_第4頁
NGES交易系統(tǒng)交易API和行情API接口規(guī)范_第5頁
已閱讀5頁,還剩173頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、nges 交易系統(tǒng)交易系統(tǒng) 交易交易 api 和行情和行情 api 接口規(guī)范接口規(guī)范 versionversion:1.201.20 發(fā)布日期:發(fā)布日期: 20092009 年年 6 6 月月 2020 日日 i修訂記錄、核準(zhǔn)記錄和審核記錄修訂記錄、核準(zhǔn)記錄和審核記錄 修訂記錄修訂記錄 版本編號(hào)版本編號(hào)修訂日期修訂日期主要修訂摘要主要修訂摘要 1.20-r0022009/5/4技術(shù)中心和技術(shù)公司:根據(jù)會(huì)員接入規(guī)范和 流程測試結(jié)果修改文檔。 1.20-r0012008/12/4技術(shù)公司:增加災(zāi)備接口;增加主題查詢接 口說明。 1.12-r0032008/01/28 技術(shù)公司:增加 restart

2、、resume 和 quick 三種數(shù)據(jù)流恢復(fù)模式。 1.12-r0022007/12/17 技術(shù)部:合并 traderapi 和 mduserapi 文檔, 調(diào)整部分章節(jié)內(nèi)容。 1.12-r0012007/12/11 技術(shù)公司:增加了錯(cuò)誤代碼處理;增加了私 有流序列號(hào)設(shè)置功能;增加了前置機(jī) nameserver 內(nèi)容,但暫時(shí)不開放。 1.08-r0012007/8/31 上海期貨交易所技術(shù)部:根據(jù) nges v1.08 交易系統(tǒng)修改部分接口;提高壓縮效率;增 加交易員私有流。 1.002006/8/11上海期貨信息技術(shù)有限公司制定初稿。 核準(zhǔn)記錄核準(zhǔn)記錄 核準(zhǔn)人員核準(zhǔn)人員屬于部門(單位)屬于

3、部門(單位)核準(zhǔn)日期核準(zhǔn)日期 嚴(yán)少輝嚴(yán)少輝技術(shù)中心技術(shù)中心2009/6/20 審核記錄審核記錄 審核人員審核人員屬于部門(單位)屬于部門(單位)審核日期審核日期 鄒文軍鄒文軍技術(shù)中心技術(shù)中心2009/5/20 文件制作和維護(hù):上海期貨交易所技術(shù)部;上海期貨信息技術(shù)有限公司。文件制作和維護(hù):上海期貨交易所技術(shù)部;上海期貨信息技術(shù)有限公司。 目目 錄錄 第一部分、第一部分、ngesnges 交易系統(tǒng)接口介紹交易系統(tǒng)接口介紹 .4 4 1.1.介紹介紹.4 4 1.1.背景.4 1.2.traderapi 簡介.4 1.3.mduserapi 簡介 .4 1.4.traderapi/mduserap

4、i 發(fā)行的平臺(tái).4 1.5.修改歷史.4 1.5.1.版本 1.20.4 2.2.ftdftd 體系結(jié)構(gòu)體系結(jié)構(gòu) .4 4 2.1.通訊模式.4 2.2.數(shù)據(jù)流.4 3.3.接口模式接口模式.4 4 3.1.traderapi 接口.4 3.1.1.對話流和查詢流編程接口.4 3.1.2.私有流編程接口.4 3.1.3.公共流編程接口.4 3.2.mduserapi 接口 .4 3.2.1.對話流編程接口.4 3.2.2.行情流編程接口.4 4.4.運(yùn)行模式運(yùn)行模式.4 4 4.1.工作流程.4 4.1.1.初始化階段.4 4.1.2.功能調(diào)用階段.4 4.2.工作線程.4 4.3.會(huì)員系統(tǒng)使

5、用 traderapi 與交易系統(tǒng)的交互.4 4.4.與交易所前置系統(tǒng)的連接.4 4.5.本地文件.4 4.6.請求/應(yīng)答日志文件.4 4.7.可靠數(shù)據(jù)流的訂閱方式.4 4.7.1.api 維護(hù)重傳報(bào)文的序號(hào) .4 4.7.2.會(huì)員系統(tǒng)維護(hù)重傳報(bào)文的序號(hào).4 4.8.心跳機(jī)制(heartbeat) .4 4.9.前置機(jī)列表.4 4.10.災(zāi)備接口.4 第二部分、第二部分、traderapitraderapi 參考手冊參考手冊 .4 4 1.1.traderapitraderapi 接口分類接口分類 .4 4 1.1.管理接口.4 1.2.業(yè)務(wù)接口.4 1.3.當(dāng)前版本不開放的業(yè)務(wù).4 2.2.

6、traderapitraderapi 參考手冊參考手冊 .4 4 2.1.cshfeftdctraderspi接口 .4 2.1.1.onfrontconnected 方法.4 2.1.2.onfrontdisconnected 方法.4 2.1.3.onheartbeatwarning 方法.4 2.1.4.onpackagestart 方法.4 2.1.5.onpackageend 方法.4 2.1.6.onrspuserlogin 方法.4 2.1.7.onrspuserlogout 方法.4 2.1.8.onrspuserpasswordupdate 方法 .4 2.1.9.onrsp

7、subscribetopic 方法.4 2.1.10.onrspqrytopic 方法.4 2.1.11.onrsperror 方法 .4 2.1.12.onrsporderinsert 方法 .4 2.1.13.onrsporderaction 方法.4 2.1.14.onrspquoteinsert 方法.4 2.1.15.onrspquoteaction 方法.4 2.1.16.onrspexecorderinsert 方法 .4 2.1.17.onrspexecorderaction 方法.4 2.1.18.onrspqrypartaccount 方法.4 2.1.19.onrspqr

8、yorder 方法.4 2.1.20.onrspqryquote 方法.4 2.1.21.onrspqrytrade 方法.4 2.1.22.onrspqryclient 方法.4 2.1.23.onrspqrypartposition 方法.4 2.1.24.onrspqryclientposition 方法.4 2.1.25.onrspqryinstrument 方法.4 2.1.26.onrspqryinstrumentstatus 方法 .4 2.1.27.onrspqrybulletin 方法.4 2.1.28.onrspqrymarketdata 方法 .4 2.1.29.onrs

9、pqrymblmarketdata 方法.4 2.1.30.onrspqryhedgevolume 方法.4 2.1.31.onrtntrade 方法.4 2.1.32.onrtnorder 方法.4 2.1.33.onrtnquote 方法 .4 2.1.34.onrtnexecorder 方法.4 2.1.35.onrtninstrumentstatus 方法.4 2.1.36.onrtninsinstrument 方法.4 2.1.37.onrtndelinstrument 方法.4 2.1.38.onrtninscombinationleg 方法.4 2.1.39.onrtndelco

10、mbinationleg 方法 .4 2.1.40.onrtnbulletin 方法 .4 2.1.41.onrtnaliasdefine 方法.4 2.1.42.onrtnflowmessagecancel 方法.4 2.1.43.onerrrtnorderinsert 方法.4 2.1.44.onerrrtnorderaction 方法.4 2.1.45.onerrrtnquoteinsert 方法.4 2.1.46.onerrrtnquoteaction 方法 .4 2.1.47.onerrrtnexecorderinsert 方法.4 2.1.48.onerrrtnexecordera

11、ction 方法.4 2.1.49.onrspcomborderinsert 方法.4 2.1.50.onrspqrycomborder 方法 .4 2.1.51.onrtncomborder 方法.4 2.1.52.onerrrtncomborderinsert 方法.4 2.2.cshfeftdctraderapi接口.4 2.2.1.createftdctraderapi 方法.4 2.2.2.getversion 方法 .4 2.2.3.release 方法 .4 2.2.4.init 方法 .4 2.2.5.join 方法.4 2.2.6.gettradingday 方法.4 2.2

12、.7.registerspi 方法.4 2.2.8.registerfront 方法.4 2.2.9.registernameserver 方法.4 2.2.10.setheartbeattimeout 方法.4 2.2.11.openrequestlog 方法.4 2.2.12.openresponselog 方法 .4 2.2.13.subscribeprivatetopic 方法 .4 2.2.14.subscribepublictopic 方法.4 2.2.15.subscribeusertopic 方法.4 2.2.16.requserlogin 方法 .4 2.2.17.requs

13、erlogout 方法 .4 2.2.18.requserpasswordupdate 方法.4 2.2.19.reqsubscribetopic 方法 .4 2.2.20.reqqrytopic 方法.4 2.2.21.reqorderinsert 方法.4 2.2.22.reqorderaction 方法.4 2.2.23.reqquoteinsert 方法.4 2.2.24.reqquoteaction 方法.4 2.2.25.reqexecorderinsert 方法.4 2.2.26.reqexecorderaction 方法.4 2.2.27.reqqrypartaccount 方

14、法.4 2.2.28.reqqryorder 方法.4 2.2.29.reqqryquote 方法 .4 2.2.30.reqqrytrade 方法.4 2.2.31.reqqryclient 方法 .4 2.2.32.reqqrypartposition 方法.4 2.2.33.reqqryclientposition 方法 .4 2.2.34.reqqryinstrument 方法.4 2.2.35.reqqryinstrumentstatus 方法.4 2.2.36.reqqrymarketdata 方法.4 2.2.37.reqqrybulletin 方法 .4 2.2.38.reqq

15、rymblmarketdata 方法 .4 2.2.39.reqqryhedgevolume 方法.4 2.2.40.reqcomborderinsert 方法.4 2.2.41.reqqrycomborder 方法.4 3.3.traderapitraderapi 開發(fā)示例開發(fā)示例 .4 4 第三部分、第三部分、mduserapimduserapi 參考手冊參考手冊 .4 4 1.1.mduserapimduserapi 接口分類接口分類 .4 4 1.1.管理接口.4 1.2.業(yè)務(wù)接口.4 2.2.mduserapimduserapi 參考手冊參考手冊 .4 4 2.1.cshfeftdc

16、mduserspi接口.4 2.1.1.onfrontconnected 方法.4 2.1.2.onfrontdisconnected 方法.4 2.1.3.onheartbeatwarning 方法.4 2.1.4.onpackagestart 方法.4 2.1.5.onpackageend 方法.4 2.1.6.onrspuserlogin 方法.4 2.1.7.onrspuserlogout 方法.4 2.1.8.onrspsubscribetopic 方法.4 2.1.9.onrspqrytopic 方法.4 2.1.10.onrsperror 方法 .4 2.1.11.onrtnde

17、pthmarketdata 方法 .4 2.2.cshfeftdcmduserapi接口.4 2.2.1.createftdcmduserapi 方法.4 3.1.1.getversion 方法 .4 2.2.2.release 方法 .4 2.2.3.init 方法 .4 2.2.4.join 方法.4 2.2.5.gettradingday 方法.4 2.2.6.registerspi 方法.4 2.2.7.registerfront 方法.4 3.1.2.registernameserver 方法.4 2.2.8.setheartbeattimeout 方法.4 2.2.9.subscr

18、ibemarketdatatopic 方法.4 2.2.10.requserlogin 方法 .4 2.2.11.requserlogout 方法 .4 2.2.12.reqsubscribetopic 方法 .4 2.2.13.reqqrytopic 方法.4 3.3.mduserapimduserapi 開發(fā)示例開發(fā)示例 .4 4 第四部分第四部分 附錄附錄.4 4 1.1.錯(cuò)誤編碼列表錯(cuò)誤編碼列表.4 4 2.2.枚舉值列表枚舉值列表.4 4 3.3.數(shù)據(jù)類型列表數(shù)據(jù)類型列表.4 4 第一部分、第一部分、nges 交易系統(tǒng)接口介紹交易系統(tǒng)接口介紹 本部分主要介紹 nges 交易系統(tǒng)的接口

19、,包括: 第一章引入 nges 交易系統(tǒng)的兩個(gè)接口,traderapi 用于會(huì)員系統(tǒng)下達(dá)交 易、控制和查詢指令,接收私有流(含報(bào)單插入、報(bào)單操作響應(yīng)和成交回報(bào)) 、 公共流(市場控制提示) 、響應(yīng)流和查詢流(查詢結(jié)果) ;mduserapi 用于會(huì)員 系統(tǒng)和行情轉(zhuǎn)發(fā)商系統(tǒng)接收行情流。 第二章介紹了兩個(gè) api 之后使用的通信協(xié)議 ftd(futures trading data exchange protocol) ,重點(diǎn)說明了數(shù)據(jù)流。 第三章介紹了兩個(gè) api 對應(yīng)于不同類型應(yīng)用的編程接口。 第四章介紹了 api 的工作模式,包括線程之間的通信、心跳機(jī)制和私有流 信息傳輸?shù)目煽啃詫?shí)現(xiàn)。 作為

20、 nges 交易系統(tǒng)的接口基礎(chǔ),traderapi 和 mduserapi 的用戶應(yīng)該仔 細(xì)閱讀第一部分內(nèi)容。 1. 介紹介紹 1.1.背景背景 上海期貨交易所于 2006 年 11 月 3 日成功上線了“新一代交易所系統(tǒng)” (簡 稱 nges)的第一階段項(xiàng)目,其中包括交易系統(tǒng)(簡稱 nges 交易系統(tǒng)) 。 nges 交易系統(tǒng)使用了開放的主流平臺(tái),可以運(yùn)行在 unix 和 windows 操作系 統(tǒng)上。 在中國證監(jiān)會(huì)信息中心的統(tǒng)一領(lǐng)導(dǎo)下,上海期貨交易所(簡稱 shfe 或者 交易所) 、鄭州商品交易所(簡稱 czce)和大連商品交易所(簡稱 dce)聯(lián)合 研究了期貨交易數(shù)據(jù)交換標(biāo)準(zhǔn)(futu

21、res trading data exchange protocol,簡稱 ftd 或者 ftd 協(xié)議) 。中國證監(jiān)會(huì)于 2005 年 3 月 25 日發(fā)布了 ftd(jr/t 0016-2004) ,并于同日作為行業(yè)標(biāo)準(zhǔn)實(shí)施。 nges 交易系統(tǒng)本質(zhì)上使用 ftd 作為會(huì)員遠(yuǎn)程交易的主接入?yún)f(xié)議;同時(shí)為 保持兼容和會(huì)員遠(yuǎn)程交易系統(tǒng)平穩(wěn)切換,nges 交易系統(tǒng)支持原有基于 stratus 交易主機(jī)的 v1 和 v2 版本的接口(分別簡稱為 ofpv1 和 ofpv2) ;ofpv1 和 v2 在 nges 交易系統(tǒng)內(nèi)部通過前置機(jī)實(shí)現(xiàn)了到 ftd 的翻譯和轉(zhuǎn)換。 和 ofpv1 和 v2 不同,f

22、td 協(xié)議體系較為復(fù)雜,為簡化會(huì)員端遠(yuǎn)程交易系 統(tǒng)的開發(fā)難度,同時(shí)也為提高交易系統(tǒng)運(yùn)行的可靠性,shfe 不建議會(huì)員的遠(yuǎn) 程交易系統(tǒng)(簡稱會(huì)員系統(tǒng)或者會(huì)員端)直接使用 ftd 協(xié)議接入 nges 交易系 統(tǒng)。為此,上海期貨交易所發(fā)布了 nges 交易系統(tǒng)的交易 api 接口(簡稱 nges traderapi 或者 traderapi)和行情 api 接口(簡稱 nges mduserapi 或 者 mduserapi) 。 會(huì)員系統(tǒng)調(diào)用 traderapi 即可完成與 nges 交易系統(tǒng)的對接,接收到交易 所的報(bào)單和成交回報(bào)后 traderapi 將回調(diào)(callback)會(huì)員系統(tǒng);會(huì)員系統(tǒng)

23、或者 行情轉(zhuǎn)發(fā)商(簡稱行情商) (會(huì)員和行情轉(zhuǎn)發(fā)商接收交易所行情的系統(tǒng)統(tǒng)稱為行 情接收端程序)系統(tǒng)調(diào)用 mduserapi 即可完成與 nges 交易系統(tǒng)的對接,接收 到交易所的行情后 mduserapi 將回調(diào)(callback)行情接收端程序(又稱為行 情接收系統(tǒng)) 。 traderapi 把與 nges 交易系統(tǒng)之間復(fù)雜的協(xié)議轉(zhuǎn)換、數(shù)據(jù)同步和網(wǎng)絡(luò)通 信進(jìn)行了封裝。traderapi 通過建立一個(gè)基于 tcp 的虛鏈路通道與 nges 交易 系統(tǒng)交易前置機(jī)的連接,實(shí)現(xiàn)會(huì)員系統(tǒng)的報(bào)單等交易行為。通過 traderapi 建 立的連接通道具有多地址注冊、斷線自動(dòng)重連和交易數(shù)據(jù)自動(dòng)重傳等特點(diǎn)。

24、mduserapi 與 traderapi 類似,建立一個(gè)基于 tcp 的虛鏈路通道與 nges 交易系統(tǒng)行情前置機(jī)的連接,實(shí)現(xiàn)行情的訂閱和接收。 1.2.traderapi 簡介簡介 traderapi 是一個(gè)基于 c+的類庫,通過使用和擴(kuò)展類庫提供的接口來實(shí)現(xiàn) 全部的交易功能,包括報(bào)單與報(bào)價(jià)的錄入、報(bào)單與報(bào)價(jià)的撤銷、報(bào)單與報(bào)價(jià)的 掛起、報(bào)單與報(bào)價(jià)的激活、報(bào)單與報(bào)價(jià)的修改、報(bào)單與報(bào)價(jià)的查詢、成交單查 詢、會(huì)員客戶查詢、會(huì)員持倉查詢、客戶持倉查詢、合約查詢、合約交易狀態(tài) 查詢、交易所公告查詢。該類庫包含以下 5 個(gè)文件: 文件名版本文件大小文件描述 ftdctraderapi.hv1.20交易

25、接口頭文件 ftdcuserapistruct.h v1.20 定義了 userapi 所需的一系列數(shù)據(jù)類 型的頭文件 ftdcuserapidatatype. h v1.20 定義了一系列業(yè)務(wù)相關(guān)的數(shù)據(jù)結(jié)構(gòu)的 頭文件 traderapi.dllv1.20動(dòng)態(tài)鏈接庫二進(jìn)制文件 traderapi.libv1.20導(dǎo)入庫文件 支持 ms vc 6.0,ms vc.net 2003 編譯器。需要打開多線程編譯選項(xiàng) /mt。 注意:注意:nges 交易系統(tǒng)支持許多新的報(bào)單指令(比如市價(jià)、最優(yōu)價(jià)、組合 交易等) ,還支持新的交易品種(比如期權(quán)及其報(bào)價(jià)) ,但受現(xiàn)有交易規(guī)則限制, nges 交易系統(tǒng)并沒

26、有開放上述功能。會(huì)員系統(tǒng)在開發(fā)過程中需注意“當(dāng)前版當(dāng)前版 本不開放的業(yè)務(wù)本不開放的業(yè)務(wù)” ,同時(shí)在每個(gè)功能描述中的具體描述。 1.3.mduserapi 簡介簡介 mduserapi 也是一個(gè)基于 c+的類庫,通過使用和擴(kuò)展類庫提供的接口來 實(shí)現(xiàn)全部的行情訂閱和接收功能。該類庫包含以下 5 個(gè)文件: 文件名版本文件大小文件描述 ftdcmduserapi.hv1.20行情接口頭文件 ftdcuserapistruct.h v1.20 定義了 userapi 所需的一系列數(shù)據(jù)類 型的頭文件 ftdcuserapidatatype. h v1.20 定義了一系列業(yè)務(wù)相關(guān)的數(shù)據(jù)結(jié)構(gòu)的 頭文件 mdu

27、serapi.dllv1.20動(dòng)態(tài)鏈接庫二進(jìn)制文件 mduapi.libv1.20導(dǎo)入庫文件 支持 ms vc 6.0,ms vc.net 2003 編譯器。需要打開多線程編譯選項(xiàng) /mt。 1.4.traderapi/mduserapi 發(fā)行的平臺(tái)發(fā)行的平臺(tái) 目前發(fā)布了以下操作系統(tǒng)平臺(tái)的版本: intel x86/windowsxp:包括.h 文件、.dll 文件和.lib 文件。 intel linux:包括.h 文件和.so 文件;在 redhat kernel 2.6.9-42 下完成編 譯。 如果需要其他操作系統(tǒng)版本請和下面相關(guān)人員聯(lián)系: 聯(lián)系人:王君鵬聯(lián)系人:王君鵬 電話:電話:+

28、86-21-68400751 手機(jī):手機(jī):+86-0郵箱:郵箱: 1.5.修改歷史修改歷史 1.5.1. 版本版本 1.20 本版本基于nges 交易系統(tǒng)交易 api 和行情 api 接口規(guī)范 v1.12 r003 修改。主要有以下變更: 本版本提供了災(zāi)備功能: 增加【4.10 災(zāi)備接口】 ,簡要說明了災(zāi)備原理。 由于登錄報(bào)文中增加了數(shù)據(jù)中心代碼,traderapi、mduserapi 修 改了 requserlogin 和 onrspuserlogin 方法的參數(shù)。 traderapi 中增加了“數(shù)據(jù)流回退通知”onrtnflowmessagecancel 方法的說

29、明。 本版本提供了數(shù)據(jù)流長度的查詢功能: 登錄交易系統(tǒng)時(shí),應(yīng)答中會(huì)返回當(dāng)前會(huì)員私有流長度和交易員私有 流長度。 traderapi、mduserapi 增加了對 reqqrytopic 和 rspqrytpoic 方 法說明,用于查詢流長度。 對以前版本發(fā)現(xiàn)問題的修正: traderapi、mduserapi 增加了 getversion 方法說明,之前版本雖 提供功能但無文檔說明。 mduserapi 增加了 registernameserver 方法說明,之前版本雖提供 功能但無文檔說明。 修改了聯(lián)系人,將周軍改成王君鵬。 2. ftd 體系結(jié)構(gòu)體系結(jié)構(gòu) 會(huì)員和行情商的系統(tǒng)并不直接與 ng

30、es 交易系統(tǒng)的核心主機(jī)通信;從安全 隔離角度上看,會(huì)員和行情商甚至不能意識(shí)到有交易撮合主機(jī)和行情主機(jī)的存 在;會(huì)員和行情商只能連接到上述主機(jī)的兩個(gè)代理服務(wù)器,分別是交易前置機(jī) (簡稱交易前置,也被稱為交易系統(tǒng)或交易所系統(tǒng))和行情前置機(jī)(簡稱為行 情前置) 。交易前置機(jī)負(fù)責(zé)會(huì)員系統(tǒng)的交易業(yè)務(wù),但不負(fù)責(zé)發(fā)送行情,此項(xiàng)功能 由行情前置機(jī)完成。 traderapi 使用建立在 tcp 協(xié)議之上的 ftd 協(xié)議與 nges 交易系統(tǒng)的前置 機(jī)通信。 mduserapi 使用建立在 tcp 協(xié)議之上的 ftd 協(xié)議與 nges 交易系統(tǒng)的行 情前置機(jī)通信。行情前置負(fù)責(zé)處理行情接收系統(tǒng)的行情訂閱請求,并將

31、所訂閱 的行情推送到行情接收系統(tǒng)。 2.1.通訊模式通訊模式 ftd 協(xié)議中的所有通訊都基于某個(gè)通訊模式。通訊模式實(shí)際上就是通訊雙 方協(xié)同工作的方式。 ftd 涉及的通訊模式共有三種: 對話通訊模式 私有通訊模式 廣播通訊模式 對話通訊模式是指由會(huì)員系統(tǒng)主動(dòng)發(fā)起的通訊請求。該請求被交易系統(tǒng)接 收和處理,并給予響應(yīng)。例如報(bào)單、查詢等。這種通訊模式與普通的客戶/服務(wù) 器模式相同。 私有通訊模式是指交易系統(tǒng)主動(dòng),向某個(gè)特定的會(huì)員或者特定會(huì)員的某個(gè) 特定交易員發(fā)出的信息。例如成交回報(bào)等。 廣播通訊模式是指交易系統(tǒng)主動(dòng),向市場中的所有會(huì)員都發(fā)出相同的信息。 例如公告、市場公共信息等。 通訊模式和網(wǎng)絡(luò)的連

32、接不一定存在簡單的一對一的關(guān)系。也就是說,一個(gè) 網(wǎng)絡(luò)連接中可能傳送多種不同通訊模式的報(bào)文,一種通訊模式的報(bào)文也可以在 多個(gè)不同的連接中傳送。 無論哪種通訊模式,其通訊過程都如圖 1 所示: 會(huì)員系統(tǒng)交易所系統(tǒng) 發(fā)送請求(如果在對話模式下) 給出響應(yīng)(如果在對話模式下) 連接請求 連接確認(rèn) 身份認(rèn)證請求 身份認(rèn)證響應(yīng) 發(fā)出私有信息(如果在私有模式下) 發(fā)出市場公告(如果在市場模式下) 斷開請求 斷開確認(rèn) 圖表圖表 1各通訊模式的工作過程各通訊模式的工作過程 2.2.數(shù)據(jù)流數(shù)據(jù)流 交易前置支持對話通訊模式、私有通訊模式、廣播通訊模式。行情前置的 行情轉(zhuǎn)發(fā)功能支持對話通訊模式、廣播通訊模式。 1、對

33、話通訊模式、對話通訊模式 對話通訊模式下支持對話數(shù)據(jù)流和查詢數(shù)據(jù)流。 對話數(shù)據(jù)流是一個(gè)雙向數(shù)據(jù)流,會(huì)員系統(tǒng)發(fā)送交易請求,交易系統(tǒng)反饋應(yīng) 答。交易系統(tǒng)不維護(hù)對話流的狀態(tài)。系統(tǒng)故障時(shí),對話數(shù)據(jù)流會(huì)重置,在途的 數(shù)據(jù)可能會(huì)丟失。 查詢數(shù)據(jù)流是一個(gè)雙向數(shù)據(jù)流,會(huì)員系統(tǒng)發(fā)送查詢請求,交易系統(tǒng)反饋應(yīng) 答。交易系統(tǒng)不維護(hù)查詢流的狀態(tài)。系統(tǒng)故障時(shí),查詢數(shù)據(jù)流會(huì)重置,在途的 數(shù)據(jù)可能會(huì)丟失。 2、私有通訊模式、私有通訊模式 在私有通訊模式下,數(shù)據(jù)流是可靠的。在一個(gè)交易日內(nèi),會(huì)員系統(tǒng)斷線后 恢復(fù)連接時(shí),可以請求交易系統(tǒng)發(fā)送指定序號(hào)之后的私有數(shù)據(jù)流數(shù)據(jù)。私有數(shù) 據(jù)流向會(huì)員系統(tǒng)提供報(bào)單狀態(tài)報(bào)告、成交回報(bào)更等信息。私有

34、數(shù)據(jù)流分為會(huì)員 私有流和交易員私有流兩種。 交易系統(tǒng)維護(hù)每個(gè)會(huì)員的私有流,有關(guān)該會(huì)員的回報(bào)信息,如報(bào)單回報(bào)、 成交回報(bào)等都通過會(huì)員私有流下發(fā)。交易員要有足夠的權(quán)限才可以訂閱會(huì)員私 有流。 交易員私有流與會(huì)員私有流類似,但只包含該交易員發(fā)起的交易引發(fā)的回 報(bào)信息。每個(gè)交易員都可以訂閱自已的交易員私有流。 3、廣播通訊模式、廣播通訊模式 廣播通訊模式下支持公共數(shù)據(jù)流。 公共數(shù)據(jù)流是一個(gè)單向數(shù)據(jù)流,由交易系統(tǒng)或者行情系統(tǒng)發(fā)向會(huì)員系統(tǒng), 用于發(fā)送市場公共信息;公共數(shù)據(jù)流是一個(gè)可靠的數(shù)據(jù)流,交易系統(tǒng)維護(hù)整個(gè) 系統(tǒng)的公共數(shù)據(jù)流,在一個(gè)交易日內(nèi),會(huì)員系統(tǒng)斷線恢復(fù)連接時(shí),可以請求交 易系統(tǒng)發(fā)送指定序號(hào)之后的公

35、共數(shù)據(jù)流數(shù)據(jù)。 以行情為例,行情數(shù)據(jù)流是一個(gè)公共數(shù)據(jù)流,由行情發(fā)布系統(tǒng)發(fā)向會(huì)員系 統(tǒng),用于發(fā)送行情信息;行情流是一個(gè)可靠的數(shù)據(jù)流,交易系統(tǒng)維護(hù)整個(gè)系統(tǒng) 的行情流,在一個(gè)交易日內(nèi),行情接收系統(tǒng)斷線恢復(fù)連接時(shí),可以請求交易系 統(tǒng)發(fā)送指定序號(hào)之后的行情流數(shù)據(jù)。 交易系統(tǒng)所提供的行情內(nèi)容是按照主題組織的。每個(gè)主題包括一組合約的 行情,還包括了行情發(fā)布內(nèi)容和發(fā)布方式,包括行情深度、采樣頻率、延遲時(shí) 間等。交易所會(huì)公布各行情主題的具體內(nèi)容,并設(shè)定每個(gè)行情用戶所能訂閱的 行情主題。每個(gè)行情主題對應(yīng)著一個(gè)行情流。 要獲得行情通知,行情接收系統(tǒng)必需在連接行情前置后,訂閱一個(gè)或多個(gè) 行情發(fā)布主題。 3. 接口模式

36、接口模式 3.1.traderapi 接口接口 traderapi 提供了二個(gè)接口,分別為 cshfeftdctraderapi 和 cshfeftdctraderspi。這兩個(gè)接口是對 ftd 協(xié)議的封裝。 會(huì)員系統(tǒng)可以通過 cshfeftdctraderapi 發(fā)出操作請求,通過繼承 cshfeftdctraderspi 并重載回調(diào)函數(shù)來處理交易系統(tǒng)的回復(fù)或響應(yīng)。 3.1.1. 對話流和查詢流編程接口對話流和查詢流編程接口 通過對話流進(jìn)行通訊的編程接口通常如下: /請求:請求: int cshfeftdctraderapi:reqxxx( cshfeftdcxxxfield *preqxx

37、x, int nrequestid) /響應(yīng):響應(yīng): void cshfeftdctraderspi:onrspxxx( cshfeftdcxxxfield *prspxxx, cshfeftdcrspinfofield *prspinfo, int nrequestid, bool bislast) 其中請求接口第一個(gè)參數(shù)為請求的內(nèi)容,不能為空。該參數(shù)根據(jù)請求命令 的不同使用具有不同的類,該類的成員變量的類型和合法的數(shù)值請參閱附錄中 的“枚舉值列表枚舉值列表”和“數(shù)據(jù)類型列表數(shù)據(jù)類型列表” 。 請求接口的第二個(gè)參數(shù)為請求號(hào)。請求號(hào)由會(huì)員系統(tǒng)負(fù)責(zé)維護(hù),交易所建 議每個(gè)請求的請求號(hào)不會(huì)重復(fù)。在接

38、收交易系統(tǒng)的響應(yīng)時(shí),可以得到當(dāng)時(shí)發(fā)出 請求時(shí)填寫的請求號(hào),從而可以將響應(yīng)與請求對應(yīng)起來。 當(dāng)收到交易系統(tǒng)應(yīng)答時(shí),cshfeftdctraderspi 的回調(diào)函數(shù)會(huì)被調(diào)用。如果響 應(yīng)數(shù)據(jù)不止一個(gè),則回調(diào)函數(shù)會(huì)被多次調(diào)用。 回調(diào)函數(shù)一共包含四個(gè)參數(shù)。其中: 第一個(gè)參數(shù)為響應(yīng)的具體數(shù)據(jù),如果出錯(cuò)或沒有結(jié)果有可能為 null。 第二個(gè)參數(shù)為處理結(jié)果,表明本次請求的處理結(jié)果是成功還是失敗。在發(fā)生多次 回調(diào)時(shí),除了第一次回調(diào),其它的回調(diào)該參數(shù)都可能為 null。 第三個(gè)參數(shù)為請求號(hào),即原來發(fā)出請求時(shí)填寫的請求號(hào)。 第四個(gè)參數(shù)為響應(yīng)結(jié)束標(biāo)志,表明是否是本次響應(yīng)的最后一次回調(diào)。 3.1.2. 私有流編程接口私

39、有流編程接口 私有流中的數(shù)據(jù)為會(huì)員或者交易員的私有信息,包括報(bào)單回報(bào)、成交回報(bào)、 報(bào)價(jià)回報(bào)、執(zhí)行宣告回報(bào)等。 通過私有流接收回報(bào)的編程接口通常如下: void cshfeftdctraderspi:onrtnxxx(cshfeftdcxxxfield *pxxx); /或者或者 void cshfeftdctraderspi:onerrrtnxxx(cshfeftdcxxxfield *pxxx, cshfeftdcrspinfofield *prspinfo); 當(dāng)收到交易系統(tǒng)通過私有流發(fā)布的回報(bào)數(shù)據(jù)時(shí),cshfeftdctraderspi 的回調(diào) 函數(shù)會(huì)被調(diào)用?;卣{(diào)函數(shù)的參數(shù)為回報(bào)的具體內(nèi)

40、容。 3.1.3. 公共流編程接口公共流編程接口 公共流中的數(shù)據(jù)中交易所的公共信息,包括合約、公告等。 通過公共流接收回報(bào)的編程接口通常如下: void cshfeftdctraderspi:onrtnxxx(cshfeftdcxxxfield *pxxx); 當(dāng)收到交易系統(tǒng)通過公共流發(fā)布的回報(bào)數(shù)據(jù)時(shí),cshfeftdctraderspi 的回調(diào) 函數(shù)會(huì)被調(diào)用?;卣{(diào)函數(shù)的參數(shù)為通知的具體內(nèi)容。 3.2.mduserapi 接口接口 與 traderapi 類似,mduserapi 提供了二個(gè)接口,分別為 cshfeftdcmduserapi 和 cshfeftdcmduserspi。這兩個(gè)接口

41、是對 ftd 協(xié)議的封裝。 行情接收系統(tǒng)可以通過 cshfeftdcmduserapi 發(fā)出操作請求,通繼承 cshfeftdcmduserspi 并重載回調(diào)函數(shù)來處理交易系統(tǒng)的響應(yīng)。 3.2.1. 對話流編程接口對話流編程接口 通過對話流進(jìn)行通訊的編程接口通常如下: /請求:請求: int cshfeftdcmduserapi:reqxxx( cshfeftdcxxxfield *preqxxx, int nrequestid) /響應(yīng):響應(yīng): void cshfeftdcmduserspi:onrspxxx( cshfeftdcxxxfield *prspxxx, cshfeftdcrsp

42、infofield *prspinfo, int nrequestid, bool bislast) 其中請求接口第一個(gè)參數(shù)為請求的內(nèi)容,不能為空。 請求接口的第二個(gè)參數(shù)為請求號(hào)。請求號(hào)由行情接收系統(tǒng)應(yīng)用程序負(fù)責(zé)維 護(hù),正常情況下每個(gè)請求的請求號(hào)不會(huì)重復(fù)。在接收交易系統(tǒng)的響應(yīng)時(shí),可以 得到當(dāng)時(shí)發(fā)出請求時(shí)填寫的請求號(hào),從而可以將響應(yīng)與請求對應(yīng)起來。 當(dāng)收到交易系統(tǒng)應(yīng)答時(shí),cshfeftdcmduserspi 的回調(diào)函數(shù)會(huì)被調(diào)用。如果 響應(yīng)數(shù)據(jù)不止一個(gè),則回調(diào)函數(shù)會(huì)被多次調(diào)用。 回調(diào)函數(shù)一共包含四個(gè)參數(shù)。其中: 第一個(gè)參數(shù)為響應(yīng)的具體數(shù)據(jù),如果出錯(cuò)或沒有結(jié)果有可能為 null。 第二個(gè)參數(shù)為處理結(jié)

43、果,表明本次請求的處理結(jié)果是成功還是失敗。在發(fā) 生多次回調(diào)時(shí),除了第一次回調(diào),其它的回調(diào)該參數(shù)都可能為 null。 第三個(gè)參數(shù)為請求號(hào),即原來發(fā)出請求時(shí)填寫的請求號(hào)。 第四個(gè)參數(shù)為響應(yīng)結(jié)束標(biāo)志,表明是否是本次響應(yīng)的最后一次回調(diào)。 3.2.2. 行情流編程接口行情流編程接口 行情流中的數(shù)據(jù)包含了交易系統(tǒng)推出的行情信息。 通過行情流接收回報(bào)的編程接口通常如下: void cshfeftdcmduserspi:onrtnxxx(cshfeftdcxxxfield *pxxx); 當(dāng)收到交易系統(tǒng)通過行情流發(fā)布的行情數(shù)據(jù)時(shí),cshfeftdcmduserspi 的回 調(diào)函數(shù)會(huì)被調(diào)用。回調(diào)函數(shù)的參數(shù)為通知

44、的具體內(nèi)容。 4. 運(yùn)行模式運(yùn)行模式 4.1.工作流程工作流程 會(huì)員系統(tǒng)/行情接收系統(tǒng)和交易系統(tǒng)的交互過程分為 2 個(gè)階段:初始化階段 和功能調(diào)用階段。 4.1.1. 初始化階段初始化階段 在初始化階段,會(huì)員系統(tǒng)/行情接收系統(tǒng)的程序必須完成如下步驟(具體代 碼請參考開發(fā)實(shí)例): 順序會(huì)員系統(tǒng)行情接收系統(tǒng) 1產(chǎn)生一個(gè) cshfeftdctraderapi 實(shí)例;產(chǎn)生一個(gè) cshfeftdcmduserapi 實(shí)例; 2產(chǎn)生一個(gè)事件處理的實(shí)例;產(chǎn)生一個(gè)事件處理的實(shí)例; 3注冊一個(gè)事件處理的實(shí)例; 注冊一個(gè)事件處理的實(shí)例; 4訂閱私有流; 訂閱公共流; 訂閱行情流; 5設(shè)置交易前置 nameserv

45、er 的網(wǎng)絡(luò)地址。 1 設(shè)置行情服務(wù) nameserver 的網(wǎng)絡(luò)地址。 1 6 初始化 初始化 1為了保持與上一版的兼容性,api 仍然提供了注冊交易前置(行情服務(wù))的接口,但交 易所建議不要使用這些接口,這些接口將在下一版本中取消。有關(guān) nameserver 的說明參見 4.9 前置機(jī)列表。 4.1.2. 功能調(diào)用階段功能調(diào)用階段 在功能調(diào)用階段,會(huì)員系統(tǒng)可以任意調(diào)用交易接口中的請求方法,如 requserlogin、reqorderinsert 等,同時(shí)提供回調(diào)函數(shù)以響應(yīng)回報(bào)信息。注意事 項(xiàng): 1.api 請求的輸入?yún)?shù)不能為 null。 2.api 請求的返回參數(shù),0 表示正確,其他表

46、示錯(cuò)誤,詳細(xì)錯(cuò)誤編碼請查 表。 4.2.工作線程工作線程 會(huì)員/行情接收系統(tǒng)應(yīng)用程序至少由兩個(gè)線程組成,一個(gè)是應(yīng)用程序主線程, 一個(gè)是 api 工作線程(traderapi 或者 mduserapi) 。應(yīng)用程序與交易或者行情 前置的通信是由 api 工作線程驅(qū)動(dòng)的。 cshfeftdctraderapi 和 cshfeftdcmduserapi 提供的接口是線程安全的,可 以有多個(gè)應(yīng)用程序線程同時(shí)發(fā)出請求。 cshfeftdctraderspi 提供的接口回調(diào)是由 traderapi 工作線程驅(qū)動(dòng),通過實(shí) 現(xiàn) spi 中的接口方法,從交易前置收取所需數(shù)據(jù)。 cshfeftdcmdusersp

47、i 提供的接口回調(diào)是由 mduserapi 工作線程驅(qū)動(dòng),通過 實(shí)現(xiàn) spi 中的接口方法,從行情前置收取所需數(shù)據(jù)。 如果重載的會(huì)員系統(tǒng)的應(yīng)用程序的某個(gè)回調(diào)函數(shù)阻塞,則等于阻塞了 traderapi 或者 mduserapi 工作線程,api 與交易/行情前置的通信會(huì)停止,因 此通常應(yīng)該迅速返回。在 cshfeftdctraderspi 和 cshfeftdcmduserspi 派生類的 回調(diào)函數(shù)中,可以利用將數(shù)據(jù)放入緩沖區(qū)或通過 windows 的消息機(jī)制來實(shí)現(xiàn)迅 速返回。 spi對象 api請求的應(yīng)答 委托修改信息 成交信息 錯(cuò)誤委托信息 合約資料修改信息 等等 交易前置 api對象 登陸

48、請求 委托請求 查詢請求 等等api請求 會(huì)員報(bào)盤程序 spi對象 行情信息 行情前置 api對象 登陸請求 訂閱請求 行情接收系統(tǒng) 圖表圖表 2 traderapi工作線程工作線程圖表圖表 3 mduserapi工作線程工作線程 4.3.會(huì)員系統(tǒng)使用會(huì)員系統(tǒng)使用 traderapi 與交易系統(tǒng)的交互與交易系統(tǒng)的交互 會(huì)員系統(tǒng)通過 traderapi 與交易系統(tǒng)交互。會(huì)員系統(tǒng)的請求通過 traderapi 發(fā)送到交易系統(tǒng);交易系統(tǒng)返回的應(yīng)答和回報(bào)通過 traderapi 返回給會(huì)員系統(tǒng)。 traderapi 的交易接口和私有流接口會(huì)有相互關(guān)聯(lián),如用戶報(bào)單錄入 reqorderinsert,馬上

49、會(huì)收到報(bào)單響應(yīng) onrsporderinsert,說明交易系統(tǒng)已經(jīng)收 到報(bào)單。報(bào)單進(jìn)入交易系統(tǒng)后,如果報(bào)單的交易狀態(tài)發(fā)生變化,就會(huì)收到報(bào)單 回報(bào) onrtnorder。如果報(bào)單被撮合(包括全部成交和部分成交),就會(huì)收到成交 回報(bào) onrtntrade。其中,一個(gè)用戶的報(bào)單回報(bào)和成交回報(bào)也會(huì)被所屬會(huì)員下其 他的交易員接收到(如果該用戶不使用僅接收交易員私有流方式登錄) 。 以交易員日常交易為例,有兩個(gè)會(huì)員系統(tǒng) a 和 b,發(fā)生的事件包括: 1交易員 a 報(bào)單,cu0711,買,20 手,64000 元; cshfeftdctraderapi:reqorderinsert:報(bào)單錄入請求。本函數(shù)由會(huì)

50、員系統(tǒng)的應(yīng) 用主線程調(diào)用,通過對話流發(fā)送到 nges 交易系統(tǒng)前置機(jī)。 交易系統(tǒng)報(bào)單處理:報(bào)單系統(tǒng)編號(hào)為 1;由于此時(shí)撮合隊(duì)列中無對手,報(bào)單狀態(tài)為“未成 交還在隊(duì)列中” 。nges 交易系統(tǒng)的前置機(jī)發(fā)出報(bào)單響應(yīng)給交易員 a 的對話流;發(fā)出報(bào)單 回報(bào)給交易員 a 的私有流和交易員 a 所屬會(huì)員的私有流。響應(yīng)和回報(bào)的報(bào)文由 traderapi 工作線程處理并調(diào)用 spi 對象的方法。 cshfeftdctraderspi:onrsqorderinsert:交易所的交易前置給出請求的應(yīng)答, 內(nèi)容為:錄入成功,本地編號(hào)為 1 的報(bào)單的系統(tǒng)編號(hào)為 1。本函數(shù)由 traderapi 工作線 程在收到交易前

51、置應(yīng)答后調(diào)用。 cshfeftdctraderspi:onrtnorder:交易所的交易前置立即在交易員 a 所屬會(huì)員的 私有流中或者交易員 a 的私有流中給出報(bào)單回報(bào),因其他席位無法獲得報(bào)單的具體信息, 為保持信息同步,因此回報(bào)內(nèi)容包括報(bào)單的狀態(tài)等報(bào)單的全部內(nèi)容。本函數(shù)由 traderapi 工作線程在收到交易前置的報(bào)單回報(bào)后調(diào)用。如果會(huì)員 a 還有其他交易員連 接并登錄到交易系統(tǒng),并且接收會(huì)員私有流,將收到相同的報(bào)單回報(bào)(以下同) 。 2交易員 b 報(bào)單,cu0711,賣,10 手,64000 元; cshfeftdctraderapi:reqorderinsert:報(bào)單錄入請求。 交易系

52、統(tǒng)報(bào)單處理:報(bào)單系統(tǒng)編號(hào)為 2;由于此時(shí)撮合隊(duì)列中無對手,報(bào)單狀態(tài)為“未成 交還在隊(duì)列中” 。 交易系統(tǒng)報(bào)單處理:報(bào)單系統(tǒng)編號(hào)為 2;嘗試撮合并能成交,因此報(bào)單狀態(tài)為“完全成交” 。nges 交易系統(tǒng)的前置機(jī)發(fā)出報(bào)單響應(yīng)給交易員 b 的對話流;發(fā)出報(bào)單回報(bào)給交易員 b 的私有流和交易員 b 所屬的會(huì)員私有流;發(fā)出報(bào)單回報(bào)給交易員 a 的私有流和交易員 a 所屬會(huì)員的私有流,提示系統(tǒng)編號(hào)為 1 的報(bào)單狀態(tài)交易系統(tǒng)已經(jīng)修改為“部分成交還在隊(duì) 列中” ,報(bào)單的“剩余數(shù)量”調(diào)整為 10 手;發(fā)出成交回報(bào)給交易員 b 的私有流和交易員 b 所屬的會(huì)員私有流;發(fā)出成交回報(bào)給交易員 b 的私有流和交易員 b

53、 所屬的會(huì)員私有流。 nges 交易系統(tǒng)將確保報(bào)單的回報(bào)在成交回報(bào)之前送達(dá)會(huì)員系統(tǒng),并且報(bào)單回報(bào)中的交易系統(tǒng)將確保報(bào)單的回報(bào)在成交回報(bào)之前送達(dá)會(huì)員系統(tǒng),并且報(bào)單回報(bào)中的“剩剩 余數(shù)量余數(shù)量”字段已經(jīng)反映交易系統(tǒng)報(bào)單簿中的最新數(shù)量,沒有必要再根據(jù)成交回報(bào)的數(shù)量再字段已經(jīng)反映交易系統(tǒng)報(bào)單簿中的最新數(shù)量,沒有必要再根據(jù)成交回報(bào)的數(shù)量再 調(diào)整。調(diào)整。 cshfeftdctraderspi:onrsqorderinsert:交易所的交易前置給出請求的應(yīng)答, 內(nèi)容為:錄入成功,本地編號(hào)為 1 的報(bào)單的系統(tǒng)編號(hào)為 2。 cshfeftdctraderspi:onrtnorder:交易所的交易前置立即在交易員

54、 b 所屬會(huì)員的 私有流中或者交易員 b 的私有流中給出報(bào)單回報(bào),報(bào)單狀態(tài)為“完全成交” 。 cshfeftdctraderspi:onrtnorder:交易所的交易前置立即在交易員 a 所屬會(huì)員的 私有流中或者交易員 a 的私有流中給出報(bào)單回報(bào),報(bào)單狀態(tài)為“部分成交還在隊(duì)列中” , 剩余數(shù)量為 10 手。 cshfeftdctraderspi:onrtntrade:交易所的交易前置立即在交易員 a 所屬會(huì)員的 私有流中或者交易員 a 的私有流中給出成交回報(bào)。 cshfeftdctraderspi:onrtntrade:交易所的交易前置立即在交易員 b 所屬會(huì)員的 私有流中或者交易員 b 的私

55、有流中給出成交回報(bào)。 3交易員 a 撤單; 下圖說明了會(huì)員系統(tǒng)、traderapi 和交易系統(tǒng)之間的 uml 交互圖。 交易員api交易所交易系統(tǒng)交易員api 報(bào)單請求:本地號(hào)=1,cu0711,買,20手,64000元 報(bào)單應(yīng)答:成功,本地號(hào)=1,系統(tǒng)號(hào)=1 報(bào)單回報(bào):系統(tǒng)號(hào)=1,本地號(hào)=1,狀態(tài)=未成交還在隊(duì)列中 處理報(bào)單 報(bào)單請求:本地號(hào)=1,cu0711,賣,10手,64000元 處理報(bào)單 報(bào)單應(yīng)答:成功,本地號(hào)=1,系統(tǒng)號(hào)=2 報(bào)單回報(bào):系統(tǒng)號(hào)=1,本地號(hào)=1,狀態(tài)=部分成交還在隊(duì)列中 成交回報(bào):成交號(hào)=1,系統(tǒng)號(hào)=1,本地號(hào)=1 報(bào)單回報(bào):系統(tǒng)號(hào)=2,本地號(hào)=1,狀態(tài)=完全成交 成

56、交回報(bào):成交號(hào)=1,系統(tǒng)號(hào)=2,本地號(hào)=1 撤單請求:系統(tǒng)號(hào)=1 撤單應(yīng)答:成功 報(bào)單回報(bào):系統(tǒng)號(hào)=1,本地號(hào)=1,狀態(tài)=已撤單 處理撤單 說明: 會(huì)員系統(tǒng)a cshfeftdctraderapi:reqorderinsert cshfeftdctraderspi:onrsporderinsert cshfeftdctraderspi:onrtnorder cshfeftdctraderspi:onrtnorder cshfeftdctraderspi:onrtntrade cshfeftdctraderspi:onrsporderaction cshfeftdctraderapi:reqor

57、deraction 會(huì)員系統(tǒng)b cshfeftdctraderapi:reqorderinsert cshfeftdctraderspi:onrsporderinsert cshfeftdctraderspi:onrtnorder cshfeftdctraderspi:onrtntrade 響應(yīng)流私有流 圖表圖表 4會(huì)員系統(tǒng)與交易系統(tǒng)信息交互示例會(huì)員系統(tǒng)與交易系統(tǒng)信息交互示例 4.4.與交易所前置系統(tǒng)的連接與交易所前置系統(tǒng)的連接 traderapi 和 mduserapi 使用建立在 tcp 協(xié)議之上的 ftd 協(xié)議與交易所的 交易/行情前置系統(tǒng)進(jìn)行通信。traderapi 使用 cshfef

58、tdctraderapi:registerfront 方法注冊交易所前置系統(tǒng)的網(wǎng)絡(luò)地址。mduserapi 使用 cshfeftdcmduserapi: registerfront 方法注冊交易所行情前置系統(tǒng)的網(wǎng)絡(luò)通訊地址。 交易所擁有多個(gè)交易/行情前置系統(tǒng),用于負(fù)載均衡且互為備份,從而提高 系統(tǒng)的性能和可靠性。為保證交易時(shí)通信的可靠性,traderapi 和 mduserapi 可以注冊多個(gè)前置。api 在初始化后,會(huì)從已注冊的前置中隨機(jī)挑選一個(gè)前置, 嘗試建立網(wǎng)絡(luò)連接,如果不成功,則依次逐個(gè)嘗試其它前置,直到連接成功為 止。如果在交易過程中網(wǎng)絡(luò)連接出現(xiàn)故障, api 依然使用上述過程,嘗試

59、連接 其它前置。 上海期貨交易所將公布至少兩臺(tái)前置機(jī)的網(wǎng)絡(luò)地址(位于上海期貨大廈數(shù) 據(jù)中心) ,因此會(huì)員系統(tǒng)應(yīng)該至少注冊兩個(gè)前置機(jī)的網(wǎng)絡(luò)地址以防止所連交易前 置發(fā)生故障從而引發(fā)單點(diǎn)隱患。上海期貨交易所正在建設(shè)張江災(zāi)備中心,屆時(shí) 將發(fā)布另外至少兩臺(tái)前置機(jī)的網(wǎng)絡(luò)地址(位于張江數(shù)據(jù)中心) 。鑒于 ftd 協(xié)議 的帶寬要求比 ofpv1 和 ofpv2 高,建議會(huì)員使用 128k 以上 ddn 專線或者 2m sdh 數(shù)字專線。上海期貨交易所和中國金融期貨交易所將共享會(huì)員遠(yuǎn)程交 易網(wǎng)絡(luò)接入:直接連接上海期貨交易所的鏈路可以作為備份鏈路接入中國金融 期貨交易所;反之亦然。 4.5.本地文件本地文件 tr

60、aderapi 在運(yùn)行過程中,會(huì)將一些數(shù)據(jù)寫入本地文件中。調(diào)用 createftdctraderapi 函數(shù),可以傳遞一個(gè)參數(shù),指明存貯本地文件的路徑。該 路徑必須在運(yùn)行前已創(chuàng)建好。本地文件的擴(kuò)展名都是“.con” 。 mduserapi 也與此類似,但函數(shù)名稱為:createftdcmduserapi。 4.6.請求請求/應(yīng)答日志文件應(yīng)答日志文件 traderapi 提供了兩個(gè)日志接口,用于記錄通信日志。openrequestlog 用 于打開請求日志,openresponselog 用于打開應(yīng)答日志。日志打開后,所有的 業(yè)務(wù)請求將記入請求日志,所有的業(yè)務(wù)應(yīng)答和回報(bào)將記入應(yīng)答日志。注意,為

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論