1. 程式人生 > >小白期貨CTP程式化交易開發入門(一)--CTP開發基礎

小白期貨CTP程式化交易開發入門(一)--CTP開發基礎

接觸CTP也才半年多,一邊學習一邊摸索,看到各大CTP的QQ群裡,也都是在問一些很菜的問題,就簡單總結和介紹下,今天主要是基礎知識,即CTP程式的基礎和開源的Demo版本:

CTP交易介面是由::::::上海期貨資訊科技有限公司::::::開發的,提供C++的介面,網上也有很多C++的Demo版本,可以直接使用。

1:上期所的介面為兩個.dll、兩個.lib和四個.h檔案,初學者可以不要Care太多,直接使用就好了。下載地址:::::::上海期貨資訊科技有限公司::::::

2:CTP開發中使用的模擬賬號密碼,要到SIMNOW上註冊。BrokerID為9999,賬號即investorId,密碼為SIMNOW的登陸密碼。

3:SIMNOW提供兩類資料,一為交易時段的地址,如09:00-15:00和21:00-02:30(大概,夜盤真心沒怎麼關心),使用第一套地址,這些資料是真實的行情資料,只是時間上比真實的行情會有延遲30秒左右(SIMNOW從交易所接收後轉發出來的)。二為非交易時段,這時的資料是歷史行情的播放,比如昨天的資料之類的,可以用來做程式除錯。具體介紹:

產品與服務 - SimNow


注意其中有行情前置,也就是MarketFront,意思是這個是用來做行情接收的地址。

交易前置,也就是TradeFont,意思是這個是用來做交易的地址。

行情接收和交易的地址是分開的,不能弄混,否則會登陸失敗。此外,若在期貨公司有開戶,可以將期貨公司的BrokerID、MarketFront、TradeFront、個人的期貨賬號和密碼填入,就可以達到程式化交易的目的了,當然,前提是寫好程式,做好風險管控。

4:行情Demo版,可以到:上期所CTP-Api之C++行情Demo版(可儲存資料到本地)下載,用VS2015開啟後,點選testMdApi.cpp,將INVESTOR_ID和PASSWORK改成第2點中說的,點執行,就可以接收到資料了。

執行後的情況:

在MdSpi.cpp中,可以將接收到的資料儲存到本地(請原諒我的C++很菜,主要是用C#程式設計,為了這個教程特意找度娘學了下C++的儲存,不然很多人看了Demo還是沒頭緒)。

5:交易Demo下載地址為:上期所CTP-Api之C++交易Demo版,方法和行情類似,主要是修改下BrokerID、MarketFront、TradeFront、個人的期貨賬號和密碼就可以了。模擬賬號要注意,當天申請,要第二天才能登陸,模擬賬號一般有100萬的模擬資金,可以用來除錯程式。

6:Demo版本使用CTP介面是比較早的版本,有興趣可以自己更新成2016版的介面,初學者可以不用改,影響不大。

7:CTP介面若做高頻交易,基本是使用C++程式設計,速度上會更快;不擅長C++的,現在網上也有C#、Python和Java等版本的介面,可以下載參考學下。


8:因本人對C++瞭解不多,主要是C#程式設計,CTP也有不少開源的C#版本,主推海風版和XAPI版,個人學習主要還是海風版的比較好用,海風版的下載地址:hubert28 (海風) · GitHub;XAPI版的地址:QuantBox · GitHub。其中海風大神最近也在推開源的Python版,有直播開發過程,有興趣的可以去加QQ群瞭解下。

c,==>國內 CTP 平臺目前是否有辦法獲得頻率高於 2 tick 每秒的高頻期貨資料? - 程式設計

10:期貨的Tick資料,目前都只能接收到一檔行情,也就是買1和賣1,多檔行情都是要收費的。