CTP综合交易平台教程word精品文档15页.docx

上传人:b****8 文档编号:10341297 上传时间:2023-02-10 格式:DOCX 页数:15 大小:40.86KB
下载 相关 举报
CTP综合交易平台教程word精品文档15页.docx_第1页
第1页 / 共15页
CTP综合交易平台教程word精品文档15页.docx_第2页
第2页 / 共15页
CTP综合交易平台教程word精品文档15页.docx_第3页
第3页 / 共15页
CTP综合交易平台教程word精品文档15页.docx_第4页
第4页 / 共15页
CTP综合交易平台教程word精品文档15页.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

CTP综合交易平台教程word精品文档15页.docx

《CTP综合交易平台教程word精品文档15页.docx》由会员分享,可在线阅读,更多相关《CTP综合交易平台教程word精品文档15页.docx(15页珍藏版)》请在冰豆网上搜索。

CTP综合交易平台教程word精品文档15页.docx

CTP综合交易平台教程word精品文档15页

CTP综合交易平台教程

观察内容的选择,我本着先静后动,由近及远的原则,有目的、有计划的先安排与幼儿生活接近的,能理解的观察内容。

随机观察也是不可少的,是相当有趣的,如蜻蜓、蚯蚓、毛毛虫等,孩子一边观察,一边提问,兴趣很浓。

我提供的观察对象,注意形象逼真,色彩鲜明,大小适中,引导幼儿多角度多层面地进行观察,保证每个幼儿看得到,看得清。

看得清才能说得正确。

在观察过程中指导。

我注意帮助幼儿学习正确的观察方法,即按顺序观察和抓住事物的不同特征重点观察,观察与说话相结合,在观察中积累词汇,理解词汇,如一次我抓住时机,引导幼儿观察雷雨,雷雨前天空急剧变化,乌云密布,我问幼儿乌云是什么样子的,有的孩子说:

乌云像大海的波浪。

有的孩子说“乌云跑得飞快。

”我加以肯定说“这是乌云滚滚。

”当幼儿看到闪电时,我告诉他“这叫电光闪闪。

”接着幼儿听到雷声惊叫起来,我抓住时机说:

“这就是雷声隆隆。

”一会儿下起了大雨,我问:

“雨下得怎样?

”幼儿说大极了,我就舀一盆水往下一倒,作比较观察,让幼儿掌握“倾盆大雨”这个词。

雨后,我又带幼儿观察晴朗的天空,朗诵自编的一首儿歌:

“蓝天高,白云飘,鸟儿飞,树儿摇,太阳公公咪咪笑。

”这样抓住特征见景生情,幼儿不仅印象深刻,对雷雨前后气象变化的词语学得快,记得牢,而且会应用。

我还在观察的基础上,引导幼儿联想,让他们与以往学的词语、生活经验联系起来,在发展想象力中发展语言。

如啄木鸟的嘴是长长的,尖尖的,硬硬的,像医生用的手术刀―样,给大树开刀治病。

通过联想,幼儿能够生动形象地描述观察对象。

基本介绍

单靠“死”记还不行,还得“活”用,姑且称之为“先死后活”吧。

让学生把一周看到或听到的新鲜事记下来,摒弃那些假话套话空话,写出自己的真情实感,篇幅可长可短,并要求运用积累的成语、名言警句等,定期检查点评,选择优秀篇目在班里朗读或展出。

这样,即巩固了所学的材料,又锻炼了学生的写作能力,同时还培养了学生的观察能力、思维能力等等,达到“一石多鸟”的效果。

一、系统简介

其实,任何一门学科都离不开死记硬背,关键是记忆有技巧,“死记”之后会“活用”。

不记住那些基础知识,怎么会向高层次进军?

尤其是语文学科涉猎的范围很广,要真正提高学生的写作水平,单靠分析文章的写作技巧是远远不够的,必须从基础知识抓起,每天挤一点时间让学生“死记”名篇佳句、名言警句,以及丰富的词语、新颖的材料等。

这样,就会在有限的时间、空间里给学生的脑海里注入无限的内容。

日积月累,积少成多,从而收到水滴石穿,绳锯木断的功效。

