綜合交易平臺(tái)API開發(fā)簡(jiǎn)介.doc
《綜合交易平臺(tái)API開發(fā)簡(jiǎn)介.doc》由會(huì)員分享,可在線閱讀,更多相關(guān)《綜合交易平臺(tái)API開發(fā)簡(jiǎn)介.doc(10頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
綜合交易平臺(tái)API開發(fā)簡(jiǎn)介大綱 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)簡(jiǎn)稱為Thost,交易Api簡(jiǎn)稱為TraderApi ,行情Api簡(jiǎn)稱為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)單、撤單等操作。 私有通訊模式:由Thost主動(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;概述 - 初始化過(guò)程MdUserApi的初始化過(guò)程比較簡(jiǎn)單,默認(rèn)按照Quick的方式訂閱公有流和私有流。概述 - 樣例代碼 TraderApi樣例代碼: testTraderApi 初始化,登入,確認(rèn)結(jié)算結(jié)果,查詢合約,查詢資金,查詢持倉(cāng),報(bào)單,收委托回報(bào),撤單 MdUserApi樣例代碼: testMdUserApi 初始化,登入,訂閱,收行情概述 - 接口文件TraderApi接口文件: ThostFtdcTraderApi.h:定義了請(qǐng)求接口CThostFtdcUserApi,事件處理接口CThostFtdcUserSpi。 ThostFtdcUserApiStruct.h:定義了接口方法中用到的數(shù)據(jù)結(jié)構(gòu)。 ThostFtdcUserApiDataType.h:定義了數(shù)據(jù)結(jié)構(gòu)中用到數(shù)據(jù)類型,枚舉描述。 thosttraderapi.lib:靜態(tài)連接庫(kù) thosttraderapi.dll:動(dòng)態(tài)鏈接庫(kù)MdUserApi接口文件: ThostFtdcMdApi.h:定義了請(qǐng)求接口CThostFtdcMdApi,事件處理接口CThostFtdcMdSpi。 ThostFtdcUserApiStruct.h,ThostFtdcUserApiDataType.h:和TraderApi公用。 thostMdapi.lib:靜態(tài)連接庫(kù) thostMdapi.dll:動(dòng)態(tài)鏈接庫(kù)通用規(guī)則 - 命名規(guī)則Api的方法都是遵循一定的命名規(guī)則來(lái)設(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(CThostFtdcQryInstrumentField *pQryInstrument, int nRequestID) = 0; 請(qǐng)求查詢合約響應(yīng)virtual void OnRspQryInstrument(CThostFtdcInstrumentField *pInstrument, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) ; 查詢參數(shù)如果查詢參數(shù)為空,說(shuō)明需要查詢所有數(shù)據(jù)。如果需要查詢某個(gè)交易所的合約,就在查詢參數(shù)中指定ExchangeID。 請(qǐng)求編號(hào)RequestID發(fā)送請(qǐng)求時(shí)需要設(shè)定RequestID,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)起來(lái)。 指令返回值如果調(diào)用方法成功,返回0。否則表示不成功。 響應(yīng)信息RspInfo如果RspInfo為空,或者RspInfo的錯(cuò)誤代碼為0,說(shuō)明查詢成功。否則RspInfo中會(huì)保存錯(cuò)誤編碼和錯(cuò)誤信息。 查詢響應(yīng)數(shù)據(jù)查詢響應(yīng)方法每次返回1條記錄。如果沒(méi)有查詢結(jié)果,就返回空指針。 結(jié)束標(biāo)志IsLast無(wú)論是否有查詢響應(yīng)數(shù)據(jù)沒(méi),只要查詢響應(yīng)結(jié)束,IsLast為true。交易業(yè)務(wù) 交易序列號(hào)從報(bào)單到成交的交易過(guò)程中,會(huì)產(chǎn)生如下幾組交易序列號(hào): FrontID + SessionID + OrderRef用戶使用這組交易序列號(hào)可以按照自己的方式來(lái)唯一標(biāo)示發(fā)出的任何一筆委托。用戶登入成功后,會(huì)收到前置機(jī)編號(hào)FrontID, 會(huì)話編號(hào)SessionID 和最大報(bào)單引用MaxOrderRef。用戶在報(bào)單時(shí)設(shè)定報(bào)單引用OrderRef。 OrderRef可以從MaxOrderRef開始遞增。如果用戶沒(méi)有設(shè)定OrderRef,在報(bào)單響應(yīng)中,Thost會(huì)為用戶設(shè)置一個(gè)的OrderRef。使得每個(gè)報(bào)單的這組序列號(hào)保持唯一。因?yàn)檫@組交易序列號(hào)是由用戶設(shè)定的。所以在沒(méi)有得到報(bào)單響應(yīng)前,就可以使用這組交易序列號(hào)進(jìn)行撤單操作。 BrokerID + BrokerOrderSeqThost收到用戶報(bào)單后,為每個(gè)經(jīng)紀(jì)公司的報(bào)單生成1組交易序列號(hào)。 exchangeID + traderID + 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ù) 用戶登入 用戶登入指令是ReqUserLogin。用戶登入時(shí)需要輸入:經(jīng)紀(jì)公司代碼,用戶代碼(就是投資者代碼),密碼,用戶端產(chǎn)品信息(就是終端程序的名稱) 登入成功后,Thost返回:當(dāng)前會(huì)話的參數(shù)。用戶可以用這些參數(shù)定義自己的交易序列號(hào)FrontID+SessionID+MaxOrderRef當(dāng)前各個(gè)交易所的時(shí)間。終端程序依此可以估計(jì)未來(lái)各個(gè)交易所的時(shí)間。交易業(yè)務(wù) 準(zhǔn)備交易 在1個(gè)交易日中: 為了讓投資者了解當(dāng)前的交易風(fēng)險(xiǎn)。終端程序要在第一次發(fā)送交易指令之前,查詢投資者結(jié)算結(jié)果(ReqQrySettlementInfo)和確認(rèn)投資者結(jié)算結(jié)果(ReqSettlementInfoConfirm),才能正常發(fā)送交易指令,包括報(bào)單、撤單、服務(wù)器預(yù)埋單等指令。 如果投資者已經(jīng)確認(rèn)過(guò)了結(jié)算結(jié)果,以后登入Thost,不再需要確認(rèn)結(jié)算結(jié)果,就可以發(fā)送交易指令了。 可以通過(guò)請(qǐng)求查詢結(jié)算信息確認(rèn)(ReqQrySettlementInfoConfirm)方法了解今天是否做了確認(rèn)結(jié)算結(jié)果的操作。交易業(yè)務(wù) 報(bào)單指令 報(bào)單指令是:ReqOrderInsert。 報(bào)單指令中如下字段需要如下設(shè)置:/成交量類型:任何數(shù)量fldOrder.VolumeCondition = THOST_FTDC_VC_AV;/ 最小成交量:1fldOrder.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; 如果發(fā)送立即限價(jià)單:/ 報(bào)單價(jià)格條件類型:限價(jià)OrderPriceType = THOST_FTDC_OPT_LimitPrice;/ 價(jià)格:用戶設(shè)定LimitPrice = ;/ 有效期類型類型:當(dāng)日有效TimeCondition = THOST_FTDC_TC_GFD; 如果發(fā)送立即市價(jià)單/ 報(bào)單價(jià)格條件類型:任意價(jià)fldOrder.OrderPriceType = THOST_FTDC_OPT_AnyPrice;/價(jià)格:0fldOrder.LimitPrice = 0;/有效期類型類型:立即完成,否則撤銷fldOrder.TimeCondition = THOST_FTDC_TC_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; 關(guān)于平倉(cāng)上期所區(qū)分昨倉(cāng)和今倉(cāng)。平昨倉(cāng)時(shí),開平標(biāo)志類型設(shè)置為平倉(cāng)THOST_FTDC_OF_Close平今倉(cāng)時(shí),開平標(biāo)志類型設(shè)置為平今倉(cāng)THOST_FTDC_OF_CloseToday其他交易所不區(qū)分昨倉(cāng)和今倉(cāng)。開平標(biāo)志類型統(tǒng)一設(shè)置為平倉(cāng)THOST_FTDC_OF_Close 報(bào)單響應(yīng)和回報(bào)Thost收到報(bào)單指令,如果沒(méi)有通過(guò)參數(shù)校驗(yàn),拒絕接受報(bào)單指令。用戶就會(huì)收到OnRspOrderInsert消息,其中包含了錯(cuò)誤編碼和錯(cuò)誤消息。如果Thost接受了報(bào)單指令,用戶不會(huì)收到OnRspOrderInser,而會(huì)收到OnRtnOrder,用來(lái)更新委托狀態(tài)。 交易所收到報(bào)單后,通過(guò)校驗(yàn)。用戶會(huì)收到OnRtnOrder、OnRtnTrade。如果交易所認(rèn)為報(bào)單錯(cuò)誤,用戶就會(huì)收到OnErrRtnOrder。交易業(yè)務(wù) 撤單指令 撤單指令是:ReqOrderAction。 撤單輸入?yún)?shù):/ 報(bào)單操作引用,/ OrderRef相似,由用戶自己設(shè)定,保持遞增。如果用戶不設(shè)定的話,由Thost來(lái)設(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收到撤單指令,如果沒(méi)有通過(guò)參數(shù)校驗(yàn),拒絕接受撤單指令。用戶就會(huì)收到OnRspOrderAction消息,其中包含了錯(cuò)誤編碼和錯(cuò)誤消息。 如果Thost接受了撤單指令,用戶不會(huì)收到OnRspOrderAction,而會(huì)收到OnRtnOrder,用來(lái)更新委托狀態(tài)。 交易所收到撤單后,通過(guò)校驗(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)單指令 上述幾組交易序列號(hào):FrontID + SessionID + OrderRef,BrokerID + BrokerOrderSeq,ExchangeID + TraderID + LocalOrderIDExchangeID + 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_OST_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)描述了報(bào)單的成交事件 包括下述幾組交易序列號(hào):BrokerID + BrokerOrderSeq,ExchangeID + TraderID + LocalOrderIDExchangeID + OrderSysID,交易業(yè)務(wù) 交易時(shí)序交易業(yè)務(wù) 其他業(yè)務(wù) 查詢基礎(chǔ)數(shù)據(jù):交易所,合約,投資者,手續(xù)費(fèi)率,保證金率,交易編碼 查詢交易數(shù)據(jù):資金,持倉(cāng),(組合)持倉(cāng)明細(xì) 其他交易功能:發(fā)送預(yù)埋單、條件單 查詢/回報(bào):委托,成交,交易所狀態(tài) 銀期轉(zhuǎn)賬行情業(yè)務(wù) 訂閱/退訂 訂閱SubscribeMarketDataOnRspSubMarketDataOnRtnDepthMarketData 退訂UnSubMarketDataOnRspUnSubMarketData參考資料 Qq群:59216315,綜合交易平臺(tái)API技術(shù) 綜合交易平臺(tái)API開發(fā)常見問(wèn)題列表.pdf 綜合交易平臺(tái)交易API特別說(shuō)明.pdf 持倉(cāng)各資金項(xiàng)計(jì)算規(guī)則.xls 綜合交易平臺(tái)條件單操作手冊(cè).pdf CTP新版銀期轉(zhuǎn)帳TradeApi使用說(shuō)明.pdf 交易/行情開發(fā)實(shí)例.rar(windows32/linux 64) 綜合交易平臺(tái)資料: http:/202.109.110.121/api.htm 模擬環(huán)境:請(qǐng)參考樣例程序中的配置- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來(lái)的問(wèn)題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
3 積分
下載 |
- 配套講稿:
如PPT文件的首頁(yè)顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國(guó)旗、國(guó)徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 綜合 交易平臺(tái) API 開發(fā) 簡(jiǎn)介
鏈接地址:http://m.appdesigncorp.com/p-1561530.html