onrspqryinvestorbackground positionn里边哪个字段是当前持仓成本

综合交易系统 第一次运行 - CSDN博客
综合交易系统 第一次运行
VC2008 的环境配置好了之后,交易系统终于可以运行了。当按下程序,看着一个黑框蹦出来了的那一刻,心里不禁无穷的欢喜。
当然不知道这个输出的结果是个什么意思,要仔细研究也要花上不少的精力。内心里还是很想弄明白程序的整个操作过程,但此时天色已经很晚了,脑袋昏昏的,看那些文字材料不知道要看到什么时候。看到《综合交易平台交易API特别说明》后面有一段代码挺不错的,很想将代码的实现过程弄清楚。可能硬着头皮看,不知道什么时候能看完。于是我打算一边打代码,一边揣摩每段代码的含义。花了差不多一个小时的时间,我敲完了代码,并对代码要实现的东西进行了一些总结。
现将代码贴出如下:
// tradeapitest.cpp
// 一个简单的例子, 介绍CThostFtdcTraderApi和CThostFtdcTraderSpi接口的使用
//本例将演示一个报单录入操作的过程
//CThostFtdcTraderApi : Api对象
//CThostFtdcTraderSpi : 事件处理对象
#include &stdio.h&
#include &windows.h&
#include &.\ThostTraderApi\ThostFtdcTraderApi.h&
//保单录入操作是否完成的标志
//Create a manual reset event with no signal
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 reqUserL
//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 bIsLast)
printf(&OnRspUserLogin:\n&);
printf(&ErrorCode=[%d], ErrorMsg=[%s]\n&,pRspInfo-&ErrorID, pRspInfo-&ErrorMsg);
printf(&RequestID=[%d],Chain=[%d]\n&,nRequestID,bIsLast);
if(pRspInfo-&ErrorID != 0){
//登录失败,客户端需要进行错误处理
printf(&Failed to login, errorcode = %d errormsg= %s requestid = %d chain = %d&, pRspInfo-&ErrorID, pRspInfo-&ErrorMsg, nRequestID, bIsLast);
//登录成功,发出保单录入请求
CThostFtdcInputOrderFiel
memset(&ord, 0, sizeof(ord));
//经纪公司代码
strcpy(ord.BrokerID, g_chBrokerID);
//投资者代码
strcpy(ord.InvestorID, &12345&);
//合约代码
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 = 10;
//有效期类型
ord.TimeCondition = THOST_FTDC_TC_GFD;
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 =0;
m_pUserApi-&ReqOrderInsert(&ord,1);
//保单录入应答
virtual void OnRspOrderInsert(CThostFtdcInputOrderField *pInputOrder, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
//输出保单录入结果
printf(&ErrorCode=[%d],ErrorMsg=[%s]\n&,pRspInfo-&ErrorID, pRspInfo-&ErrorMsg);
//通知保单录入完成
SetEvent(g_hEvent);
//保单回报
virtual void OnRtnOrder(CThostFtdcOrderField *pOrder)
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 *m_pUserA
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 : 成交通知
本文已收录于以下专栏:
相关文章推荐
一个完整的交易系统需要决策:1.市场:买卖什么? 选股开盘价>=MA_21 & 涨跌幅>0% & 换手率>3% &流通市值...
本文开始先说说CTP给开发者提供了什么。CTP提供给开发者的文件一共有4个头文件 ThostFtdcTraderApi.h,ThostFtdcMdApi.h,ThostFtdcUserApiS...
盈透证券,作为老牌帝国主义券商,能够提供强到变态的交易平台TWS,多到变态的全球股票、期货等产品覆盖,以及低到变态的交易费用。如果做全球股票或期货交易,能够对接盈透证券相关接口还是不错的选择,但是这里...
CTP下单涉及到预埋单、委托单的下单和撤单下单、成交,更新持仓等。
前面两篇文章主要讲了国外期货相关程序开发,使用的是郑州易盛的行情及交易api,而国内期货相关程序开发易盛貌似也是有sdk的,不过项目中使用的是上期技术的sdk,即大家经常提到的CTP api——综合交...
他的最新文章
讲师:何宇健
讲师:董岩
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)FemasAPI培训系列_图文_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
FemasAPI培训系列
&&中金所飞马api培训
阅读已结束,下载文档到电脑
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,方便使用
还剩59页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢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)”。如是商业用途请联系原作者。&>&CTPapi_交易开发实例.
CTPapi_交易开发实例.
上传大小:290KB
CTPapi_交易开发实例
class CTraderSpi : public CThostFtdcTraderSpi
///当客户端与交易后台建立起通信连接时(还未登录前),该方法被调用。
virtual void OnFrontConnected();
///登录请求响应
virtual void OnRspUserLogin(CThostFtdcRspUserLoginField *pRspUserLogin, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast);
///投资者结算结果确认响应
virtual void OnRspSettlementInfoConfirm(CThostFtdcSettlementInfoConfirmField *pSettlementInfoConfirm, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast);
///请求查询合约响应
virtual void OnRspQryInstrument(CThostFtdcInstrumentField *pInstrument, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast);
///请求查询资金账户响应
virtual void OnRspQryTradingAccount(CThostFtdcTradingAccountField *pTradingAccount, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast);
///请求查询投资者持仓响应
virtual void OnRspQryInvestorPosition(CThostFtdcInvestorPositionField *pInvestorPosition, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast);
///报单录入请求响应
virtual void OnRspOrderInsert(CThostFtdcInputOrderField *pInputOrder, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast);
///报单操作请求响应
virtual void OnRspOrderAction(CThostFtdcInputOrderActionField *pInputOrderAction, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast);
///错误应答
virtual void OnRspError(CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast);
///当客户端与交易后台通信连接断开时,该方法被调用。当发生这个情况后,API会自动重新连接,客户端可不做处理。
virtual void OnFrontDisconnected(int nReason);
///心跳超时警告。当长时间未收到报文时,该方法被调用。
virtual void OnHeartBeatWarning(int nTimeLapse);
///报单通知
virtual void OnRtnOrder(CThostFtdcOrderField *pOrder);
///成交通知
virtual void OnRtnTrade(CThostFtdcTradeField *pTrade);
///用户登录请求
void ReqUserLogin();
///投资者结算结果确认
void ReqSettlementInfoConfirm();
///请求查询合约
void ReqQryInstrument();
///请求查询资金账户
void ReqQryTradingAccount();
///请求查询投资者持仓
void ReqQryInvestorPosition();
///报单录入请求
void ReqOrderInsert();
///报单操作请求
void ReqOrderAction(CThostFtdcOrderField *pOrder);
// 是否收到成功的响应
bool IsErrorRspInfo(CThostFtdcRspInfoField *pRspInfo);
// 是否我的报单回报
bool IsMyOrder(CThostFtdcOrderField *pOrder);
// 是否正在交易的报单
bool IsTradingOrder(CThostFtdcOrderField *pOrder);
};...展开收缩
综合评分:4.2(11位用户评分)
下载个数:83
{%username%}回复{%com_username%}{%time%}\
/*点击出现回复框*/
$(".respond_btn").on("click", function (e) {
$(this).parents(".rightLi").children(".respond_box").show();
e.stopPropagation();
$(".cancel_res").on("click", function (e) {
$(this).parents(".res_b").siblings(".res_area").val("");
$(this).parents(".respond_box").hide();
e.stopPropagation();
/*删除评论*/
$(".del_comment_c").on("click", function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_invalid/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parents(".conLi").remove();
alert(data.msg);
$(".res_btn").click(function (e) {
var q = $("#form1").serializeArray();
console.log(q);
var res_area_r = $.trim($(".res_area_r").val());
if (res_area_r == '') {
$(".res_text").css({color: "red"});
$.post("/index.php/comment/do_comment_reply/", q,
function (data) {
if (data.succ == 1) {
var $target,
evt = e || window.
$target = $(evt.target || evt.srcElement);
var $dd = $target.parents('dd');
var $wrapReply = $dd.find('.respond_box');
console.log($wrapReply);
var mess = $(".res_area_r").val();
var str = str.replace(/{%header%}/g, data.header)
.replace(/{%href%}/g, 'http://' + window.location.host + '/user/' + data.username)
.replace(/{%username%}/g, data.username)
.replace(/{%com_username%}/g, _username)
.replace(/{%time%}/g, data.time)
.replace(/{%id%}/g, data.id)
.replace(/{%mess%}/g, mess);
$dd.after(str);
$(".respond_box").hide();
$(".res_area_r").val("");
$(".res_area").val("");
$wrapReply.hide();
alert(data.msg);
}, "json");
/*删除回复*/
$(".rightLi").on("click",'.del_comment_r', function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_comment_del/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parent().parent().parent().parent().parent().remove();
$(e.target).parents('.res_list').remove()
alert(data.msg);
//填充回复
function KeyP(v) {
$(".res_area_r").val($.trim($(".res_area").val()));
评论共有8条
怎么下载是个0字节的文本文件?
不是图形界面,对本人意义不大,而且资源跟别人的重复
虽然比较简单
但是对初学者十分有帮助
简单,精炼,豁然开朗
不错的开发实例,适合新接触CTP开发者
不错不错,可以借鉴
不错不错,可以借鉴。
果然很切合我需要。
审核通过送C币
软件工程毕业设计之基于MFC的手机生产制造执行系统的设计与开发
CString字符串操作大全
创建者:zrx281731
C++11/14书籍
创建者:feiqiu2015
上传者其他资源上传者专辑
开发技术热门标签
VIP会员动态
下载频道用户反馈专区
下载频道积分规则调整V1710.18
开通VIP,海量IT资源任性下载
spring mvc+mybatis+mysql+maven+bootstrap 整合实现增删查改简单实例.zip
资源所需积分/C币
当前拥有积分
当前拥有C币
为了良好体验,不建议使用迅雷下载
CTPapi_交易开发实例.
会员到期时间:
剩余下载个数:
剩余C币:593
剩余积分:0
为了良好体验,不建议使用迅雷下载
积分不足!
资源所需积分/C币
当前拥有积分
您可以选择
程序员的必选
绿色安全资源
资源所需积分/C币
当前拥有积分
当前拥有C币
(仅够下载10个资源)
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
您的积分不足,将扣除 10 C币
为了良好体验,不建议使用迅雷下载
你当前的下载分为234。
你还不是VIP会员
开通VIP会员权限,免积分下载
你下载资源过于频繁,请输入验证码
你下载资源过于频繁,请输入验证码
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
若举报审核通过,可奖励20下载分
被举报人:
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:
CTPapi_交易开发实例. 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
ctp接口开发指南
下载积分:3000
内容提示:ctp接口开发指南
文档格式:PDF|
浏览次数:121|
上传日期: 04:51:45|
文档星级:
全文阅读已结束,如果下载本文需要使用
 3000 积分
下载此文档
该用户还上传了这些文档
ctp接口开发指南
关注微信公众号

我要回帖

更多关于 position fixed 的文章

 

随机推荐