交易托管系统API是一个基于C++的类库,通过使用和扩展类库提供的接口来实现相关交易功能,包括报单与报价的录入、报单与报价的撤销、报单与报价的挂起、报单与报价的激活、报单与报价的修改、报单与报价的查询、成交单查询、投资者查询、投资者持仓查询、合约查询、交易日获取等。

支持MSVC6.0,MSVC2019编译器。

需要打开多线程编译选项/MT。

二、体系结构

交易员API使用建立在TCP协议之上FTD协议与交易托管系统进行通讯,交易托管系统负责投资者的交易业务处理。

2.1.通讯模式

FTD协议中的所有通讯都基于某个通讯模式。

通讯模式实际上就是通讯双方协同工作的方式。

FTD涉及的通讯模式共有三种:

l对话通讯模式l私有通讯模式l广播通讯模式对话通讯模式是指由会员端主动发起的通讯请求。

该请求被交易所端接收和处理,并给予响应。

例如报单、查询等。

这种通讯模式与普通的客户/服务器模式相同。

私有通讯模式是指交易所端主动,向某个特定的会员发出的信息。

例如成交回报等。

广播通讯模式是指交易所端主动,向市场中的所有会员都发出相同的信息。

例如公告、市场公共信息等。

通讯模式和网络的连接不一定存在简单的一对一的关系。

也就是说,一个网络连接中可能传送多种不同通讯模式的报文,一种通讯模式的报文也可以在多个不同的连接中传送。

无论哪种通讯模式,其通讯过程都如图1所示

本接口暂时没有使用广播通信方式。

2.2.数据流

交易托管系统支持对话通讯模式、私有通讯模式、广播通讯模式:

对话通讯模式下支持对话数据流和查询数据流:

对话数据流是一个双向数据流,交易托管系统发送交易请求,交易系统反馈应答。

交易系统不维护对话流的状态。

系统故障时,对话数据流会重置,通讯途中的数据可能会丢失。

查询数据流是一个双向数据流,交易托管系统发送查询请求,交易系统反馈应答。

交易系统不维护查询流的状态。

系统故障时,查询数据流会重置,通讯途中的数据可能会丢失。

私有通讯模式下支持私有数据流:

私有流是一个单向数据流,由交易系统发向交易托管系统,用于传送交易员私有的通知和回报信息。

私有流是一个可靠的数据流,交易系统维护每个交易托管系统的私有流,在一个交易日内,交易托管系统断线后恢复连接时,可以请求交易系统发送指定序号之后的私有流数据。

私有数据流向交易托管系统提供报单状态报告、成交回报更等信息。

广播通讯模式下支持公共数据流:

公共数据流是一个单向数据流,由交易系统发向交易托管系统,用于发送市场公共信息;公共数据流也是一个可靠的数据流,交易系统维护整个系统的公共数据流,在一个交易日内,交易托管系统断线恢复连接时,可以请求交易系统发送指定序号之后的公共数据流数据。

接口模式

交易员API提供了二个接口,分别为CThostFtdcTraderApi和CThostFtdcTraderSpi。

这两个接口对FTD协议进行了封装,方便客户端应用程序的开发。

客户端应用程序可以通过CThostFtdcTraderApi发出操作请求,通继承CThostFtdcTraderSpi并重载回调函数来处理后台服务的响应。

1.对话流和查询流编程接口通过对话流进行通讯的编程接口通常如下:

请求:

intCThostFtdcTraderApi:

:

ReqXXX(CThostFtdcXXXField*pReqXXX,intnRequestID)

响应:

voidCThostFtdcTraderSpi:

:

OnRspXXX(CThostFtdcXXXField*pRspXXX,CThostFtdcRspInfoField*pRspInfo,intnRequestID,boolbIsLast)

其中请求接口第一个参数为请求的内容,不能为空。

第二个参数为请求号。

请求号由客户端应用程序负责维护,正常情况下每个请求的请求号不要重复。

在接收交易托管系统的响应时,可以得到当时发出请求时填写的请求号,从而可以将响应与请求对应起来。

当收到后台服务应答时,CThostFtdcTraderSpi的回调函数会被调用。

如果响应数据不止一个,则回调函数会被多次调用。

回调函数的第一个参数为响应的具体数据,如果出错或没有结果有可能为NULL。

第二个参数为处理结果,表明本次请求的处理结果是成功还是失败。

