CTP初次接触三:官方CTP交易DEMO里的内容

标签:
程序化交易交易策略量化交易私募投资理财 |
分类: 04量化IT技术 |
VC程序通过#include ThostFtdcTraderApi.h,知道交易的类和功能(ThostFtdcTraderApi.lib),里面有两个类CThostFtdcTraderApi(交易申请)和CThostFtdcTraderSpi(交易响应)。
CThostFtdcTraderSpi(响应)类也需要继承才能使用,建立新类TraderSpi.h,在TraderSpi.h和TraderSpi.CPP文件里,里面有很多虚函数,需要在新类里实现代码(TraderSpi.cpp)。
程序从程序入口在开始运行(testTraderApi.cpp)
void main(void)
{
// 初始化UserApi
pUserApi = CThostFtdcTraderApi::CreateFtdcTraderApi(); //
创建UserApi
CTraderSpi* pUserSpi = new CTraderSpi();
pUserApi->RegisterSpi((CThostFtdcTraderSpi*)pUserSpi); //
注册事件类
pUserApi->SubscribePublicTopic(TERT_RESTART); //
注册公有流
pUserApi->SubscribePrivateTopic(TERT_RESTART); //
注册私有流
pUserApi->RegisterFront(FRONT_ADDR); // connect
pUserApi->Init();
pUserApi->Join();
// pUserApi->Release();
}
和行情部分的代码基本是类似的。
一、生成了API和SPI的两个类,一个负责交易申请,一个负责交易回报,并让两个类认识了一下。pUserApi->RegisterSpi(pUserSpi)。
二、然后和行情服务器打招呼,我这里有个API类,你先认识下,过会我要来串门。pUserApi->RegisterFront(FRONT_ADDR)。FRONT_ADDR是交易服务器的地址。
三、这里还要做两件事情,注册公有流和注册私有流。这是和行情那部分不一样的。公有流:交易所向所有连接着的客户端发布的信息。私有流:交易所向特定客户端发送的信息。如报单回报,成交回报。
三、然后,初始了一个线程,开始与交易服务器链接,准备串门了,
Init、Join。如果交易服务器是可链接的,就提供经纪公司代码、投资者代码、密码去登陆系统,ReqUserLogin。
四、登陆成功了,就可以根据需要,进行相关交易操作了。比如,你可以查询资金账户ReqQryTradingAccount,比如查询投资者持仓ReqQryInvestorPosition,比如下一张委托
单ReqOrderInsert等等。
对了,程序跑起来,大概是这个样子