资源简介

利用期货ctp接口开发的数据接收例子。这样的例子网上有很多,但是大部分都用不了。很多都有错误编译不通过。这个是我可以完整编译过的全部代码,能直接从期货公司获取到数据。需要自己申请期货账号。编译工具为vs2010或vs2012下可以顺利通过

资源截图

代码片段和文件信息

#include “MdSpi.h“
#include 
using namespace std;

#pragma warning(disable : 4996)

// USER_API参数
extern CThostFtdcMdApi* pUserApi;

// 配置参数
extern char FRONT_ADDR[];
extern TThostFtdcBrokerIDType BROKER_ID;
extern TThostFtdcInvestorIDType INVESTOR_ID;
extern TThostFtdcPasswordType PASSWORD;
extern char* ppInstrumentID[];
extern int iInstrumentID;

// 请求编号
extern int iRequestID;

void CMdSpi::OnRspError(CThostFtdcRspInfoField *pRspInfo
int nRequestID bool bIsLast)
{
cerr << “--->>> “<< __FUNCTION__ << endl;
IsErrorRspInfo(pRspInfo);
}

void CMdSpi::OnFrontDisconnected(int nReason)
{
cerr << “--->>> “ << __FUNCTION__ << endl;
cerr << “--->>> Reason = “ << nReason << endl;
}

void CMdSpi::OnHeartBeatWarning(int nTimeLapse)
{
cerr << “--->>> “ << __FUNCTION__ << endl;
cerr << “--->>> nTimerLapse = “ << nTimeLapse << endl;
}

void CMdSpi::OnFrontConnected()
{
cerr << “--->>> “ << __FUNCTION__ << 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 << “--->>> “ << __FUNCTION__ << 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 << __FUNCTION__ << endl;
}

void CMdSpi::OnRspUnSubMarketData(CThostFtdcSpecificInstrumentField *pSpecificInstrument CThostFtdcRspInfoField *pRspInfo int nRequestID bool bIsLast)
{
cerr << __FUNCTION__ << endl;
}

void CMdSpi::OnRtnDepthMarketData(CThostFtdcDepthMarketDataField *pDepthMarketData)
{
cerr << __FUNCTION__ << 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;
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2015-07-17 10:53  CTPMDSAMPLE\
     目录           0  2015-07-17 10:50  CTPMDSAMPLE\Bin\
     文件           6  2015-07-17 10:16  CTPMDSAMPLE\Bin\DialogRsp.con
     文件           6  2015-07-17 10:16  CTPMDSAMPLE\Bin\QueryRsp.con
     文件       44032  2015-07-17 10:52  CTPMDSAMPLE\Bin\testMdUserApi.exe
     文件      414580  2015-07-17 10:52  CTPMDSAMPLE\Bin\testMdUserApi.ilk
     文件     1829888  2015-07-17 10:52  CTPMDSAMPLE\Bin\testMdUserApi.pdb
     文件      397312  2009-05-21 11:27  CTPMDSAMPLE\Bin\thostmduserapi.dll
     文件     1775616  2014-12-17 13:19  CTPMDSAMPLE\Bin\thosttraderapi.dll
     文件           6  2012-10-25 14:05  CTPMDSAMPLE\Bin\TradingDay.con
     目录           0  2015-07-17 10:52  CTPMDSAMPLE\Debug\
     文件        2040  2015-07-17 10:52  CTPMDSAMPLE\Debug\cl.command.1.tlog
     文件       32270  2015-07-17 10:52  CTPMDSAMPLE\Debug\CL.read.1.tlog
     文件        1378  2015-07-17 10:52  CTPMDSAMPLE\Debug\CL.write.1.tlog
     文件           2  2015-07-17 10:52  CTPMDSAMPLE\Debug\link-cvtres.read.1.tlog
     文件           2  2015-07-17 10:52  CTPMDSAMPLE\Debug\link-cvtres.write.1.tlog
     文件           2  2015-07-17 10:52  CTPMDSAMPLE\Debug\link.5696-cvtres.read.1.tlog
     文件           2  2015-07-17 10:52  CTPMDSAMPLE\Debug\link.5696-cvtres.write.1.tlog
     文件           2  2015-07-17 10:52  CTPMDSAMPLE\Debug\link.5696.read.1.tlog
     文件           2  2015-07-17 10:52  CTPMDSAMPLE\Debug\link.5696.write.1.tlog
     文件        2042  2015-07-17 10:52  CTPMDSAMPLE\Debug\link.command.1.tlog
     文件        3858  2015-07-17 10:52  CTPMDSAMPLE\Debug\link.read.1.tlog
     文件        1146  2015-07-17 10:52  CTPMDSAMPLE\Debug\link.write.1.tlog
     文件       60395  2015-07-17 10:50  CTPMDSAMPLE\Debug\MdSpi.obj
     文件         410  2015-07-17 10:52  CTPMDSAMPLE\Debug\mt.command.1.tlog
     文件         322  2015-07-17 10:52  CTPMDSAMPLE\Debug\mt.read.1.tlog
     文件         322  2015-07-17 10:52  CTPMDSAMPLE\Debug\mt.write.1.tlog
     文件         568  2015-07-17 10:50  CTPMDSAMPLE\Debug\rc.command.1.tlog
     文件         294  2015-07-17 10:50  CTPMDSAMPLE\Debug\rc.read.1.tlog
     文件         302  2015-07-17 10:50  CTPMDSAMPLE\Debug\rc.write.1.tlog
     文件      291156  2015-07-17 10:50  CTPMDSAMPLE\Debug\stdafx.obj
............此处省略52个文件信息

评论

共有 条评论