CTP下单与持仓查询
一、下单
下单用限价单方法,目前支持市价单的只有郑商所和大商所。但是如果想要在其他交易所下市价单,也可通过下限价为跌停价或者涨停价的限价单达到同样的效果。
二、查询持仓
CTP查询持仓直接调用交易API中的持仓查询方法ReqQryInvestorPosition(InstrumentID, ExchangeID)即可,但系统限定查询间隔为1秒以上,否则会返回查仓查询错误,错误代码为-2。
CTP系统在下单之后仓位不会立刻变化,因此,在下单之后sleep一下再查询持仓,才可以得到正确的仓位数据。
ReqOrderInsert_Ordinary(orderData.ExchangeID, orderData.InstrumentID,orderData.Direction, orderData.dPrice, orderData.cOffsetFlag, orderData.g_chVolume);
WaitForSingleObject(g_hEvent, INFINITE); ///返回撤单或者返回成交回报
Sleep(1000);
ReqQryInvestorPosition(orderData.InstrumentID, orderData.ExchangeID);
WaitForSingleObject(g_hEvent, INFINITE); ///仓位查询通知
但是如果模型运行的周期较小或者网络等原因,仓位来不及变化会对模型的判断造成影响。因此,建议在程序开始运行的时候查询初始仓位,随后自己结合报单通知和成交回报记录仓位。
通过设置信号句柄约束程序执行的逻辑。
///成交回报
virtual void OnRtnTrade(CThostFtdcTradeField* pTrade)
{printf("<成交回报>\n");ofstream ofile;if (pTrade && strcmp(pTrade->InvestorID, g_chInvestorID) != 0){return;}else {CTraderSpi::OnRtnTrade(pTrade);strcpy_s(g_chOrderSysID, pTrade->OrderSysID);strcpy_s(g_chOrderRef, pTrade->OrderRef);strcpy_s(g_chExchangeID, pTrade->ExchangeID);for (int iMDObjNum = 0; iMDObjNum < md_InstrumentID.size(); iMDObjNum++){if (0 == strcmp(md_InstrumentID[iMDObjNum].c_str(), pTrade->InstrumentID)){if (pTrade->Direction == '0' && pTrade->OffsetFlag == '0') //开多{strcpy(longPositionData[iMDObjNum].InstrumentID, pTrade->InstrumentID);longPositionData[iMDObjNum].PosiDirection = pTrade->Direction;longPositionData[iMDObjNum].Volume = pTrade->Volume;longPositionData[iMDObjNum].avgPrice = pTrade->Price;}if (pTrade->Direction == '1' && pTrade->OffsetFlag == '3') //平多{strcpy(longPositionData[iMDObjNum].InstrumentID, pTrade->InstrumentID);longPositionData[iMDObjNum].PosiDirection = pTrade->Direction;longPositionData[iMDObjNum].Volume = longPositionData[iMDObjNum].Volume - pTrade->Volume;longPositionData[iMDObjNum].avgPrice = pTrade->Price;}if (pTrade->Direction == '1' && pTrade->OffsetFlag == '0') //开空{strcpy(shortPositionData[iMDObjNum].InstrumentID, pTrade->InstrumentID);shortPositionData[iMDObjNum].PosiDirection = pTrade->Direction;shortPositionData[iMDObjNum].Volume = pTrade->Volume;shortPositionData[iMDObjNum].avgPrice = pTrade->Price;}if (pTrade->Direction == '0' && pTrade->OffsetFlag == '3') //平空{strcpy(shortPositionData[iMDObjNum].InstrumentID, pTrade->InstrumentID);shortPositionData[iMDObjNum].PosiDirection = pTrade->Direction;shortPositionData[iMDObjNum].Volume = shortPositionData[iMDObjNum].Volume - pTrade->Volume;shortPositionData[iMDObjNum].avgPrice = pTrade->Price;}}}ofile.open("tradeHistory.csv", ios::app);ofile << pTrade->TradeTime << "," << pTrade->ExchangeID << "," << pTrade->InstrumentID << ","<< pTrade->Direction << "," << pTrade->Price << "," << pTrade->Volume << "," << pTrade->OffsetFlag << endl;ofile.close();}SetEvent(g_hEvent);printf("</成交回报>\n");
}
CTP下单与持仓查询相关推荐
- 期货ctp持仓查询与更新
持仓风控是程序化交易的必备风控之一,而持仓风控准确的前提是自己的交易系统要有准确的初始持仓及准确的后续更新持仓更新规则. 一般启动交易系统会做一系列初始化的操作,其中重要的一步便是获取该账号的当前持仓 ...
- Noah Mt4跟单系统制作第七篇 Mt4TradeApi持仓查询篇
Noah Mt4跟单系统制作第七篇 Mt4TradeApi持仓查询篇 using System; using System.Collections.Generic; using System.Linq ...
- 【PHP版】顺丰下单API 、查询订单API、取消订单API
<?php header("Content-type: text/html; charset=utf-8"); /*** @author dawawa* @copyright ...
- java接入顺丰快递api(有可运行demo)(包括下单、路由查询、路由推送、查询订单状态、取消订单)
故事发生的背景: 公司快递业务这一块之前接入的是快递100,由于快递100的推送的实时性没有达到公司的要求,而且公司全都用的顺丰快递,所以直接接入了顺丰快递的api.demo文章最后下载(新增了jso ...
- ChatGPT炒股:查询分析某个公募基金的持仓变化
如果很认同某个基金经理的投资理念,可以跟踪基金经理的持仓变化,可以获取一些投资的线索.手动操作也可以实现,但略微麻烦,如果利用ChatGPT写一个跟踪程序,就方便多了. 下面以汇丰晋信副总经理.投资总 ...
- 分布式高频量化交易系统架构讲解(企业版,期货ctp,股票xtp,数字货币,附全部源码)(值得收藏)
目录 1.量化交易系统简介 1.1行情数据 1.2交易策略 1.3交易 2. 分布式高频量化交易系统 2.1. 架构图 2.1.1量化交易系统教程地址 2.1.2量化交易系统教程中讲解的期 ...
- C++连接CTP接口实现简单量化交易(行情、交易、k线、策略)
对于量化交易来说,量化策略和技术系统缺一不可,为了知其所以然,本文实现了一个C++连接CTP接口进行仿真交易的demo,从接收行情.下订单.数据处理到添加策略.挂载运行交易等多个环节来看一下量化交易的 ...
- Hello CTP(四)——CTP交易API
一.CTP交易API简介 1.CTP交易API简介 CThostFtdcTraderApi交易API接口包含CThostFtdcTraderApi和CThostFtdcTraderSpi,通过CTho ...
- CTP综合交易平台-开发后感
断断续续的一年时间,终于把这个对接期货交易平台的工作给做成了产品.以下是个人的吐槽. 1.文档 CTP是有好几个文档,但是作为一个软件开发指导,未免也太简陋了. "综合交易平台API说明&q ...
最新文章
- apollo在liunx环境实战(三)
- 【错误记录】Android Studio Logcat 报错 ( read: unexpected EOF! )
- 【Android APT】编译时技术 ( 开发编译时注解 )
- Nacos 发布 v0.8.0 Pre-GA版本,安全稳定上生产
- u852日期限制解决补丁_用友U8hotfix和补丁包替换原则及注意事项
- ARM和NEON指令 very nice
- PyTorch框架学习二——基本数据结构(张量)
- 苹果系统使用之输入法的呈现与设置问题
- rails 两表关联查询_Rails中的单表继承与多态关联:找到适合您的方法
- 03-linux下离线安装R环境
- 设计思想之高内聚低耦合
- c语言负数除法运算过程,C语言负数的除法和求余运算
- IT,大一,这里我有点建议
- 索引导致大量写入数据时效率低下
- 09 在ubuntu中切换多终端的方法
- 浅谈umi router
- 2022年15款实用有趣的小程序推荐。
- 荐读 | 从现在起,培养五个获益终生的思维习惯
- Uniapp 应用未读角标插件 Ba-Shortcut-Badge
- 分析葡萄酒化学成分及Logistic回归预测葡萄酒口感