在发生多次回调时,除了第一次回调,其它的回调该参数都可能为NULL。

第三个参数为请求号,即原来发出请求时填写的请求号。

第四个参数为响应结束标志,表明是否是本次响应的最后一次回调。

2.私有流编程接口私有流中的数据中会员的私有信息,包括报单回报、成交回报等。

通过私有流接收回报的编程接口通常如下:

voidCThostFtdcTraderSpi:

:

OnRtnXXX(CThostFtdcXXXField*pXXX)

或voidCThostFtdcTraderSpi:

:

OnErrRtnXXX(CThostFtdcXXXField*pXXX,CThostFtdcRspInfoField*pRspInfo)

当收到交易托管系统通过私有流发布的回报数据时,CThostFtdcTraderSpi的回调函数会被调用。

回调函数的参数为回报的具体内容。

运行模式

工作线程交易员客户端应用程序至少由两个线程组成,一个是应用程序主线程,一个是交易员API工作线程。

应用程序与交易系统的通讯是由API工作线程驱动的。

CThostFtdcTraderApi提供的接口是线程安全的,可以有多个应用程序线程同时发出请求。

CThostFtdcTraderSpi提供的接口回调是由API工作线程驱动,通过实现SPI中的接口方法,可以从交易托管系统收取所需数据。

如果重载的某个回调函数阻塞,则等于阻塞了API工作线程,API与交易系统的通讯会停止。

因此,在CThostFtdcTraderSpi派生类的回调函数中,通常应迅速返回,可以利用将数据放入缓冲区或通过Windows的消息机制来实现。

本地文件交易员API在运行过程中,会将一些数据写入本地文件中。

调用CreateFtdcTraderApi函数,可以传递一个参数,指明存贮本地文件的路径。

该路径必须在运行前已创建好。

本地文件的扩展名都是".con"。

开发接口通用规则

客户端和交易托管系统的通讯过程分为2个阶段:

初始化阶段和功能调用阶段。

在初始化阶段,程序必须完成如下步骤(具体代码请参考开发实例):

1,产生一个CThostFtdcTraderApi实例

2,产生一个事件处理的实例

3,注册一个事件处理的实例

4,订阅私有流

5,订阅公共流

6,设置交易托管服务的地址

在功能调用阶段,程序可以任意调用交易接口中的请求方法,如ReqOrderInsert等。

同时按照需要响应回调接口中的。

其他注意事项:

1,API请求的输入参数不能为NULL。

2,API请求的返回参数,0表示正确,其他表示错误,详细错误编码请查表。

CThostFtdcTraderSpi接口

CThostFtdcTraderSpi实现了事件通知接口。

用户必需派生CThostFtdcTraderSpi接口,编写事件处理方法来处理感兴趣的事件。

由于回调函数众多,在此不一一举例,只说明几个经典函数的功能与用法,其它函数可举一反三。

1.OnFrontConnected

方法当客户端与交易托管系统建立起通信连接时(还未登录前),该方法被调用。

函数原形:

voidOnFrontConnected();

本方法在完成初始化后调用,可以在其中完成用户登录任务。

2.OnFrontDisconnected方法

当客户端与交易托管系统通信连接断开时,该方法被调用。

当发生这个情况后,API会自动重新连接,客户端可不做处理。

自动重连地址,可能是原来注册的地址,也可能是系统支持的其它可用的通信地址,它由程序自动选择。

函数原形:

voidOnFrontDisconnected(intnReason);

参数:

nReason:

连接断开原因

0x1001网络读失败

0x1002网络写失败

0x2019接收心跳超时

0x2019发送心跳失败

0x2019收到错误报文

3.OnRspUserLogin方法

当客户端发出登录请求之后,交易托管系统返回响应时,该方法会被调用,通知客户端登录是否成功。

函数原形:

voidOnRspUserLogin(

CThostFtdcRspUserLoginField*pRspUserLogin,

CThostFtdcRspInfoField*pRspInfo,

intnRequestID,

boolbIsLast);

参数:

pRspUserLogin:

返回用户登录信息的地址。

用户登录信息结构:

structCThostFtdcRspUserLoginField

