天天看點

轉:徹底搞定期貨穿透式CTP API接入

中信期貨看穿式監管認證操作指南(CTP系統)

https://www.citicsf.com/static/download/soft/%E4%B8%AD%E4%BF%A1%E6%9C%9F%E8%B4%A7%E7%9C%8B%E7%A9%BF%E5%BC%8F%E7%9B%91%E7%AE%A1%E8%AE%A4%E8%AF%81%E6%93%8D%E4%BD%9C%E6%8C%87%E5%8D%97%EF%BC%88CTP%E7%B3%BB%E7%BB%9F%EF%BC%89.pdf
           

尊敬的客戶:

根據證監會《關于進一步加強證券期貨經營機構客戶交易終端資訊等客戶資訊管理的規定》和期貨市場監控中心《期貨公司客戶交易終端資訊采集及接入認證技術規範》的通知要求,期貨公司應于2019年6月14日前完成資訊系統的改造更新并對客戶使用的交易終端軟體進行認證管理和報送采集資訊。

為落實以上要求,所有非标準用戶端接入的客戶(CTP二席客戶,且非使用快期、文華、博易、TB、達錢、金字塔用戶端)需按照要求對用戶端軟體進行改造,聯系資訊技術部進行測試,測試完成後即可接入新站點進行交易。如未在規定時限内按要求完成更新改造,按照監控中心要求,可能會影響後續接入。

具體測試流程請可參看《**期貨看穿式用戶端接入指引》,測試完成後,未報備用戶端需按照《資訊系統外部接入管理辦法》進行報備,已報備用戶端僅需完成測試。

特此通知。

穿透監管說明

AppID/RelayAppID是指什麼?

AppID是客戶交易終端軟體的唯一辨別碼,由終端軟體商按照規範要求編制,AppID由終端廠商名稱、終端軟體名稱和版本号三部分構成。RelayAppID是中繼代理軟體的唯一辨別碼,由中繼代理軟體商按照規範要求編制,RelayAppID由中繼廠商名稱、中繼軟體名稱和版本号三部分構成。

AppID和RelayAppID标準格式是啥?

CTP API在哪裡獲得?

CTP API是CTP系統提供的程式設計接口,可以在上期技術官網直接下載下傳得到。

直連模式、中繼代理模式是指什麼?

直連模式是客戶交易終端軟體與期貨公司交易軟體直接通訊,進行交易的模式。

  中繼代理模式是客戶交易終端軟體與期貨公司交易軟體間接通訊,進行交易的模式。

看穿式監管授權碼是什麼?

授權碼由期貨公司依據終端軟體商或中繼代理軟體商送出的AppID或RelayAppID生成派發,用于AppID或RelayAppID的合法性校驗。

轉:徹底搞定期貨穿透式CTP API接入
轉:徹底搞定期貨穿透式CTP API接入

資料來源:

https://www.vnpy.com/forum/topic/603-kan-wan-zhe-pian-che-di-gao-ding-qi-huo-chuan-tou-shi-ctp-apijie-ru

#1

操作流程

不多廢話先上結論(操作流程圖):

轉:徹底搞定期貨穿透式CTP API接入

description

下面是步驟說明,隻要照着做100%可以搞定!!!

第一步:申請穿透式接入

電話聯系你的客戶經理,向期貨公司申請進行穿透式接入測試。如果期貨公司服務品質較好,可能已經主動聯系你邀請測試了。

第二步:填表送出AppID

填寫申請表,每家期貨公司有所差別,但整體上需要提供的資訊可能包括:

CPU序列号
硬碟序列号
硬碟主分區盤符和大小
網卡MAC位址
内網IP和外網IP
交易程式的AppID
           

以上多條資訊的擷取,就需要用到cmd中的系統指令工具了。

輸入以下指令擷取CPU序列号:

wmic cpu get processorid

逐條輸入以下指令,擷取硬碟序列号、主分區盤符和大小:

diskpart

select disk 0

detail disk

輸入以下指令,“以太網擴充卡”下的“實體位址”就是MAC位址,“IPv4位址”就是内網IP:

ipconfig /all

通路www.ip138.com擷取你的外網IP,或者直接百度搜尋“IP”也行。

最後的AppID,是一個由使用者提供的交易程式代碼,以個人身份申請時,格式為:

client_xxxx_yyyy
           

其中xxxx是你的軟體名稱,yyyy是版本号,這兩個字段都是客戶自己填的資訊(沒有固定規則),以vn.py的v2.0版本為例,AppID可能為:

client_vnpy888_2.0
           

