CZQThostFtdcInputOrderField ordField;
memset(&ordField,0,sizeof(ordField));
UpdateData(TRUE);
if(!CheckIsDigit(IDC_EDIT_VOLUME,m_strVolume,true))
return;
if(CheckIsDigit(IDC_EDIT_LIMITPRICE,m_strLimitPrice,false) || m_strLimitPrice.GetLength() ==0)
{
//界面显示部分
strcpy(ordField.InvestorID,m_strInvestorId);
strcpy(ordField.InstrumentID, m_strInstrumentId);
int iIndex = m_combExchangeId.GetCurSel();
if(iIndex == -1)
{
AfxMessageBox("请选择交易所",MB_ICONINFORMATION);
return;
}
else
{
iIndex == 0 ?
strcpy(ordField.ExchangeID,"SSE") : strcpy(ordField.ExchangeID,"SZE");
}
iIndex = m_combDirection.GetCurSel();
ordField.Direction = static_cast<TZQThostFtdcDirectionType>(m_combDirection.GetItemData(iIndex));
strcpy(ordField.LimitPrice,m_strLimitPrice);
ordField.VolumeTotalOriginal = atoi(m_strVolume);
//其余填写默认值
CUserApiMain* pApiMain = CUserApiMain::GetInstance();
///经纪公司代码
strcpy(ordField.BrokerID,pApiMain->GetLoginRsp()->BrokerID);
///报单引用
///用户代码
strcpy(ordField.UserID,pApiMain->GetLoginRsp()->UserID);
///报单价格条件
iIndex = m_combPriceType.GetCurSel();
ordField.OrderPriceType = static_cast<TZQThostFtdcOrderPriceTypeType>(m_combPriceType.GetItemData(iIndex));
///组合开平标志
ordField.CombOffsetFlag[0] = THOST_FTDC_OF_Open;
///组合投机套保标志
ordField.CombHedgeFlag[0] = THOST_FTDC_HF_Speculation;
///有效期类型
ordField.TimeCondition = THOST_FTDC_TC_GFD;
///GTD日期
///成交量类型
ordField.VolumeCondition = THOST_FTDC_VC_AV;
///最小成交量
///触发条件
ordField.ContingentCondition = THOST_FTDC_CC_Immediately;
///止损价
///强平原因
ordField.ForceCloseReason = THOST_FTDC_FCC_NotForceClose;
///自动挂起标志
ordField.IsAutoSuspend = 0;
///业务单元
///请求编号
ordField.RequestID = CUserApiMain::GetInstance()->m_seqId.GetSeqId();
///用户强评标志
ordField.UserForceClose = 0;
if((ordField.OrderPriceType == THOST_FTDC_OPT_LimitPrice) &&
strlen(ordField.LimitPrice) == 0)
{
AfxMessageBox("报单价格类型必须填写报单价格!",MB_ICONSTOP);
return;
}
int nRet = pApiMain->m_envTrade.GetUserApi()->ReqOrderInsert(&ordField,pApiMain->m_seqId.GetSeqId());
}
else
{
AfxMessageBox("报单价格含有非法字符!",MB_ICONSTOP);
return;
}
-----关于回报和撤单
报单相关的用两个
RspOrderInsert
//报单录入请求响应
virtual void OnRspOrderInsert(CZQThostFtdcInputOrderField *pInputOrder, CZQThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
RtnOrder
///报单通知
virtual void OnRtnOrder(CZQThostFtdcOrderField *pOrder) {};
///成交通知
virtual void OnRtnTrade(CZQThostFtdcTradeField *pTrade) {};
///报单录入错误回报
virtual void OnErrRtnOrderInsert(CZQThostFtdcInputOrderField *pInputOrder, CZQThostFtdcRspInfoField *pRspInfo) {};
///报单操作错误回报
virtual void OnErrRtnOrderAction(CZQThostFtdcOrderActionField *pOrderAction, CZQThostFtdcRspInfoField *pRspInfo) {};
撤单相关用
RspOrderAction
ErrRtnOrderAction
另外还有一个,RspError 其他所有错误信息通过这里返回给你
----客户的委托输入:
CZQThostFtdcInputOrderField stIptOrdFld;
memset(&stIptOrdFld, 0, sizeof(stIptOrdFld));
strcpy_s(stIptOrdFld.BrokerID,"2011"); //BrokerID
strcpy_s(stIptOrdFld.InvestorID,MY_USER_ID); //InvestorID
strcpy_s(stIptOrdFld.InstrumentID,"600019"); //InstrumentID
//stIptOrdFld.OrderRef;
//stIptOrdFld.UserID;
strcpy_s(stIptOrdFld.ExchangeID,"SSE");
//stIptOrdFld.OrderPriceType = THOST_FTDC_OPT_AnyPrice;
stIptOrdFld.OrderPriceType = THOST_FTDC_OPT_LimitPrice;
stIptOrdFld.Direction = THOST_FTDC_D_Buy;
stIptOrdFld.VolumeTotalOriginal=10000;
stIptOrdFld.TimeCondition=THOST_FTDC_TC_GFD;
stIptOrdFld.VolumeCondition=THOST_FTDC_VC_AV;
stIptOrdFld.ContingentCondition = THOST_FTDC_CC_Immediately;
stIptOrdFld.ForceCloseReason = THOST_FTDC_FCC_NotForceClose;
m_pTdApi->ReqOrderInsert(&stIptOrdFld, ++iRequestID);
cout << "报单int i_orderinsert = m_pTdApi->ReqOrderInsert: " << endl;
问题:指针为空
查询的指令:
//请求查询报单
virtual int ReqQryOrder(CZQThostFtdcQryOrderField *pQryOrder, int nRequestID) = 0;
///查询报单
struct CZQThostFtdcQryOrderField
{
///经纪公司代码
TZQThostFtdcBrokerIDType BrokerID;
///投资者代码
TZQThostFtdcInvestorIDType InvestorID;
///合约代码
TZQThostFtdcInstrumentIDType InstrumentID;
///交易所代码
TZQThostFtdcExchangeIDType ExchangeID;
///报单编号
TZQThostFtdcOrderSysIDType OrderSysID;
///开始时间
TZQThostFtdcTimeType InsertTimeStart;
///结束时间
TZQThostFtdcTimeType InsertTimeEnd;
--///请求查询成交
virtual int ReqQryTrade(CZQThostFtdcQryTradeField *pQryTrade, int nRequestID) = 0;
///查询成交
struct CZQThostFtdcQryTradeField
{
///经纪公司代码
TZQThostFtdcBrokerIDType BrokerID;
///投资者代码
TZQThostFtdcInvestorIDType InvestorID;
///合约代码
TZQThostFtdcInstrumentIDType InstrumentID;
///交易所代码
TZQThostFtdcExchangeIDType ExchangeID;
///成交编号
TZQThostFtdcTradeIDType TradeID;
///开始时间
TZQThostFtdcTimeType TradeTimeStart;
///结束时间
TZQThostFtdcTimeType TradeTimeEnd;
};
我们有SHA上海A股,SZA深圳A股,SHETF上海基金,SZETF深圳基金,SZCYB深圳创业板,SHBONGDS上海债,SZBONGDS深圳债,GC上海回购,RC深圳回购
CZQThostFtdcInputOrderField pInputOrder;
memset(&pInputOrder,0,sizeof(pInputOrder));
CZQThostFtdcInputOrderField * pIptOrdFld = &pInputOrder;
这个是多余的么
CZQThostFtdcInputOrderField pInputOrder;
不是指针,是个变量,定义变量前面不要加上 p
问题:
另外我对报单申请ReqOrderInsert 和 保单操作申请ReqOrderAction 有些疑问, 因为没找到相关的说明文档, 只能试验:
1. 我对一个order的操作(除了查询),只有两个工具:ReqOrderInsert(负责下单) ,ReqOrderAction(负责撤单), 对吧?
2. ReqOrderInsert 操作: 如果成功, 只有OnRtnOrder 一个响应(不算成交通知); 如果失败: 只有 OnRspOrderInsert, OnErrRtnOrderInsert 两个响应, 对吧?
3. ReqOrderAction 操作: 如果成功, 只有OnRtnOrder 一个响应(不算成交通知); 如果失败: 只有 OnRspOrderAction, OnErrRtnOrderAction 两个响应, 对吧?
我们客户有关这个问题,我不知道这个理解是否对。
答复:
// 错误相关
RspError;
// 报单相关
RspOrderInsert;
RtnOrder;
// 撤单相关
RspOrderAction;
ErrRtnOrderAction;
证券版的CTP接口,成交回报主动推送,支持股票基金债券等
4星 · 超过85%的资源 需积分: 50 148 浏览量
2013-07-30
09:35:22
上传
评论 12
收藏 2.56MB RAR 举报
ebore1
- 粉丝: 0
- 资源: 2
最新资源
- 三次样条插值的介绍-什么是三次样条插值原理
- http的一些相关介绍-对于我们来说什么是http
- 全卷积网络基于voc2012数据集简单pytorch实现
- pycharm的一些介绍-用于更好的学习python
- 基于C++的程序设计大赛天梯赛L2答案(天梯赛)
- 基于python实现的三次样条插值和均值插值法实现
- Python语言教程2-python批量图片大小处理-多文件夹
- Python语言教程1-python批量图片重命名,将后缀某几个不想要的字去除
- Space Combat Kit 太空战斗套件Unity游戏开发插件资源unitypackage C#
- Universal Device Preview 通用设备预览Unity游戏开发插件资源unitypackage
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
- 1
- 2
- 3
- 4
前往页