{///交易日

TThostFtdcDateTypeTradingDay;

///登录成功时间

TThostFtdcTimeTypeLoginTime;

///经纪公司代码

TThostFtdcBrokerIDTypeBrokerID;

///用户代码TThostFtdcUserIDTypeUserID;

///交易系统名称TThostFtdcSystemNameTypeSystemName;

};

pRspInfo:

返回用户响应信息的地址。

特别注意在有连续的成功的响应数据时,中间有可能返回NULL,但第一次不会,以下同。

错误代码为0时,表示操作成功,以下同。

响应信息结构:

structCThostFtdcRspInfoField

{///错误代码

TThostFtdcErrorIDTypeErrorID;

///错误信息TThostFtdcErrorMsgTypeErrorMsg;

};

nRequestID:

返回用户登录请求的ID,该ID由用户在登录时指定。

bIsLast:

指示该次返回是否为针对nRequestID的最后一次返回。

4.OnRspOrderInsert方法

报单录入应答。

当客户端发出过报单录入指令后,交易托管系统返回响应时,该方法会被调用。

函数原形:

voidOnRspOrderInsert(

CThostFtdcInputOrderField*pInputOrder,

CThostFtdcRspInfoField*pRspInfo,

intnRequestID,

boolbIsLast);

参数:

pInputOrder:

指向报单录入结构的地址,包含了提交报单录入时的输入数据,和后台返回的报单编号。

输入报单结构:

structCThostFtdcInputOrderField

