官網下載CTP API
綜合交易平台CTP(Comprehensive Transaction Platform)是由上海期貨信息技術有限公司(上海期貨交易所的全資子公司)開發的期貨交易平台,CTP平台以"新一代交易所系統"的核心技術為基礎,穩定、高速、開放式接口,適合程序化交易軟件運用和短線炒單客戶使用。官網:http://www.sfit.com.cn
API接口文件清單:
整個開發包有2個核心頭文件包括4個核心接口,
CThostFtdcMdApi接口和CThostFtdcTraderApi兩個頭文件,一個處理行情,一個處理交易。
(1)處理行情的CThostFtdcMdApi接口有兩個類,分別是CThostFtdcMdApi和CThostFtdcMdSpi,以Api結尾的是用來下命令的,以Spi結尾的是用來響應命令的回調。
(2)處理交易的CThostFtdcTraderApi接口也有兩個類,分別是CThostFtdcTraderApi和CThostFtdcTraderSpi, 通過CThostFtdcTraderApi向CTP發送操作請求,通過CThostFtdcTraderSpi接收CTP的操作響應。
API命名規則:
CTP是基於多線程的,至少有兩個線程在工作,一個是程序主線程,另一個是API工作線程。
API底層封裝了TCP通訊,通過函數回調來使用API接口。
CTP的API封裝分為兩大部分,一個是TraderApi(thosttraderapi.dll)負責交易部分,另一個是MdUserApi(thostmduserapi.dll)負責行情部分,
交易接口初始化步驟:
// 初始化交易線程 cout << "初始化交易..." << endl; g_pTradeUserApi = CThostFtdcTraderApi::CreateFtdcTraderApi(); // 創建交易實例 CtpTradeSpi *pTradeSpi = new CtpTradeSpi; // 創建交易回調實例 g_pTradeUserApi->RegisterSpi(pTradeSpi); // 注冊事件類 g_pTradeUserApi->SubscribePublicTopic(THOST_TERT_RESTART); // 訂閱公共流 g_pTradeUserApi->SubscribePrivateTopic(THOST_TERT_RESTART); // 訂閱私有流 g_pTradeUserApi->RegisterFront(gTradeFrontAddr); // 設置交易前置地址 g_pTradeUserApi->Init(); // 連接運行
行情接口初始化步驟:
// 初始化行情線程 cout << "初始化行情..." << endl; g_pMdUserApi = CThostFtdcMdApi::CreateFtdcMdApi(); // 創建行情實例 CThostFtdcMdSpi *pMdUserSpi = new CtpMdSpi; // 創建行情回調實例 g_pMdUserApi->RegisterSpi(pMdUserSpi); // 注冊事件類 g_pMdUserApi->RegisterFront(gMdFrontAddr); // 設置行情前置地址 g_pMdUserApi->Init(); // 連接運行
初始化過程:
報單時序圖: