CTP 期货交易
期货账户
要连接期货交易所交易,需要开设自己的账户,实现期货交易、银期转账、保证金等功能,
一般开始不会用实盘资金交易,所以此处推荐用上期所提供的simnow虚拟交易平台simnow申请一个虚拟账户。
SIMNOW提供两类数据前置地址:
(1)交易时段的地址,如09:00-15:00和21:00-02:30,使用第一套地址,这些数据是真实的行情数据,只是时间上比真实的行情会有延迟30秒左右(SIMNOW从交易所接收后转发出来的)。
(2)非交易时段地址,这时的数据是历史行情的播放,比如昨天的数据之类的,可以用来做程序调试。
建议选择申请那个7x24行情的账户,便于开发调试。
CTP开发分为两个阶段
首先开发行情接入模块,行情引入是展现的基础
首先行情
又分为MT5 API接口和CTP API接口的
CTP 行情 无需用户,密码,
只需要前置机的地址端口,和broketid即可
simnow 的行情前置的地址:"tcp://180.168.146.187:10010";
TThostFtdcBrokerIDType gBrokerID = "9999";
行情类需要继承自 CThostFtdcMdApi 类;
在实现了登陆后
需要订阅期货品种
- int rt = g_pMdUserApi->SubscribeMarketData(g_pInstrumentID, instrumentNum);
- if (!rt)
- std::cout << ">>>>>>发送订阅行情请求成功" << std::endl;
- else
- std::cerr << "--->>>发送订阅行情请求失败" << std::endl;
订阅成功后,
需要在重载函数中 解析相关行情信息
- // 订阅行情应答
- void CustomMdSpi::OnRspSubMarketData(
- CThostFtdcSpecificInstrumentField *pSpecificInstrument,
- CThostFtdcRspInfoField *pRspInfo,
- int nRequestID,
- bool bIsLast)
- {
- }