CTP C++接口试用
来源:互联网 发布:淘宝店铺简介在哪里看 编辑:程序博客网 时间:2024/06/04 20:13
文件结构
MdSpi.h
#pragma once#include "ThostFtdcMdApi.h"class CMdSpi : public CThostFtdcMdSpi{public:///错误应答virtual void OnRspError(CThostFtdcRspInfoField *pRspInfo,int nRequestID, bool bIsLast);///当客户端与交易后台通信连接断开时,该方法被调用。当发生这个情况后,API会自动重新连接,客户端可不做处理。///@param nReason 错误原因/// 0x1001 网络读失败/// 0x1002 网络写失败/// 0x2001 接收心跳超时/// 0x2002 发送心跳失败/// 0x2003 收到错误报文virtual void OnFrontDisconnected(int nReason);///心跳超时警告。当长时间未收到报文时,该方法被调用。///@param nTimeLapse 距离上次接收报文的时间virtual void OnHeartBeatWarning(int nTimeLapse);///当客户端与交易后台建立起通信连接时(还未登录前),该方法被调用。virtual void OnFrontConnected();///登录请求响应virtual void OnRspUserLogin(CThostFtdcRspUserLoginField *pRspUserLogin,CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast);///订阅行情应答virtual void OnRspSubMarketData(CThostFtdcSpecificInstrumentField *pSpecificInstrument, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast);///取消订阅行情应答virtual void OnRspUnSubMarketData(CThostFtdcSpecificInstrumentField *pSpecificInstrument, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast);///深度行情通知virtual void OnRtnDepthMarketData(CThostFtdcDepthMarketDataField *pDepthMarketData);///请求查询行情响应virtual void OnRspQryDepthMarketData(CThostFtdcDepthMarketDataField *pDepthMarketData, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};private:void ReqUserLogin();void SubscribeMarketData();// bool IsErrorRspInfo(CThostFtdcRspInfoField *pRspInfo);};
MdSpi.cpp
#include "MdSpi.h"#include <iostream>using namespace std;#pragma warning(disable : 4996)// USER_API参数extern CThostFtdcMdApi* pUserApi;// 配置参数extern char FRONT_ADDR[];extern TThostFtdcBrokerIDTypeBROKER_ID;extern TThostFtdcInvestorIDType INVESTOR_ID;extern TThostFtdcPasswordTypePASSWORD;extern char* ppInstrumentID[];extern int iInstrumentID;// 请求编号extern int iRequestID;void CMdSpi::OnRspError(CThostFtdcRspInfoField *pRspInfo,int nRequestID, bool bIsLast){cerr << "--->>> "<< "OnRspError" << endl;IsErrorRspInfo(pRspInfo);}void CMdSpi::OnFrontDisconnected(int nReason){cerr << "--->>> " << "OnFrontDisconnected" << endl;cerr << "--->>> Reason = " << nReason << endl;}void CMdSpi::OnHeartBeatWarning(int nTimeLapse){cerr << "--->>> " << "OnHeartBeatWarning" << endl;cerr << "--->>> nTimerLapse = " << nTimeLapse << endl;}void CMdSpi::OnFrontConnected(){cerr << "--->>> " << "OnFrontConnected" << endl;///用户登录请求ReqUserLogin();}void CMdSpi::ReqUserLogin(){CThostFtdcReqUserLoginField req;memset(&req, 0, sizeof(req));strcpy(req.BrokerID, BROKER_ID);strcpy(req.UserID, INVESTOR_ID);strcpy(req.Password, PASSWORD);int iResult = pUserApi->ReqUserLogin(&req, ++iRequestID);cerr << "--->>> 发送用户登录请求: " << ((iResult == 0) ? "成功" : "失败") << endl;}void CMdSpi::OnRspUserLogin(CThostFtdcRspUserLoginField *pRspUserLogin,CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast){cerr << "--->>> " << "OnRspUserLogin" << endl;if (bIsLast && !IsErrorRspInfo(pRspInfo)){///获取当前交易日cerr << "--->>> 获取当前交易日 = " << pUserApi->GetTradingDay() << endl;// 请求订阅行情SubscribeMarketData();}}void CMdSpi::SubscribeMarketData(){int iResult = pUserApi->SubscribeMarketData(ppInstrumentID, iInstrumentID);cerr << "--->>> 发送行情订阅请求: " << ((iResult == 0) ? "成功" : "失败") << endl;}void CMdSpi::OnRspSubMarketData(CThostFtdcSpecificInstrumentField *pSpecificInstrument, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast){cerr << "OnRspSubMarketData" << endl;}void CMdSpi::OnRspUnSubMarketData(CThostFtdcSpecificInstrumentField *pSpecificInstrument, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast){cerr << "OnRspUnSubMarketData" << endl;}void CMdSpi::OnRtnDepthMarketData(CThostFtdcDepthMarketDataField *pDepthMarketData){cerr << "OnRtnDepthMarketData" << endl;}void OnRspQryDepthMarketData(CThostFtdcDepthMarketDataField *pDepthMarketData, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast){cerr << "OnRspQryDepthMarketData" << endl;}bool CMdSpi::IsErrorRspInfo(CThostFtdcRspInfoField *pRspInfo){// 如果ErrorID != 0, 说明收到了错误的响应bool bResult = ((pRspInfo) && (pRspInfo->ErrorID != 0));if (bResult)cerr << "--->>> ErrorID=" << pRspInfo->ErrorID << ", ErrorMsg=" << pRspInfo->ErrorMsg << endl;return bResult;}test.cpp
// testTraderApi.cpp : 定义控制台应用程序的入口点。//#include "ThostFtdcMdApi.h"#include "MdSpi.h"// UserApi对象CThostFtdcMdApi* pUserApi;// 配置参数char FRONT_ADDR[] = "tcp://asp-sim2-md1.financial-trading-platform.com:26213";// 前置地址TThostFtdcBrokerIDTypeBROKER_ID = "***";// 经纪公司代码TThostFtdcInvestorIDType INVESTOR_ID = "0***";// 投资者代码TThostFtdcPasswordType PASSWORD = "*****";// 用户密码char *ppInstrumentID[] = {"***", "***"};// 行情订阅列表int iInstrumentID = 2;// 行情订阅数量// 请求编号int iRequestID = 0;void main(void){// 初始化UserApipUserApi = CThostFtdcMdApi::CreateFtdcMdApi();// 创建UserApiCThostFtdcMdSpi* pUserSpi = new CMdSpi();pUserApi->RegisterSpi(pUserSpi);// 注册事件类pUserApi->RegisterFront(FRONT_ADDR);// connectpUserApi->Init();pUserApi->Join();//pUserApi->Release();}
3 0
- CTP C++接口试用
- RTP转CTP 接口
- Rust或C#,Python 等如何封装C++的接口 (比如CTP)?
- Microsoft SQL Server 2008已可下载试用CTP版
- Microsoft SQL Server 2008试用及CTP版下载
- SQL Server 2008试用及CTP版下载
- CTP固件升级接口技术规范3.0
- 6220c试用手记..
- 【步兵 c++】试用default_random_engine
- C++连接CTP接口实现简单量化交易
- 深入试用C++Builder 2007
- C语言之试用qsort()
- 【C#】Queue的简单试用
- 聚合网数据调用接口试用
- CTP: NET封装后接口中序列化数据的问题
- C++连接CTP接口实现简单量化交易(行情、交易、k线、策略)
- 南华上期CTP接口开发之Ubuntu服务器下配置(GNU/Linux)(无GUI)
- C++连接CTP接口实现简单量化交易(行情、交易、k线、策略)
- 第17周 项目6-1 统计学生成绩
- oracle connection 有时能取到有时候又取不到
- break的运用
- 电子邮件的信头信息分析
- http -> https
- CTP C++接口试用
- Less入门一 概述 我的第一个less
- 逆波兰表达式
- 成绩处理简易版
- Extjs隐藏下边的工具条
- 从代码的角度 微微增加rfid的识别距离
- 结构体、共用体、指针
- 软考信息系统项目管理师考试心得-备考
- 【Tsinsen】A1280. 最长双回文串 【Palindromic Tree】