其中888的部分,是自定義的一個字元串,主要為了避免你的AppID和其他人重複,你可以選擇随意選擇:姓名拼音縮寫、某個數字、幸運詞…

第三步:拿到AuthCode

送出申請表後,一般當天或者第二天就能拿到期貨公司針對你的這個AppID提供的測試賬号資訊,包括:

使用者名、密碼
經紀商代碼、仿真測試伺服器位址(交易、行情)
産品名稱(你填的AppID)、授權編碼(AuthCode)
           

第四步:仿真測試

我們這裡測試環節以最新版的VN Studio為例,如果沒有的話請點選下載下傳:VNStudio-2.0.3。同樣你也可以選擇使用任何其他的軟體程式來操作,如果不幸掉坑後爬不出來的話再回到VN Station好了。

輕按兩下桌面的VN Station圖示,啟動後會彈出登入框。如果是第一次使用,請點選“微信登入”按鈕,掃描二維碼後注冊VN Station賬号(同樣也是vn.py官方社群論壇www.vnpy.com的登入賬号),如果已經有賬号了可以直接輸入後點選“登入”。

轉:徹底搞定期貨穿透式CTP API接入

登入完成後會看到VN Station主界面,此時請點選底部的“VN Trader Pro”,并在彈出的目錄選擇對話框中直接點“選擇檔案夾”按鈕(即在預設的Windows使用者目錄下啟動VN Station):

轉:徹底搞定期貨穿透式CTP API接入

随後會彈出配置VN Treader的對話框,注意此時請一定隻勾選加載CTPTEST接口,千萬不要同時勾選加載CTP接口,會因為dll沖突導緻後續測試失敗!!!!

轉:徹底搞定期貨穿透式CTP API接入

在VN Trader主界面上,點選左上角的“系統”->“連接配接CTPTEST”,在彈出的登入配置對話框中輸入期貨公司提供的測試賬号資訊(産品名稱就是AppID),點選連接配接按鈕後登入CTP穿透式測試用伺服器:

轉:徹底搞定期貨穿透式CTP API接入

當VN Trader左下角的日志監控元件中,重新整理出熟悉的日志資訊,看到“合約資訊擷取成功”的時候,就意味着我們已經完成測試了!

第五步:期貨公司校驗

搞定上面的測試伺服器連接配接登入後,就可以聯系期貨公司進行校驗工作了,通常可以一次性直接通過,如果遇到不通過的情況請檢視本文最後的常見問題來解決。

第六步:實盤接入

期貨公司校驗通過後,會将客戶申請的AppID和AuthCode添加到實盤CTP的伺服器上,此時隻要把啟動VN Trader Pro時,加載的接口由CTPTEST改為CTP,就可以連接配接上實盤交易環境,和以往一樣進行量化交易了。

轉:徹底搞定期貨穿透式CTP API接入

名詞解釋

穿透式監管

新的監管模式主要是明确了期貨公司對于其客戶交易行為的管理責任,是以需要對所有接入交易櫃台系統的交易終端軟體進行認證管理,防止壞人耍流氓後一走了之,難以追查。

穿透式API

穿透式監管的主要實作工具,支援對交易終端機器的資訊采集功能(即采集之前提到的CPU序列号、MAC位址等資訊),并在加密後直接上傳期貨市場監控中心。除了本文中用到的CTP穿透式API外,其他的櫃台也都提供了對應的穿透式API版本:恒生、易盛、飛創等,操作方法基本類似。

執行日期

在6月14日當天,所有期貨公司的櫃台系統全部強制更新為穿透式監管版本,老的非穿透式櫃台會全部下線,沒有所謂的“過渡期”,現在就已經是“過渡期”了!!!還有不到兩周的時間,所有通過API接入交易的使用者請趕緊吧,不要到了那天沒法交易才着急,而且普遍的拖拉習慣,目前在申請接入測試的客戶與日俱增,也對期貨公司每天繁忙的背景IT部門表示感謝。

6.3.13

CTP穿透式櫃台的仿真測試版本,也是CTPTEST接口中使用的API版本,所有客戶的仿真接入認證測試都必須使用該版本!主要因為該版API采集客戶的資訊是沒有加密的,期貨公司可以在背景檢視來進行認證工作。

6.3.15

CTP穿透式櫃台的實盤交易版本,也是CTP接口中使用的API版本,完成仿真接入測試後,必須使用該版本才能連接配接實盤交易的CTP櫃台。該版本的采集資訊是安全加密的,期貨公司的IT用背景系統也看不到。

直連模式

指的是所有用交易程式直接使用CTP的API連接配接CTP櫃台,進行行情擷取和委托交易的情況,幾乎所有自主開發或者使用開源架構的量化交易客戶都屬于這種情況,直接使用穿透式監管版本的API進行開發就行(帶_se字尾的)。