{

///经纪公司代码

TThostFtdcBrokerIDTypeBrokerID;

///投资者代码

TThostFtdcInvestorIDTypeInvestorID;

///合约代码

TThostFtdcInstrumentIDTypeInstrumentID;

///报单引用

TThostFtdcOrderRefTypeOrderRef;

///用户代码

TThostFtdcUserIDTypeUserID;

///报单价格条件

TThostFtdcOrderPriceTypeTypeOrderPriceType;

///买卖方向

TThostFtdcDirectionTypeDirection;

///组合开平标志

TThostFtdcCombOffsetFlagTypeCombOffsetFlag;

///组合投机套保标志

TThostFtdcCombHedgeFlagTypeCombHedgeFlag;

///价格

TThostFtdcPriceTypeLimitPrice;

///数量

TThostFtdcVolumeTypeVolumeTotalOriginal;

///有效期类型

TThostFtdcTimeConditionTypeTimeCondition;

///GTD日期

TThostFtdcDateTypeGTDDate;

///成交量类型

TThostFtdcVolumeConditionTypeVolumeCondition;

///最小成交量

TThostFtdcVolumeTypeMinVolume;

///触发条件

TThostFtdcContingentConditionTypeContingentCondition;

///止损价

TThostFtdcPriceTypeStopPrice;

///强平原因

TThostFtdcForceCloseReasonTypeForceCloseReason;

///自动挂起标志

TThostFtdcBoolTypeIsAutoSuspend;

///业务单元TThostFtdcBusinessUnitTypeBusinessUnit;

///请求编号TThostFtdcRequestIDTypeRequestID;};

pRspInfo:

指向响应信息结构的地址。

响应信息结构:

structCThostFtdcRspInfoField{

///错误代码

TThostFtdcErrorIDTypeErrorID;

///错误信息TThostFtdcErrorMsgTypeErrorMsg;

};

nRequestID:

返回报单录入操作请求的ID,该ID由用户在报单录入时指定。

bIsLast:

指示该次返回是否为针对nRequestID的最后一次返回。

5.OnRspOrderAction方法

///报单操作请求响应

virtualvoidOnRspOrderAction(CThostFtdcInputOrderActionField*pInputOrderAction,CThostFtdcRspInfoField*pRspInfo,intnRequestID,boolbIsLast){};

6.///请求查询交易通知响应

virtualvoidOnRspQryTradingNotice(CThostFtdcTradingNoticeField*pTradingNotice,CThostFtdcRspInfoField*pRspInfo,intnRequestID,boolbIsLast){};

7.///请求查询交易通知响应

virtualvoidOnRspQryTradingNotice(CThostFtdcTradingNoticeField*pTradingNotice,CThostFtdcRspInfoField*pRspInfo,intnRequestID,boolbIsLast){};

CThostFtdcTraderApi接口

CThostFtdcTraderApi接口提供给用户的功能包括,报单与报价的录入、报单与报价的撤销、报单与报价的挂起、报单与报价的激活、报单与报价的修改、报单与报价的查询、成交单查询、会员客户查询、会员持仓查询、客户持仓查询、合约查询、合约交易状态查询、交易所公告查询等功能。

以下简单举些例子说明函数的用法,其它函数可举一反三。

1.CreateFtdcTraderApi方法

产生一个CThostFtdcTradeApi的一个实例,不能通过new来产生。

函数原形:

staticCThostFtdcTradeApi*CreateFtdcTradeApi(constchar*pszFlowPath="");

参数:

pszFlowPath:

常量字符指针,用于指定一个文件目录来存贮交易托管系统发布消息的状态。

默认值代表当前目录。

返回值:

返回一个指向CThostFtdcTradeApi实例的指针。

2.ReqUserLogin方法

用户发出登陆请求。

函数原形:

intReqUserLogin(CThostFtdcReqUserLoginField*pReqUserLoginField,intnRequestID);

参数:

pReqUserLoginField:

指向用户登录请求结构的地址。

用户登录请求结构:

structCThostFtdcReqUserLoginField

{

///交易日

TThostFtdcDateTypeTradingDay;

///经纪公司代码

TThostFtdcBrokerIDTypeBrokerID;

///用户代码

TThostFtdcUserIDTypeUserID;

///密码

TThostFtdcPasswordTypePassword;

///用户端产品信息

TThostFtdcProductInfoTypeUserProductInfo;

///接口端产品信息

TThostFtdcProductInfoTypeInterfaceProductInfo;

///协议信息

TThostFtdcProtocolInfoTypeProtocolInfo;

};

nRequestID:

用户登录请求的ID,该ID由用户指定,管理。

用户需要填写UserProductInfo字段,即客户端的产品信息,如软件开发商、版本号等,例如:

SFITTraderV100。

InterfaceProductInfo和ProtocolInfo只须占位,不必有效赋值。

0,代表成功。

-1,表示网络连接失败;

-2,表示未处理请求超过许可数;

-3,表示每秒发送请求数超过许可数。

3.ReqOrderAction方法

客户端发出报单操作请求,包括报单的撤销、报单的挂起、报单的激活、报单的修改。

函数原形:

intReqOrderAction(CThostFtdcOrderActionField*pOrderAction,intnRequestID);

参数:

pOrderAction:

指向报单操作结构的地址。

报单操作结构:

///报单操作

structCThostFtdcOrderActionField

{

///经纪公司代码

TThostFtdcBrokerIDTypeBrokerID;

///投资者代码

TThostFtdcInvestorIDTypeInvestorID;

///报单操作引用

TThostFtdcOrderActionRefTypeOrderActionRef;

///报单引用

TThostFtdcOrderRefTypeOrderRef;

///请求编号

TThostFtdcRequestIDTypeRequestID;

///前置编号

TThostFtdcFrontIDTypeFrontID;

///会话编号

TThostFtdcSessionIDTypeSessionID;

///交易所代码

TThostFtdcExchangeIDTypeExchangeID;

///报单编号

TThostFtdcOrderSysIDTypeOrderSysID;

///操作标志

TThostFtdcActionFlagTypeActionFlag;

///价格

TThostFtdcPriceTypeLimitPrice;

///数量变化

TThostFtdcVolumeTypeVolumeChange;

///操作日期

TThostFtdcDateTypeActionDate;

///操作时间

TThostFtdcTimeTypeActionTime;

///交易所交易员代码

TThostFtdcTraderIDTypeTraderID;

///安装编号

TThostFtdcInstallIDTypeInstallID;

///本地报单编号

TThostFtdcOrderLocalIDTypeOrderLocalID;

///操作本地编号

TThostFtdcOrderLocalIDTypeActionLocalID;

///会员代码

TThostFtdcParticipantIDTypeParticipantID;

///客户代码

TThostFtdcClientIDTypeClientID;

///业务单元

TThostFtdcBusinessUnitTypeBusinessUnit;

///报单操作状态

TThostFtdcOrderActionStatusTypeOrderActionStatus;

///用户代码

TThostFtdcUserIDTypeUser

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 教学研究 > 教学计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1