ctp 持仓根据 持仓明细记录能计算总仓位吗cthostftdcinvestorpositiondetailfield

CTP登录/查询,主要涉及到登录、查询市场、分类、合约、持仓、委托、成交,其他等。
这里需要注意:
RequestID的唯一和各种IDRef的唯一性
Req请求的返回值:
//-1,表示网络连接失败;
//-2,表示未处理请求超过许可数;
//-3,表示每秒发送请求数超过许可数。
在登录之前你可能需要先调用ReqAuthenticate
客户端认证是为了保证证券(期货)公司的投资者只能使用该公司认可的客户端产品接入 CTP 后台进行交易。投资者在使用第三方提供或是自行开发的客户端产品接入指定的证券(期货)公司 CTP 交易系统之前,必须向该公司提交用户端产品信息( UserProductInfo )并 获得 认证码 ( AuthCode );之 后在发起 客户端 认证请 求(ReqAuthenticate)填写正确的用户端产品信息及对应的认证码即可完成客户端认证。
//注意:UserProductInfo和AuthCode需要证券期货公司提供
CThostFtdcReqAuthenticateField req = {0};
strcpy(req.BrokerID,m_BrokerID);
strcpy(req.UserID, m_UserID);
strcpy(req.UserProductInfo,m_ProductInfo);
strcpy(req.AuthCode,m_AuthCode);
ReqAuthenticate(&req,nRequestID);登录:
CThostFtdcReqUserLoginField req = {0};
memcpy(req.BrokerID, m_BrokerID, sizeof(m_BrokerID));
memcpy(req.UserID, m_UserID, sizeof(m_UserID));
memcpy(req.Password, m_Password, sizeof(m_Password));
memcpy(req.UserProductInfo, m_AuthInfo.UserProductInfo, sizeof(m_AuthInfo.UserProductInfo));
//InterfaceProductI
//ProtocolI
//OneTimeP
//ClientIPA
ReqTdUserLogin(&req,nRequestID);
请求查询投资者:
CThostFtdcQryInvestorField req = {0};
strcpy(req.BrokerID, m_BrokerID);
strcpy(req.InvestorID, m_UserID);
ReqQryInvestor(&req,nRequestID);
请求查询资金账户:
//RMB(CNY)-人民币 USD-美圆 HKD-港元
CThostFtdcQryTradingAccountField req = {0};
strcpy(req.BrokerID, m_InvestorInfos[nInvestor].BrokerID);
strcpy(req.InvestorID, m_InvestorInfos[nInvestor].InvestorID);
//strcpy(req.CurrencyID, &CNY&);
ReqQryTradingAccount(&req,nRequestID);
这样登录完成并获取了基本数据,接下来要获取市场、分类、合约、持仓、委托、成交,其他等数据了,不过在这之前按照交易所规范,还要请求查询客户通知和结算单确认,结算单确认一个交易日只需要确认一次,不需每次都确认。
请求查询客户通知:
CThostFtdcQryNoticeField
req = {0};
strcpy(req.BrokerID,m_BrokerID);
ReqQryNotice(&req,nRequestID);
投资者结算结果确认:(CTP会记住投资者有没有结算单确认,所以结算单确认流程应该是这样)
查询投资者结算结果确认(先查询有没有结算单确认过):
CThostFtdcQrySettlementInfoConfirmField req = {0};
strcpy(req.BrokerID, m_InvestorInfos[nInvestor].BrokerID);
strcpy(req.InvestorID, m_InvestorInfos[nInvestor].InvestorID);
ReqQrySettlementInfoConfirm(req,nRequestID);
在OnRspQrySettlementInfoConfirm里,
如果m_UserInfo.TradingDay和pSettlementInfoConfirm-&ConfirmDate不一致,说明没有确认过,
请求查询投资者结算结果:
CThostFtdcQrySettlementInfoField req = {0};
strcpy(req.BrokerID, m_InvestorInfos[nInvestor].BrokerID);
strcpy(req.InvestorID, m_InvestorInfos[nInvestor].InvestorID);
strcpy(req.TradingDay, m_UserInfo.TradingDay); //不填日期,表示取上一交易日结算单
ReqQrySettlementInfo(&req,nRequestID);
查询完成投资者结算结果,再确认投资者结算结果:
CThostFtdcSettlementInfoConfirmField req = {0};
strcpy(req.BrokerID, m_InvestorInfos[nInvestor].BrokerID);
strcpy(req.InvestorID, m_InvestorInfos[nInvestor].InvestorID);
//ConfirmDate //rsp
//ConfirmTime //rsp
ReqSettlementInfoConfirm(&req,nRequestID);
否则,说明已经确认投资者结算结果了。
1、查询支持的市场:
郑州商品交易所
//CFFEX 中国金融交易所
大连商品交易所
CThostFtdcQryExchangeField req = {0};
//strcpy(req.ExchangeID,&CZCE&); //可以查询特定市场,不填就是查询所有
ReqQryExchange(&req,reqInfo.nRequestID);
2、查询产品分类:
CThostFtdcQryProductField req = {0};
//req.ProductID; //可以查询特定产品,不填就是查询所有产品
//req.ProductC
ReqQryProduct(&req,reqInfo.nRequestID);
3、查询合约:
CThostFtdcQryInstrumentField req = {0};
//req.InstrumentID; //指定合约的话,就是查询特定合约的信息
//strcpy(req.ExchangeID,&DCE&); //指定市场的话,就是查询特定市场的所有合约
//req.ProductID //指定产品分类的话,就是查询特定分类的所有合约
ReqQryInstrument(&req,reqInfo.nRequestID);
4、查询持仓:
CThostFtdcQryInvestorPositionField req = {0};
strcpy(req.BrokerID,m_BrokerID);
strcpy(req.InvestorID, m_InvestorInfos[reqInfo.lAccIdx].InvestorID);
//req.InstrumentID; //指定合约的话,就是查询特定合约的持仓信息,不填就是查询所有持仓
ReqQryInvestorPosition(&req,reqInfo.nRequestID);
5、查询委托:(查询委托,有预埋单、预埋撤单、当日委托等)
请求查询预埋单:(还没开盘的时候下的单,要做预埋单处理,交易状态判断通过公有流判断)
CThostFtdcQryParkedOrderField req = {0};
strcpy(req.BrokerID,m_BrokerID);
strcpy(req.InvestorID, m_InvestorInfos[reqInfo.lAccIdx].InvestorID);
//req.InstrumentID;//指定合约就是查询特定合约的预埋单
//req.ExchangeID;
ReqQryParkedOrder(&req,reqInfo.nRequestID);
请求查询预埋撤单:(还没开盘的时候下的单,要做预埋单处理,交易状态判断通过公有流判断)
CThostFtdcQryParkedOrderActionField req = {0};
strcpy(req.BrokerID,m_BrokerID);
strcpy(req.InvestorID, m_UserID);
ReqQryParkedOrderAction(&req,nRequestID);
请求查询当日委托:
CThostFtdcQryOrderField req = {0};
strcpy(req.BrokerID,m_BrokerID);
strcpy(req.InvestorID, m_UserID);
ReqQryOrder(&req,nRequestID);
6、查询成交:(当日成交)
CThostFtdcQryTradeField req = {0};
strcpy(req.BrokerID,m_BrokerID);
strcpy(req.InvestorID, m_InvestorInfos[reqInfo.lAccIdx].InvestorID);
//req.InstrumentID;
//req.ExchangeID;
//req.TradeID;
//req.TradeTimeS
//req.TradeTimeE
DoRequest(ReqQryTrade,req,reqInfo.nRequestID);
7、响应RtnOrder、RtnTrade
对于持仓、委托、成交数据之间的同步流程是这样:
1、登录完成查询持仓、委托、成交
2、收到RtnOrder更新委托
3、收到RtnTrade更新成交和刷新持仓(重新请求持仓)
本文已收录于以下专栏:
相关文章推荐
重载的条件:          1.必须在同一个类中2.方法名必须相同3.参数列表不能相同。   重写的条件:     ...
本文开始先说说CTP给开发者提供了什么。CTP提供给开发者的文件一共有4个头文件 ThostFtdcTraderApi.h,ThostFtdcMdApi.h,ThostFtdcUserApiS...
人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..
最近完成了公司的CTP委托开发,现在可以总结一下了。
CTP是上期技术开发的一套委托交易系统,相关开发资料在这里.cn/5_2_DocumentDown.h...
我写过一些 socket 程序, 随着程序的逐步复杂,直接用 socket 编程显得有些麻烦。根据软件应该模块化的思想,应该把软件中的 socket 通信部分相对独立出来做成一个“中间件”。我用 C+...
由于不同证券交易所的行情接口可能不一样,所以接入不同交易所的行情,需要不同的源程序。这里讨论源程序的共性和技术上以及运维上的要求。
一、源程序
一般源程序主要流程是
1)、初始化时读取配...
他的最新文章
讲师:董西成
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)综合交易系统&第一次运行
VC2008 的环境配置好了之后,交易系统终于可以运行了。当按下程序,看着一个黑框蹦出来了的那一刻,心里不禁无穷的欢喜。
当然不知道这个输出的结果是个什么意思,要仔细研究也要花上不少的精力。内心里还是很想弄明白程序的整个操作过程,但此时天色已经很晚了,脑袋昏昏的,看那些文字材料不知道要看到什么时候。看到《综合交易平台交易API特别说明》后面有一段代码挺不错的,很想将代码的实现过程弄清楚。可能硬着头皮看,不知道什么时候能看完。于是我打算一边打代码,一边揣摩每段代码的含义。花了差不多一个小时的时间,我敲完了代码,并对代码要实现的东西进行了一些总结。
现将代码贴出如下:
// tradeapitest.cpp
// 一个简单的例子, 介绍CThostFtdcTraderApi和CThostFtdcTraderSpi接口的使用
//本例将演示一个报单录入操作的过程
//CThostFtdcTraderApi :
//CThostFtdcTraderSpi : 事件处理对象
#include &windows.h&
".\ThostTraderApi\ThostFtdcTraderApi.h"
//保单录入操作是否完成的标志
//Create a manual reset& event with no
HANDLE g_hEvent =
CreateEvent(NULL,true,false,NULL);
//会员代码
TThostFtdcBrokerIDType g_chBrokerID;
//交易用户代码
TThostFtdcUserIDType g_chUserID;
class CSimpleHandler : public
CThostFtdcTraderSpi
&//构造函数,需要一个有效的指向CThostFtdcMduserApi实例的指针
&CSimpleHandler(CThostFtdcTraderApi *pUserApi) :
m_pUserApi(pUserApi){}
&~CSimpleHandler(){}
&//当客户端与交易托管系统建立起通信连接,客户端需要进行登录
&virtual void OnFrontConnected()
&&CThostFtdcReqUserLoginField
&&//get BrokerID
&&printf("BrokerID: ");
&&scanf("%s",
&g_chBrokerID);
&&strcpy(reqUserLogin.BrokerID,g_chBrokerID);
&&//get userid
&&printf("userid: ");
&&scanf("%s",&g_chUserID);
&&strcpy(reqUserLogin.UserID,g_chUserID);
&&//get password
&&printf("password:");
&&scanf("%s",
&reqUserLogin.Password);
&&//发出登录请求
&&m_pUserApi-&ReqUserLogin(&reqUserLogin,0);
&virtual void
OnFrontDisconnected(int nReason)
&&//当发生这个情况后,API会自动重新连接,客户端可不做处理
&&printf("OnFrontDisconnected.\n");
&//当客户端发出登录请求之后,该方法会被调用,通知客户端登录是否成功
&virtual void
OnRspUserLogin(CThostFtdcRspUserLoginField *pRspUserLogin,
CThostFtdcRspInfoField *pRspInfo,int nRequestID, bool
&&printf("OnRspUserLogin:\n");
&&printf("ErrorCode=[%d],
ErrorMsg=[%s]\n",pRspInfo-&ErrorID,
pRspInfo-&ErrorMsg);
&&printf("RequestID=[%d],Chain=[%d]\n",nRequestID,bIsLast);
&&if(pRspInfo-&ErrorID
&&&//登录失败,客户端需要进行错误处理
&&&printf("Failed
to login, errorcode = %d errormsg= %s requestid = %d chain = %d",
pRspInfo-&ErrorID,
pRspInfo-&ErrorMsg, nRequestID, bIsLast);
&&&exit(-1);
&&//登录成功,发出保单录入请求
&&CThostFtdcInputOrderField
&&memset(&ord, 0,
sizeof(ord));
&&//经纪公司代码
&&strcpy(ord.BrokerID,
g_chBrokerID);
&&//投资者代码
&&strcpy(ord.InvestorID,
&&//合约代码
&&strcpy(ord.InstrumentID,"cn0601");
&&//报单引用
&&strcpy(ord.OrderRef,"");
&&//用户代码
&&strcpy(ord.UserID,
g_chUserID);
&&//报单价格条件
&&ord.OrderPriceType =
THOST_FTDC_OPT_LimitP
&&//买卖方向
&&ord.Direction =
THOST_FTDC_D_B
&&//组合开平标志
&&bOffsetFlag,"0");
&&//组合投机套保标志
&&bHedgeFlag,"1");
&&ord.LimitPrice = 50000;
&&ord.VolumeTotalOriginal =
&&//有效期类型
&&ord.TimeCondition =
THOST_FTDC_TC_GFD;
&&//GTD日期
&&strcpy(ord.GTDDate,"");
&&//成交量类型
&&ord.VolumeCondition =
THOST_FTDC_VC_AV;
&&//最小成交量
&&ord.MinVolume = 0;
&&//触发条件
&&ord.ContingentCondition =
THOST_FTDC_CC_I
&&//止损价
&&ord.StopPrice = 0;
&&//强平原因
&&ord.ForceCloseReason =
THOST_FTDC_FCC_NotForceC
&&//自动挂起标志
&&ord.IsAutoSuspend
&&m_pUserApi-&ReqOrderInsert(&ord,1);
&//保单录入应答
&virtual void
OnRspOrderInsert(CThostFtdcInputOrderField *pInputOrder,
CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool
&&//输出保单录入结果
&&printf("ErrorCode=[%d],ErrorMsg=[%s]\n",pRspInfo-&ErrorID,
pRspInfo-&ErrorMsg);
&&//通知保单录入完成
&&SetEvent(g_hEvent);
&//保单回报
&virtual void OnRtnOrder(CThostFtdcOrderField
&&printf("OnRtnOrder:\n");
&&printf("OrderSysID=[%s]\n",
pOrder-&OrderSysID);
&//针对用户请求的出错通知
&virtual void OnRspError(CThostFtdcRspInfoField
*pRspInfo, int nRequestID, bool bIsLast)
&&printf("OnRspError:\n");
&&printf("ErrorCode=[%d],ErrorMsg=[%s]\n",pRspInfo-&ErrorID,pRspInfo-&ErrorMsg);
&&printf("RequestID=[%d],Chain=[%d]\n",nRequestID,bIsLast);
&&//客户端需要进行错误处理
&&&//客户端的错误处理
&&//指向CThostFtdcMduserApi实例的指针
&&CThostFtdcTraderApi
int main()
&//产生一个CThostFtdcTraderApi实例
&CThostFtdcTraderApi *pUserApi =
CThostFtdcTraderApi::CreateFtdcTraderApi();
&//产生一个事件处理的实例
&CSimpleHandler
sh(pUserApi);&&
//相当于将sh依附于pUserApi
&//注册一个事件处理的实例
&pUserApi-&RegisterSpi(&sh);&&&
//pUserApi发生的一切事件都会调用sh中的处理函数
&//订阅私有流
&//&&TERT_RESTART:
从本交易日开始重传
&//&&TERT_RESUME:
从上次收到的续传
&//&&TERT_QUICK:
只传送登录后私有流的内容
&pUserApi-&SubscribePrivateTopic(THOST_TERT_RESUME);
&//订阅公共流
&//&&TERT_RESTART:从本交易日开始重传
&//&&TERT_RESUME:
从上次收到的续传
&//&&TERT_QUICK:
只传送登录后公共流的内容
&pUserApi-&SubscribePublicTopic(THOST_TERT_RESUME);
&//设置交易托管系统服务的地址,可以注册多个地址备用
&pUserApi-&RegisterFront("tcp://172.16.0.31:57205");
&//使客户端开始与后台服务器建立连接
&pUserApi-&Init();
&//客户端等待报单操作完成
&WaitForSingleObject(g_hEvent,INFINITE);
&//释放API实例
&pUserApi-&Release();
整个函数的重点在于新建立的CSimpleHandler是如何实现CThostFtdcTraderSpi的各个虚函数的,正是这种个性话的操作才让程序化控制交易流程得以实现.
这些虚函数和回调函数很像,有点像是模拟窗口程序的特点。
另外main函数实现了这样一个流程:创建Api对象(pUserApi)-&
注册事件处理对象 (sh)&-& 订阅共有流(SubscribePublicTopic)&-&
订阅私有流(SubscribePrivateTopic)&-&
注册前置机(RegisterFront)&-&
初始化Api(Init)。至于初始化过程后面的内容,以后再慢慢研究了^_^
通过对CSimpleHandler的观察,不难得出交易系统处理报单大致是这样一个流程:
另外从网上流传的一个交易开发流程的实例里面可以看出CThostFtdcTraderSpi应该不止这样六个虚函数,从网上收集了一下,至少有这些虚函数需要去实现:
1.&OnFrontConnected
:&当客户端与交易后台建立起通信连接时(还未登录前),该方法被调用。
2.&OnRspUserLogin :&登录请求响应,
当连接成功之后会调用这个函数
3.&OnRspSettlementInfoConfirm:&投资者结算结果确认响应
4.&OnRspQryInstrument:&请求查询合约响应
5.&OnRspQryTradingAccount:&请求查询资金账户响应
6.&OnRspQryInvestorPosition:
请求查询投资者持仓响应
7.&OnRspOrderInsert
:&报单录入请求响应,
可以在OnRspUserLogin后面就下单,当然什么时候下单都可以,看程序怎么调了。程序员可以自行安排下单的时间和顺序。
8.&OnRspOrderAction
:&报单操作请求响应
9.&OnRspError : 错误应答
10.&OnFrontDisconnected
:&当客户端与交易后台通信连接断开时,该方法被调用。当发生这个情况后,API会自动重新连接,客户端可不做处理。
11.&OnHeartBeatWarning
:&心跳超时警告。当长时间未收到报文时,该方法被调用。
12.&OnRtnOrder
:&报单通知,也叫报单回报。 应该是交易所回传过来的报单信息
13.&OnRtnTrade :&成交通知
今天就写到这里了,已经晚上4:30了,回去睡觉觉了!
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。2017年3月 .NET技术大版内专家分月排行榜第三2017年2月 .NET技术大版内专家分月排行榜第三2016年9月 .NET技术大版内专家分月排行榜第三2016年8月 .NET技术大版内专家分月排行榜第三2016年7月 .NET技术大版内专家分月排行榜第三2016年3月 .NET技术大版内专家分月排行榜第三2016年1月 .NET技术大版内专家分月排行榜第三2015年12月 .NET技术大版内专家分月排行榜第三2015年11月 .NET技术大版内专家分月排行榜第三
2016年1月 扩充话题大版内专家分月排行榜第二
2015年3月 .NET技术大版内专家分月排行榜第三2015年2月 .NET技术大版内专家分月排行榜第三
2013年5月 总版技术专家分月排行榜第一
2016年7月 总版技术专家分月排行榜第二2016年3月 总版技术专家分月排行榜第二2015年12月 总版技术专家分月排行榜第二2014年8月 总版技术专家分月排行榜第二2014年7月 总版技术专家分月排行榜第二2013年6月 总版技术专家分月排行榜第二
2013年5月 总版技术专家分月排行榜第一
2016年7月 总版技术专家分月排行榜第二2016年3月 总版技术专家分月排行榜第二2015年12月 总版技术专家分月排行榜第二2014年8月 总版技术专家分月排行榜第二2014年7月 总版技术专家分月排行榜第二2013年6月 总版技术专家分月排行榜第二
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。[CTP综合交易平台教程六]CThostFtdcTraderApi接口
CThostFtdcTraderApi
接口提供给用户的功能包括,报单与报价的录入、报单与报价的撤销、报单与报价的挂起、报单与报价的激活、报单与报价的修改、报单与报价的查询、成交单查询、会员客户查询、会员持仓查询、客户持仓查询、合约查询、合约交易状态查询、交易所公告查询等功能。
以下简单举些例子说明函数的用法,其它函数可举一反三。
1.CreateFtdcTraderApi方法
产生一个CThostFtdcTradeApi的一个实例,不能通过 new 来产生。
函数原形:
static CThostFtdcTradeApi *CreateFtdcTradeApi(const char
*pszFlowPath = "");
pszFlowPath:常量字符指针,用于指定一个文件目录来存贮交易托管系统发布消息的状态。 默认值代表当前目录。
返回一个指向 CThostFtdcTradeApi 实例的指针。
2.ReqUserLogin 方法
用户发出登陆请求。
函数原形:
int ReqUserLogin(CThostFtdcReqUserLoginField
*pReqUserLoginField,int nRequestID);
pReqUserLoginField:指向用户登录请求结构的地址。
用户登录请求结构:
struct CThostFtdcReqUserLoginField
TThostFtdcDateTypeTradingD
///经纪公司代码
TThostFtdcBrokerIDTypeBrokerID;
///用户代码
TThostFtdcUserIDType UserID;
TThostFtdcPasswordTypePa
///用户端产品信息
TThostFtdcProductInfoType UserProductI
///接口端产品信息
TThostFtdcProductInfoType InterfaceProductI
///协议信息
TThostFtdcProtocolInfoType ProtocolI
nRequestID:
用户登录请求的 ID,该 ID 由用户指定,管理。用户需要填写 UserProductInfo
字段,即客户端的产品信息,如软件开发商、版本号等,例如:SFITTraderV100。
InterfaceProductInfo 和 ProtocolInfo 只须占位,不必有效赋值。
0,代表成功。
-1,表示网络连接失败;
-2,表示未处理请求超过许可数;
-3,表示每秒发送请求数超过许可数。
3.ReqOrderAction
方法客户端发出报单操作请求,包括报单的撤销、报单的挂起、报单的激活、报单的修改。
函数原形:
int ReqOrderAction(CThostFtdcOrderActionField *pOrderAction,int
nRequestID);
pOrderAction:指向报单操作结构的地址。
报单操作结构:
///报单操作
struct CThostFtdcOrderActionField
&///经纪公司代码
&TThostFtdcBrokerIDType&BrokerID;
&///投资者代码
&TThostFtdcInvestorIDType&InvestorID;
&///报单操作引用
&TThostFtdcOrderActionRefType&OrderActionR
&///报单引用
&TThostFtdcOrderRefType&OrderR
&///请求编号
&TThostFtdcRequestIDType&RequestID;
&///前置编号
&TThostFtdcFrontIDType&FrontID;
&///会话编号
&TThostFtdcSessionIDType&SessionID;
&///交易所代码
&TThostFtdcExchangeIDType&ExchangeID;
&///报单编号
&TThostFtdcOrderSysIDType&OrderSysID;
&///操作标志
&TThostFtdcActionFlagType&ActionF
&TThostFtdcPriceType&LimitP
&///数量变化
&TThostFtdcVolumeType&VolumeC
&///操作日期
&TThostFtdcDateType&ActionD
&///操作时间
&TThostFtdcTimeType&ActionT
&///交易所交易员代码
&TThostFtdcTraderIDType&TraderID;
&///安装编号
&TThostFtdcInstallIDType&InstallID;
&///本地报单编号
&TThostFtdcOrderLocalIDType&OrderLocalID;
&///操作本地编号
&TThostFtdcOrderLocalIDType&ActionLocalID;
&///会员代码
&TThostFtdcParticipantIDType&ParticipantID;
&///客户代码
&TThostFtdcClientIDType&ClientID;
&///业务单元
&TThostFtdcBusinessUnitType&BusinessU
&///报单操作状态
&TThostFtdcOrderActionStatusType&OrderActionS
&///用户代码
&TThostFtdcUserIDType&UserID;
&///状态信息
&TThostFtdcErrorMsgType&StatusM
&///合约代码
&TThostFtdcInstrumentIDType&InstrumentID;
nRequestID:
用户报单操作请求的 ID,该 ID 由用户指定,管理。
0,代表成功。
-1,表示网络连接失败;
-2,表示未处理请求超过许可数;
-3,表示每秒发送请求数超过许可数。
4.ReqQryInstrument方法
请求查询合约。
函数原形:
int ReqQryInstrument(CThostFtdcQryInstrumentField
*pQryInstrument,int nRequestID);
pQryInstrument:指向查询查询合约结构的地址。
查询合约结构:
struct CThostFtdcQryInstrumentField
&///合约代码
&TThostFtdcInstrumentIDType&InstrumentID;
&///交易所代码
&TThostFtdcExchangeIDType&ExchangeID;
&///合约在交易所的代码
&TThostFtdcExchangeInstIDType&ExchangeInstID;
&///产品代码
&TThostFtdcInstrumentIDType&ProductID;
nRequestID:合约查询请求的 ID,该 ID 由用户指定,管理。
0,代表成功。
-1,表示网络连接失败;
-2,表示未处理请求超过许可数;
-3,表示每秒发送请求数超过许可数
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

我要回帖

更多关于 ctp动态刷新持仓 的文章

 

随机推荐