中繼模式

指的是:交易用戶端->中繼伺服器->CTP櫃台,采用這種連接配接模式主要包括商業量化交易軟體(比如文華财經)以及機構量化資管系統(比如O32),隻有中繼模式才需要用到那個DataCollect.dll檔案。

API内部工作流程

同樣以CTP為例:

調用Init,開始連接配接
收到OnFrontConnected,确認連接配接成功
調用ReqAuthenticate,這一步填入AppID和AuthCode,進行認證
收到OnRspAuthenticate,确認認證成功
調用ReqUserLogin,這一步同樣需要填入AppID,進行登入
收到OnRspUserLogin,确認登入成功
           

隻有交易接口TD需要進行認證,MD直接登入就行。每一步出錯的話都會有相應的報錯輸出提示,檢視錯誤資訊内容後照着修改就行。

常見問題

哪個版本的vn.py目前支援穿透式API?

最新的v2.0.3釋出版本(Py3 64位),和v1.9.2-LTS版本(Py2 32位),都支援了穿透式API,推薦使用Windows進行相關測試工作(Linux上需要自己調整連結庫做編譯)。

更新後SimNow環境連不上了!

截止目前的2019年6月1日,SimNow上的交易測試環境(包括第一套和第二套)依舊為非穿透式的老版本,是以用穿透式版本的API都是連不上的。

SimNow的終端廠商測試環境連上後沒有行情!

SimNow所提供的6.3.13測試環境,目前僅僅為了滿足使用者的穿透式版本測試需求(也就是能成功登入上來查詢一下合約資訊等),尚未提供第一套或者第二套環境中的仿真行情以及仿真交易功能,是以:就是沒有行情的~

報錯4097,cmd有輸出Decrypt handshake data failed

這是因為你的API版本和伺服器的版本不一緻導緻的,請按照以下流程排查:

是否同時import了CTP(CtpGateway)和CTPTEST(CtptestGateway)接口,如有請移除另一個(兩個同時加載會沖突)
確定使用CtptestGateway來連接配接6.3.13穿透式測試環境,用CtpGateway來連接配接6.3.15穿透式實盤環境
v2.0.3以及v1.9.2-LTS(最新Github代碼)都已更新到穿透式API,是以無法用于連接配接SimNow的老版本環境
           

UserProductInfo字段是用來幹嘛的?

該字段是之前非穿透式API時,用來進行客戶認證的産品名稱字段(配合AuthCode一起)。穿透式版本接入的方案文檔并沒有對該字段的強制要求,目前我們這邊已經對接了的5家期貨公司也均未要求使用,但聽說某些公司需要:如中信建投等,如果有了解其他公司情況的請在評論中分享。

能否使用雲伺服器或者虛拟機進行測試認證?

虛拟機和雲伺服器,對于本文開頭部分提到的CPU序列号、硬碟序列号等資訊,有可能擷取不全或者部分字段不符合規定。目前有些期貨公司要求嚴格,必須全部能正确擷取到,且和第二部申請表中填寫的内容一緻,才能算認證測試成功;另一些公司則是十分寬松,表也不用填,采集資訊也不看,隻要登入上來就算測試通過。

是以,能否使用雲伺服器和虛拟機,完全取決于你開戶的這家期貨公司了。

如果使用v1.9.2之前老版本的vn.py怎麼辦?

請将v1.9.2的以下内容複制到你的老版本對應的目錄下:

vnpy/api/ctp
vnpy/trader/gateway/ctpGateway
vnpy/trader/gateway/ctptestGateway
           

并采用上文提到的方式去做認證。

6.3.15的穿透式實盤API,想進行下測試怎麼辦?

目前隻發現中信期貨提供了6.3.15的仿真測試環境(忍不住豎起大拇指,不愧是中信),但最近估計申請人數過多,新的申請處理非常緩慢,如果大家發現别家提供6.3.15的測試環境也歡迎在評論裡告知。

為什麼期貨公司一定要用6.3.13和6.3.15兩個版本,接下來是否會合并都使用6.3.15?

為了滿足穿透式監管認證要求,期貨公司認證時要看到客戶機器采集的資訊,就隻能通過6.3.13版本的CTP API。而實盤交易的環境中,期貨監控中心要求直接上報采集資訊,禁止期貨公司檢視和修改,就必須通過6.3.15版本。

是以目前來看仿真和實盤使用兩個版本的API,是監管中心比較放心得過的方案吧,也就意味着交易用戶端必須要兩套API都對接準備好了。

繼續閱讀