CTP平台之API

时间:2024-04-09 14:40:41

CTP平台

综合交易平台CTP(Comprehensive Transaction Platform)是由上海期货信息技术有限公司(上海期货交易所的全资子公司)开发的期货交易平台,CTP平台以“新一代交易所系统”的核心技术为基础,稳定、高速、开放式接口,适合程序化交易软件运用和短线炒单客户使用。

下图是目前综合交易平台提供的程序化交易方案的部署图:

CTP平台之API

用户的程序化交易终端可以使用专线接入综合交易平台。为进一步提高接入速度,也可将程序化交易终端托管在上期技术机房。

综合交易平台提供开放的API(基于C++)及相关文档,并免费提供其他成熟的交易终端,以方便程序化交易终端的开发测试。

API接口文件清单:

CTP平台之API

整个开发包有2个核心头文件,包括4个核心接口

CThostFtdcMdApi接口和CThostFtdcTraderApi两个头文件,一个处理行情一个处理交易

1. 处理行情的CThostFtdcMdApi接口有两个类,分别是CThostFtdcMdApi和CThostFtdcMdSpi, 以Api 结尾的是用来下命令的,以Spi结尾的是用来响应命令的回调。

2. 处理交易的CThostFtdcTraderApi接口也有两个类,分别是CThostFtdcTraderApi和CThostFtdcTraderSpi,  通过CThostFtdcTraderApi向CTP发送操作请求,通过CThostFtdcTraderSpi 接收CTP的操作响应。

API命名规则:

CTP平台之API

CTP是基于多线程的,至少有两个线程在工作,一个是程序主线程,另一个是API工作线程。

API底层封装了TCP通讯,通过函数回调来使用API接口。

CTP平台之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();                                // 连接运行

初始化过程:

CTP平台之API

报单时序图:

CTP平台之API

推荐阅读:

1.一个量化策略师的自白(好文强烈推荐)

2.股票期货经典的量化交易策略都在这里了!(源码)

3.期货/股票数据大全查询(历史/实时/Tick/财务等)

4.三分钟弄明白为什么贝叶斯是量化工作者最常用的工具

5.学习Python有哪些书籍?这里有一份书单送给你

6.江湖中常说的“网格交易法”到底是什么?

7.10种经典的日内交易策略模型思路

8.干货 | 量化选股策略模型大全

9.量化金融经典理论、重要模型、发展简史大全