CTP API開發期貨自動交易平台概論


題目比較小眾,先介紹一下CTP。

綜合交易平台CTP(Comprehensive Transaction Platform)是由上海期貨信息技術有限公司(上海期貨交易所的全資子公司)開發的期貨交易平台,CTP平台以"新一代交易所系統"的核心技術為基礎,穩定、高速、開放式接口,適合程序化交易軟件運用和短線炒單客戶使用。

沒錯,是專門做期貨交易用的,關於期貨交易的風險,參考下面:

進行期貨交易風險相當大,可能發生巨額損失,損失的總額可能超過您存放在期貨經紀公司的全部初始保證金以及追加保證金。因此,您必須認真考慮自己的經濟能力是否適合進行期貨交易。

因為期貨保證金制度和價格波動的劇烈變化,很容易讓投資者血本無歸,其風險比股市要大,新手慎入。

廢話就這么多,下面介紹技術。

CTP是基於多線程的,至少有兩個線程在工作,一個是程序主線程,另一個是API工作線程。

API底層封裝了TCP通訊,通過函數回調來使用API接口。文檔手冊里的一個示意圖。所以開發CTP程序時,要先吃透API的各種回調函數,

CTP的API封裝分為兩大部分,一個是TraderApi(thosttraderapi.dll)負責交易部分,另一個是MdUserApi(thostmduserapi.dll)負責

舉個例子,如何創建TraderApi對象,以及注冊處理對象。下面的代碼和流程圖是一一對應的,看文章要仔細噢。

 

   CThostFtdcTraderApi* pUserApi = CThostFtdcTraderApi::CreateFtdcTraderApi();

    CtpTraderSpi* pUserSpi = new CtpTraderSpi(pUserApi); //創建API對象

    pUserApi->RegisterSpi((CThostFtdcTraderSpi*)pUserSpi);            // 注冊事件類,該事件類封裝了函數回調

    pUserApi->SubscribePublicTopic(THOST_TERT_RESTART);                    // 訂閱公有流

    pUserApi->SubscribePrivateTopic(THOST_TERT_RESTART);             // 訂閱私有流

    pUserApi->RegisterFront(tradeFront);                            // 注冊交易前置機

    pUserApi->Init(); //初始化API

 

詳細解答一下CtpTraderSpi ,他是一個繼承自CThostFtdcTraderSpi的類,里面封裝了函數回調。CThostFtdcTraderSpi是CTP封裝好的,留出接口允許我們重載,就這么簡單。

至於CtpTraderSpi里可以重載什么函數,你下載API SDK自己看看,太多了沒法完全說明白,而且很多函數也沒有用。。。

再給大家介紹一下交易類和行情類的結構體以及其命名特點。

 

 

上期API下載主頁

最后,現在股票,權證其實都有自動交易的API。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM