綜合交易平臺(tái)API簡介.ppt
《綜合交易平臺(tái)API簡介.ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《綜合交易平臺(tái)API簡介.ppt(25頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、綜合交易平臺(tái)API簡介,,大綱,Api概述 通用規(guī)則 交易業(yè)務(wù) 行情業(yè)務(wù) 參考資料,概述,綜合交易平臺(tái)Api包括交易Api和行情Api 交易Api建立在Tcp協(xié)議上,實(shí)現(xiàn)了客戶端和綜合交易平臺(tái)之間的雙向異步通訊。行情Api可以運(yùn)行在Tcp或者在Udp協(xié)議上。 下面把綜合交易平臺(tái)簡稱為Thost,交易Api簡稱為TraderApi ,行情Api簡稱為MdUserApi。上述2種Api統(tǒng)稱為Api。,概述 - 通訊模式,Api有3種通訊模式: 對(duì)話通訊模式:由客戶端主動(dòng)發(fā)起請(qǐng)求。Thost收到請(qǐng)求、處理請(qǐng)求后,返回1條或者多條響應(yīng)紀(jì)錄。例如登入、各項(xiàng)查詢、報(bào)單、撤單等操作。 私有通訊模式:由Tho
2、st主動(dòng)向客戶端發(fā)出的相關(guān)信息。例如委托回報(bào)、成交回報(bào)、錯(cuò)單回報(bào)等 廣播通訊模式:由Thost主動(dòng)向所有客戶端發(fā)出的公共信息,例如行情等。,概述 通訊模式,有3種方式訂閱公有流和私有流 enum THOST_TE_RESUME_TYPE // 從當(dāng)天的第一條記錄開始接收數(shù)據(jù)流 THOST_TERT_RESTART = 0, // 接收上次斷線以后的數(shù)據(jù)流 THOST_TERT_RESUME, // 接收本次登入以后的數(shù)據(jù)流 THOST_TERT_QUICK ; 相同點(diǎn): 設(shè)定重傳數(shù)據(jù)流的起點(diǎn) 不同點(diǎn): 今天的第1條、第1條沒有收到過的記錄、登入后的第1條。,概述 - 初始化過程,MdUserA
3、pi的初始化過程比較簡單, 默認(rèn)按照Quick的方式訂閱公有流和私有流。,概述 - 樣例代碼,TraderApi樣例代碼: testTraderApi 初始化,登入,確認(rèn)結(jié)算結(jié)果,查詢合約,查詢資金,查詢持倉,報(bào)單,收委托回報(bào),撤單 MdUserApi樣例代碼: testMdUserApi 初始化,登入,訂閱,收行情,概述 - 接口文件,TraderApi接口文件: ThostFtdcTraderApi.h: 定義了請(qǐng)求接口CThostFtdcUserApi,事件處理接口CThostFtdcUserSpi。 ThostFtdcUserApiStruct.h: 定義了接口方法中用到的數(shù)據(jù)結(jié)構(gòu)。
4、ThostFtdcUserApiDataType.h: 定義了數(shù)據(jù)結(jié)構(gòu)中用到數(shù)據(jù)類型,枚舉描述。 thosttraderapi.lib:靜態(tài)連接庫 thosttraderapi.dll:動(dòng)態(tài)鏈接庫,MdUserApi接口文件: ThostFtdcMdApi.h: 定義了請(qǐng)求接口CThostFtdcMdApi,事件處理接口CThostFtdcMdSpi。 ThostFtdcUserApiStruct.h,ThostFtdcUserApiDataType.h: 和TraderApi公用。 thostMdapi.lib:靜態(tài)連接庫 thostMdapi.dll:動(dòng)態(tài)鏈接庫,,通用規(guī)則 - 命名規(guī)則,
5、Api的方法都是遵循一定的命名規(guī)則來設(shè)定。 請(qǐng)求指令:Req***, OnRsp***。如ReqUserLogin,OnRspUserLogin。 查詢指令:ReqQry***,OnRspQry***。如ReqQryInstrument,OnRspQryInstrument。 回報(bào)消息:OnRtn***,如OnRtnOrder,OnRtnTrade。 錯(cuò)誤回報(bào):OnErrRtn***,如OnErrRtnOrderInsert,OnErrRtnOrderAction。,通用規(guī)則 查詢/請(qǐng)求,請(qǐng)求查詢合約 virtual int ReqQryInstrument(CThostFtdcQryInst
6、rumentField *pQryInstrument, int nRequestID) = 0; 請(qǐng)求查詢合約響應(yīng) virtual void OnRspQryInstrument(CThostFtdcInstrumentField *pInstrument, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) ;,通用規(guī)則 查詢/請(qǐng)求,查詢參數(shù) 如果查詢參數(shù)為空,說明需要查詢所有數(shù)據(jù)。如果需要查詢某個(gè)交易所的合約,就在查詢參數(shù)中指定ExchangeID。 請(qǐng)求編號(hào)RequestID 發(fā)送請(qǐng)求時(shí)需要設(shè)定RequestI
7、D,TraderApi返回響應(yīng)時(shí)返回相關(guān)請(qǐng)求的RequestID。 因?yàn)門raderApi是異步實(shí)現(xiàn)的,終端程序可能連續(xù)發(fā)出多個(gè)請(qǐng)求和查詢指令。RequestID可以把請(qǐng)求/查詢指令和相關(guān)的回報(bào)關(guān)聯(lián)起來。 指令返回值 如果調(diào)用方法成功,返回0。 否則表示不成功。其中返回值-2、-3表示查詢請(qǐng)求受到流控限制,不能發(fā)送請(qǐng)求。,響應(yīng)信息RspInfo 如果RspInfo為空,或者RspInfo的錯(cuò)誤代碼為0,說明查詢成功。 否則RspInfo中會(huì)保存錯(cuò)誤編碼和錯(cuò)誤信息。 查詢響應(yīng)數(shù)據(jù) 查詢響應(yīng)方法每次返回1條記錄。如果沒有查詢結(jié)果,就返回空指針。 結(jié)束標(biāo)志IsLast 無論是否有查詢響應(yīng)數(shù)據(jù)沒,只要
8、查詢響應(yīng)結(jié)束,IsLast為true。,交易業(yè)務(wù) 用戶登入,用戶登入指令是ReqUserLogin。 用戶登入時(shí)需要輸入:經(jīng)紀(jì)公司代碼,用戶代碼(就是投資者代碼),密碼,用戶端產(chǎn)品信息(就是終端程序的名稱) 登入成功后,Thost返回: 當(dāng)前會(huì)話的參數(shù)。用戶可以用這些參數(shù)定義自己的交易序列號(hào)FrontID+SessionID+MaxOrderRef 當(dāng)前各個(gè)交易所的時(shí)間。終端程序依此可以估計(jì)未來各個(gè)交易所的時(shí)間。,交易業(yè)務(wù) 準(zhǔn)備交易,在1個(gè)交易日中: 為了讓投資者了解當(dāng)前的交易風(fēng)險(xiǎn)。終端程序要在第一次發(fā)送交易指令之前,查詢投資者結(jié)算結(jié)果(ReqQrySettlementInfo)和確認(rèn)投資者結(jié)
9、算結(jié)果(ReqSettlementInfoConfirm),才能正常發(fā)送交易指令,包括報(bào)單、撤單、服務(wù)器預(yù)埋單等指令。 如果投資者已經(jīng)確認(rèn)過了結(jié)算結(jié)果,以后登入Thost,不再需要確認(rèn)結(jié)算結(jié)果,就可以發(fā)送交易指令了。 可以通過請(qǐng)求查詢結(jié)算信息確認(rèn)(ReqQrySettlementInfoConfirm)方法了解今天是否做了確認(rèn)結(jié)算結(jié)果的操作。,交易業(yè)務(wù) 交易過程,交易業(yè)務(wù) 交易時(shí)序,交易業(yè)務(wù) 交易序列號(hào),從報(bào)單到成交的交易過程中,會(huì)產(chǎn)生如下幾組交易序列號(hào): FrontID + SessionID + OrderRef 用戶使用這組交易序列號(hào)可以按照自己的方式來唯一標(biāo)示發(fā)出的任何一筆委托。 用戶
10、登入成功后,會(huì)收到前置機(jī)編號(hào)FrontID, 會(huì)話編號(hào)SessionID 和最大報(bào)單引用MaxOrderRef。 用戶在報(bào)單時(shí)設(shè)定報(bào)單引用OrderRef。 OrderRef可以從MaxOrderRef開始遞增。 如果用戶沒有設(shè)定OrderRef,在報(bào)單響應(yīng)中,Thost會(huì)為用戶設(shè)置一個(gè)的OrderRef。使得每個(gè)報(bào)單的這組序列號(hào)保持唯一。 因?yàn)檫@組交易序列號(hào)是由用戶設(shè)定的。所以在沒有得到報(bào)單響應(yīng)前,就可以使用這組交易序列號(hào)進(jìn)行撤單操作。 BrokerID + BrokerOrderSeq Thost收到用戶報(bào)單后,為每個(gè)經(jīng)紀(jì)公司的報(bào)單生成1組交易序列號(hào)。 exchangeID + trade
11、rID + OrderLocalID 交易席位在向交易所報(bào)單時(shí),產(chǎn)生這組交易序列號(hào),標(biāo)示每一筆發(fā)往交易所的報(bào)單。 exchangeID + OrderSysID 交易所接受了投資者報(bào)單,產(chǎn)生這組交易序列號(hào),標(biāo)示每一筆收到的報(bào)單。 用戶撤單時(shí)也可以使用這組交易序列號(hào) 注意:服務(wù)器在觸發(fā)服務(wù)器預(yù)埋單、條件單時(shí),會(huì)發(fā)送新的委托指令到交易所,需要設(shè)置新的OrderRef和OrderSysID。,交易業(yè)務(wù) 報(bào)單指令,報(bào)單指令是:ReqOrderInsert。 報(bào)單指令中如下字段需要如下設(shè)置: ///成交量類型:任何數(shù)量 fldOrder.VolumeCondition = THOST_FTDC_VC_A
12、V; /// 最小成交量:1 fldOrder.MinVolume = 1; /// 強(qiáng)平原因:非強(qiáng)平 fldOrder.ForceCloseReason = THOST_FTDC_FCC_NotForceClose; /// 自動(dòng)掛起標(biāo)志:是 fldOrder.IsAutoSuspend = 1; ///用戶強(qiáng)評(píng)標(biāo)志:否 fldOrder.UserForceClose = 0;,交易業(yè)務(wù) 報(bào)單指令,如果發(fā)送立即限價(jià)單: /// 報(bào)單價(jià)格條件類型:限價(jià) OrderPriceType = THOST_FTDC_OPT_LimitPrice; /// 價(jià)格:用戶設(shè)定 LimitPrice = ;
13、/// 有效期類型類型:當(dāng)日有效 TimeCondition = THOST_FTDC_TC_GFD; FAK:TimeCondition = THOST_FTDC_TC_IOC; FOK:VolumeCondition = THOST_FTDC_VC_CV; 如果發(fā)送立即市價(jià)單 /// 報(bào)單價(jià)格條件類型:任意價(jià) fldOrder.OrderPriceType = THOST_FTDC_OPT_AnyPrice; ///價(jià)格:0 fldOrder.LimitPrice = 0; ///有效期類型類型:立即完成,否則撤銷 fldOrder.TimeCondition = THOST_FTDC_T
14、C_IOC;,如果發(fā)送觸發(fā)單 ///觸發(fā)條件:用戶設(shè)定 ContingentCondition = ; ///止損價(jià):用戶設(shè)定 StopPrice = ; /// 報(bào)單價(jià)格條件類型:限價(jià) OrderPriceType = THOST_FTDC_OPT_LimitPrice; /// 價(jià)格:用戶設(shè)定 LimitPrice = ; /// 有效期類型類型:當(dāng)日有效 TimeCondition = THOST_FTDC_TC_GFD;,交易業(yè)務(wù) 報(bào)單指令,關(guān)于平倉 上期所區(qū)分昨倉和今倉。 平昨倉時(shí),開平標(biāo)志類型設(shè)置為平倉THOST_FTDC_OF_Close 平今倉時(shí),開平標(biāo)志類型設(shè)置為平今倉THO
15、ST_FTDC_OF_CloseToday 其他交易所不區(qū)分昨倉和今倉。 開平標(biāo)志類型統(tǒng)一設(shè)置為平倉THOST_FTDC_OF_Close 報(bào)單響應(yīng)和回報(bào) Thost收到報(bào)單指令,如果沒有通過參數(shù)校驗(yàn),拒絕接受報(bào)單指令。用戶就會(huì)收到OnRspOrderInsert消息,其中包含了錯(cuò)誤編碼和錯(cuò)誤消息。 如果Thost接受了報(bào)單指令,用戶不會(huì)收到OnRspOrderInser,而會(huì)收到OnRtnOrder,用來更新委托狀態(tài)。 交易所收到報(bào)單后,通過校驗(yàn)。用戶會(huì)收到OnRtnOrder、OnRtnTrade。 如果交易所認(rèn)為報(bào)單錯(cuò)誤,用戶就會(huì)收到OnErrRtnOrder。,交易業(yè)務(wù) 撤單指令,撤單
16、指令是:ReqOrderAction。 撤單輸入?yún)?shù): /// 報(bào)單操作引用, /// OrderRef相似,有用戶自己設(shè)定,保持遞增。如果用戶不設(shè)定的話,有Thost來設(shè)定。 OrderActionRef /// 操作標(biāo)志類型:撤單 ActionFlag = THOST_FTDC_AF_Delete /// 交易序列號(hào) FrontID +SessionID+OrderRef, ExchangID+OrderSysID。 /// 其他參數(shù) BrokerID, UserID, InvestorID, InstrumentID,,撤單響應(yīng)和回報(bào): 和報(bào)單響應(yīng)和回報(bào)相似。 Thost收到撤單指令,如
17、果沒有通過參數(shù)校驗(yàn),拒絕接受撤單指令。用戶就會(huì)收到OnRspOrderAction消息,其中包含了錯(cuò)誤編碼和錯(cuò)誤消息。 如果Thost接受了撤單指令,用戶不會(huì)收到OnRspOrderAction,而會(huì)收到OnRtnOrder,用來更新委托狀態(tài)。 交易所收到撤單后,通過校驗(yàn),執(zhí)行了撤單操作。用戶會(huì)收到OnRtnOrder。 如果交易所認(rèn)為報(bào)單錯(cuò)誤,用戶就會(huì)收到OnErrRtnOrderAction。 注意:2階段提交的指令都是這個(gè)規(guī)律,包括銀期轉(zhuǎn)賬。,交易業(yè)務(wù)- 委托回報(bào),委托回報(bào)的事件處理方法是:OnRtnOrder()。 委托回報(bào)描述了報(bào)單的當(dāng)前狀態(tài),其中包括: 原始的報(bào)單指令 上述幾組交易
18、序列號(hào): FrontID + SessionID + OrderRef, BrokerID + BrokerOrderSeq, ExchangeID + TraderID + LocalOrderID ExchangeID + OrderSysID,,報(bào)單委托狀態(tài) ///TFtdcOrderStatusType是一個(gè)報(bào)單狀態(tài)類型 ///全部成交 #define THOST_FTDC_OST_AllTraded 0 ///部分成交還在隊(duì)列中 #define THOST_FTDC_OST_PartTradedQueueing 1 ///部分成交不在隊(duì)列中 #define THOST_FTDC_O
19、ST_PartTradedNotQueueing 2 ///未成交還在隊(duì)列中 #define THOST_FTDC_OST_NoTradeQueueing 3 ///未成交不在隊(duì)列中 #define THOST_FTDC_OST_NoTradeNotQueueing 4 ///撤單 #define THOST_FTDC_OST_Canceled 5 ///未知 #define THOST_FTDC_OST_Unknown a ///尚未觸發(fā) #define THOST_FTDC_OST_NotTouched b,交易業(yè)務(wù) 成交回報(bào),成交回報(bào)的事件處理方法是:OnRtnTrade()。 成交回報(bào)
20、描述了報(bào)單的成交事件 包括下述幾組交易序列號(hào): BrokerID + BrokerOrderSeq, ExchangeID + TraderID + LocalOrderID ExchangeID + OrderSysID,,交易業(yè)務(wù) 其他業(yè)務(wù),其他交易功能:發(fā)送服務(wù)器預(yù)埋單、服務(wù)器條件單 查詢基礎(chǔ)數(shù)據(jù):交易所,合約,投資者,手續(xù)費(fèi)率,保證金率,交易編碼 查詢交易數(shù)據(jù):資金,持倉,(組合)持倉明細(xì) 查詢/回報(bào):委托,成交,交易所狀態(tài) 銀期轉(zhuǎn)賬,行情業(yè)務(wù) 訂閱/退訂,訂閱 SubscribeMarketData OnRspSubMarketData OnRtnDepthMarketData,退訂 UnSubMarketData OnRspUnSubMarketData,注意: 需要輸入合約列表。 允許重復(fù)訂閱,服務(wù)器會(huì)合并訂閱列表。,參考資料,Qq群:CTP_API開發(fā)技術(shù)N群 綜合交易平臺(tái)資料: http://202.109.110.121/api.htm 綜合交易平臺(tái)API開發(fā)常見問題列表.pdf 綜合交易平臺(tái)交易API特別說明.pdf 持倉各資金項(xiàng)計(jì)算規(guī)則.xls 綜合交易平臺(tái)條件單操作手冊(cè).pdf CTP新版銀期轉(zhuǎn)帳TradeApi使用說明.pdf 交易/行情開發(fā)實(shí)例.rar 模擬環(huán)境:請(qǐng)參考樣例程序中的配置,
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 營養(yǎng)我最快樂模板
- 儲(chǔ)蓄股票債券保險(xiǎn)課件
- 景泰縣某小學(xué)四年級(jí)語文下冊(cè)第三單元綜合性學(xué)習(xí):輕叩詩歌大門課件新人教版四年級(jí)語文下冊(cè)第三單元綜合性學(xué)習(xí)
- 氣道壓增高醫(yī)學(xué)知識(shí)專家講座
- 滑模控制在DC-DC變換器中的應(yīng)用-滑模建模
- 愈放下愈快樂
- 歐博控制模式
- reason的用法
- 做一份能夠通過審批的采購方案0課件
- 二年級(jí)下冊(cè)解決問題課件
- 上市公司相關(guān)法律法規(guī)教學(xué)課件
- 124整式的除法1單項(xiàng)式除以單項(xiàng)式
- 2022年浙教初中數(shù)學(xué)七上《整式的加減》課件4
- 213第3課時(shí)幾何圖形與一元二次方程
- 物流成本控制