文档视界 最新最全的文档下载
当前位置:文档视界 › CTP交易报告

CTP交易报告

CTP交易报告
CTP交易报告

CTP交易报告

——应用编程手册

1、历年版本

版本:v4.2

时间:2009-11-6

备注:英文版

2、索引

第一章简介

1.1 背景

1.2 API文件介绍

第二章结构

2.1 通讯模式

2.2 数据流

第三章编程接口类型

3.1 对话模式的编程接口

3.2 私有模式的编程接口

3.3 广播模式的编程接口

第一章介绍

综合交易平台(Comprehensive Transaction Platform),是专门为期货公司开发的一套期货经纪业务管理系统,由交易、风险控制和结算三大系统组成。

API,实现了客户端和综合交易平台之间的通讯。通过API,投资者可以接收来自上交所,大商所和郑商所的行情数据,发送交易指令,接收相应的反馈和交易状态等信息。

1.1 背景

2006年,上海金融期货交易所完成了新一代交易系统的开发,我们借助其成功经验,开发了CTP。

2007年4月,我们获得了来自中国期货公司交易的第一笔订单。通过近三年的不懈努力,使用CTP的投资者遍布全球,国内使用CTP的期货公司已到达30家。

1.2 API文件

CTP上使用的API是基于C++程序库,来实现客户端和CTP服务器之间的数据传输。客户端包括,所有投资者都可以使用的CTP标准客户端(比如,Q7,popo,weisoft等第三方开发的客户端),以及个性化交易工具(由投资者个人或其合作者开发)。通过API,客户端可以发出或撤销普通单、条件单、查询委托或交易状态、查询账户实时信息和交易头寸。API程序库包括:

注:使用MS VC 6.0,MS https://www.docsj.com/doc/bc15695231.html, 2003等编程工具的,需要在编程设置中打开“multi-thread”选项。

第二章结构

CTP的API和CTP服务器之间使用的通讯协议是期货交易数据协议(futures TradingData Exchange protocol ,FTD),它基于TCP协议。

2.1 通讯模式

在FTD协议中,通讯模式包括以下三种模式:

●对话模式,客户端给CTP发送请求,CTP将会相应返回结果。

●私有模式,CTP把特定的私人信息发送给对应的客户端,包括持仓信息、交易确认信息等。

●广播模式,CTP将把公告等信息发送给所有的注册用户。

每种模式并不限于一种连接状态。也就是说,建立一种连接之后,客户端可以同时使用三种通讯模式,或者建立集中不同的连接之后,客户端也可以使用同样的通讯模式。比如,客户可以使用广播模式来接收合约状态的变动信息,同时也可接收私人信息(如下单确认等)。

下图描绘了三种通讯模式的工作流程:

2.2 数据流

CTP提供了对话、私有、广播等三种通讯模式。在对话模式中,传输的是对话数据流和查询数据流。

对话和查询数据流是双向数据流,客户端发出请求,CTP服务器返回结果。CTP服务器并不保存对话和查询数据流。当故障发生时,比如连接中断后又重新连接,对话和查询数据流将回复原值,之间传输的数据将丢失。

在私人通讯模式中,传输的是私人数据流。私人数据流是单向数据流,CTP 服务器就是利用它来把相应的私人信息发给提出申请的客户端。私人信息包括,风险提示、指令状态、指令确认、交易确认等。私人数据流是可靠的。当客户端和CTP服务器失去连接后,在同一交易日的任何时间,客户端都可重新连上CTP 服务器,获取一系列指定的私人信息而不用担心这些数据会丢失。

在广播通讯模式中,传输的是公共数据流。和私人数据流一样,它是单向数据流,而且可靠。区别在于,广播通讯数据会发送到所有连接的客户端上。它的主要用途就是发布公共合约的状态信息或重要的公共信息。

第三章编程接口类型

CTP的交易API提供了两种编程接口:CThostFtdcTraderApi 与CThostFtdcTraderSpi。行情API提供的是CThostFtdcMdApi 与CThostFtdcMdSpi 等两种编程接口。这四种接口遵循FTD协议。客户端可使用CThostFtdcXXXApi 来发送请求,并通过CThostFtdcXXXSpi来接收CTP返回的数据。

3.1 对话模式的编程接口

对话模式的通讯函数常常这样定义:

Request函数的第一个参数是请求的内容,不能为空。第二个参数是请求的ID,由client trade application保管,并且最好独一无二,这样,当客户端从CTP 服务器接收到数据时,客户端可以用同一个ID重新建立请求并获得反馈。

当客户端收到CTP服务器发出的反馈时,callback函数CThostFtdcXXXSpi 被激活。如果反馈多于一条,callback函数CThostFtdcXXXSpi会反复被激活,直到数据全部接收完毕。

Response函数的第一个参数是反馈的数据,它一般包括最初的请求数据。如

果故障发生或CTP不能找到请求的记录,那么这个参数就是空值。第二个参数是CTP用来判断反馈是否成功的一个标识。当callback函数被激活的次数超过一次,除第一次被激活外,其他callback过程发生时第二个参数的值均为空。第三个参数是反馈的ID,作用和Request函数中的一样。最后一个参数是结束标识,其值为“true”时表示进行的是该请求的最后一个反馈。

3.2 私有模式的编程接口

下面的例子为私有模式的常用接口:

在私有模式里并没有连接API与CTP服务器的行情函数。

当CTP服务器发出私有数据流时,CThostFtdcTradeSpi的callback函数将被激活。

所有callback函数的第一个参数都是CTP服务器返回的内容。

OnErrRtnCThostFtdcTradeSpi 函数的第二个参数是报错时详细的错误信息。

3.3 广播模式的编程接口

使用广播模式时,客户端可以用以下两种方式与CTP服务器进行通讯:

callback函数OnRtnInstrumentStatus 用于通知客户端合约状态的变化。

callback函数OnRtnDepthMarketData用于公布最新的交易所行情数据。

第四章运作模式

4.1 工作线程

CTP客户端进程需要两种线程,一是应用程序线程,另一种是交易API工作线程。如果客户端想要接收行情数据,那么也需要行情API工作线程。API 工作线程连接了客户端和CTP服务器。

交易API和行情API是安全线程,客户端的应用程序可以同时使用两种或多种的工作线程,而无须担心线程冲突。客户单的应用程序要能尽快的处理callback信息,这样才能避免未处理的callback信息堵塞工作线程。要避免通讯堵塞,客户端的应用程序需要使用缓冲层来储存从CTP接收的数据,当然缓冲层也可以用来保护客户端自有数据,以便使之与CTP API的数据区分开。

4.2 文件

CTP API 的动态链接数据库会产生一些文件来储存运行过程中的数据,这些文件的后缀名为“.con”。交易客户端的应用程序通过CreateFtdcTraderApi() 或CreateFtdcMdApi() 函数的第一个参数来判断这些文件的本地路径。

4.3 商业术语与接口函数对比

第五章CTP API 特别说明

5.1 一般规则

客户端应用程序需要经过两步才能连接到CTP服务器:初始化与功能启用。

使用交易API,客户端交易应用程序需要编写:

(1)创建一个“CThostFtdcTraderApi”实例。

(2)创建一个处理来自“CThostFtdcTraderSpi”接口的事件处理器,然后使用“CThostFtdcTraderApi”的“RegisterSpi”函数记录下这些事件。

(3)使用“CThostFtdcTraderApi”的“SubscribePrivateTopic”函数处理私有

数据流。

(4)使用“CThostFtdcTraderApi”的“SubscribePublicTopic” 函数处理公共数据流。

(5)使用“CThostFtdcTraderApi”的“RegisterFront” 函数记录CTP服务器的前端地址。客户端多运行几次这种函数,以便与服务器建立更可靠的联系。强烈建议。

(6)使用“CThostFtdcTraderApi”的“Init“函数来连接CTP服务器。

(7)服务器连上之后,“CThostFtdcTraderSpi”接口的callback函数“OnFrontConnected”将被激活。函数运行过程中,客户端的应用程序需要使用“CThostFtdcTraderApi”的“R eqUserLogin” 函数来提交“login”请求。

(8)当CTP服务器确认登陆成功后,“CThostFtdcTraderSpi”接口的callback 函数“OnRspUserLogin” 将被激活。

(9)这样,客户端与CTP服务器的通讯就建立起来了。客户端交易应用程序可以使用其他CTP API来与CTP服务器进行通讯。

如果客户端应用程序需要使用行情API,客户端需要采取以下步骤来描述先前的数据流,不包括私有数据流和公共信息流。具体如下:

(1)所有request函数的参数都不能为空值;

(2)如果函数返回的数值为“int”,数值0意味着函数运行良好,其他数值则表示返回错误,具体的错误信息在“error.xml”文件里面。

5.2 CThostFtdcTraderSpi

CTP用CThostFtdcTraderSpi表示事件接口。客户端应用程序可以通过CThostFtdcTraderSpi 函数获得CTP服务器发出的通知。

5.2.1 OnFrontConnected

当客户端与CTP服务器连接上后,此函数被激活,进而,客户端可以使用“ReqUserLogin”来发送登陆请求。

定义:void OnFrontConnected();

5.2.2 OnFrontDisconnected

当连接终止或中断时,此函数被激活。如果该信息没有被处理,那么API 会使用登陆地址列表上的一个前端地址,自动重新连接CTP服务器。

定义:void OnFrontDisconnected (int nReason);

参数:

nReason:the reason of disconnecion

0x1001 network reading failed

0x1002 network writing failed

0x2001 heartbeat receiving timeout

0x2002 heartbeat sending timeout

0x2003 received an error message

5.2.3 OnHeartBeatWarning

此函数用来表示与服务器长时间连接的接口是否可用。

定义:void OnHeartBeatWarning(int nTimeLapse);

参数:nTimeLapse:Length of time elapsed since the last received message

5.2.4 OnRspUserLogin

CTP服务器使用次callback 函数OnRspUserLogin 来通知客户端登陆函数OnRspUserLogin是否被服务器接受。

定义:void OnRspUserLogin(

CThostFtdcRspUserLoginField *pRspUserLogin,

CThostFtdcRspInfoField *pRspInfo,

int nRequestID,

bool bIsLast);

参数:

pRspUserLogin:The pointer of the structure for user’s login response. The following is definition of the structure:

struct CThostFtdcRspUserLoginField

{

///trading day

TThostFtdcDateType TradingDay;

///time of login

TThostFtdcTimeType LoginTime;

///broker id

TThostFtdcBrokerIDType BrokerID;

///user id

TThostFtdcUserIDType UserID;

///trade system name

TThostFtdcSystemNameType SystemName;

};

pRspInfo:Pointer of the structure for system response. The following is

definition of the structure:

struct CThostFtdcRspInfoField

{

///error id

TThostFtdcErrorIDType ErrorID;

///error information

TThostFtdcErrorMsgType ErrorMsg;

};

5.2.5 OnRspUserLogout

CTP服务器利用此callback函数来通知客户端“RspUserLogout”是否运行成功。

定义:void OnRspUserLogout(

CThostFtdcUserLogoutField *pUserLogout,

CThostFtdcRspInfoField *pRspInfo,

int nRequestID,

bool bIsLast);

pRspUserLogout:Pointerof the structure for user’s logout response. The

following is definition of the structure:

struct CThostFtdcUserLogoutField

{

///broker id

TThostFtdcBrokerIDType BrokerID;

///user id

TThostFtdcUserIDType UserID;

};

5.2.6 OnRspUserPasswordUpdate

CTP服务器使用此callback函数来通知客户端函数“RspUserPasswordUpdate”是否运行成功。

定义:void OnRspUserPasswordUpdate(

CThostFtdcUserPasswordUpdateField

*pUserPasswordUpdate,

CThostFtdcRspInfoField *pRspInfo,

int nRequestID,

bool bIsLast);

参数:

pUserPasswordUpdate:Pointer of the structure for the response of user’s

password modification. The following is definition of the structure:

struct CThostFtdcUserPasswordUpdateField

{

///broker id

TThostFtdcBrokerIDType BrokerID;

///user id

TThostFtdcUserIDType UserID;

///old password

TThostFtdcPasswordTypeOldPassword;

///new password

TThostFtdcPasswordTypeNewPassword;

};

5.2.7 OnRspTradingAccountPasswordUpdate

CTP服务器使用此callback函数来通知客户端是否函数“RspTradingAccountPasswordUpdate”运行成功。

定义:void OnRspTradingAccountPasswordUpdate(

CThostFtdcTradingAccountPasswordUpdateField

*pTradingAccountPasswordUpdate,

CThostFtdcRspInfoField *pRspInfo,

int nRequestID,

bool bIsLast);

parameters:

pTradingAccountPasswordUpdate:Pointer of the structure for the response of trading account password modification. The following is definition of the structure,

struct CThostFtdcTradingAccountPasswordUpdateField

{

///broker id

TThostFtdcBrokerIDType BrokerID;

///account id

TThostFtdcAccountIDType AccountID;

///old password

TThostFtdcPasswordTypeOldPassword;

///new password

TThostFtdcPasswordTypeNewPassword;

};

5.2.8 OnRspError

CTP服务器利用此callback函数来通知客户端,其应用程序请求出现错误。

定义:void OnRspError(

CThostFtdcRspInfoField *pRspInfo,

int nRequestID,

bool bIsLast)

参数:

pRspInfo:Pointer of the structure for the response information. The following is definition of the structure,

struct CThostFtdcRspInfoField

{

///error id

TThostFtdcErrorIDType ErrorID;

///error information

TThostFtdcErrorMsgType ErrorMsg;

};

5.2.9 OnRspOrderInsert

CTP服务器使用此callback函数来反馈客户端“RspOrderInsert”的请求。

定义:void OnRspOrderInsert(

CThostFtdcInputOrderField *pInputOrder,

CThostFtdcRspInfoField *pRspInfo,

int nRequestID,

bool bIsLast);

参数:

pInputOrder:Pointer of the structure for the response of order inserting. The

following is definition of the structure,

struct CThostFtdcInputOrderField

{

///broker id

TThostFtdcBrokerIDType BrokerID;

///investor ID

TThostFtdcInvestorIDType InvestorID;

///instrument ID

TThostFtdcInstrumentIDType InstrumentID;

///order reference

TThostFtdcOrderRefType OrderRef;

///user id

TThostFtdcUserIDType UserID;

/// price type of condition order TThostFtdcOrderPriceTypeType OrderPriceType;

///order direction

TThostFtdcDirectionType Direction;

///combination order’s offset flag TThostFtdcCombOffsetFlagType CombOffsetFlag;

///combination or hedge flag TThostFtdcCombHedgeFlagType CombHedgeFlag;

///price

TThostFtdcPriceType LimitPrice;

///volume

TThostFtdcV olumeType V olumeTotalOriginal;

///valid date

TThostFtdcTimeConditionType TimeCondition;

21

///GTD DATE

TThostFtdcDateType GTDDate;

///volume type

TThostFtdcV olumeConditionType V olumeCondition;

///min volume

TThostFtdcV olumeType MinV olume;

///trigger condition TThostFtdcContingentConditionType ContingentCondition; ///stop price

TThostFtdcPriceType StopPrice;

///force close reason TThostFtdcForceCloseReasonType ForceCloseReason;

/// auto suspend flag

TThostFtdcBoolType IsAutoSuspend;

///business unit

TThostFtdcBusinessUnitType BusinessUnit;

///request ID

TThostFtdcRequestIDType RequestID;

};

5.2.10 OnRspOrderAction

CTP服务器使用此callback函数来反馈客户端“RspOrderAction”的请求。

定义:void OnRspOrderAction(

CThostFtdcOrderActionField *pOrderAction,

CThostFtdcRspInfoField *pRspInfo,

int nRequestID,

bool bIsLast);

参数:

pOrderAction:Pointer of the structure for the response of order action. The following is definition of the structure,

struct CThostFtdcOrderActionField

{

///broker id

TThostFtdcBrokerIDType BrokerID;

///investor ID

TThostFtdcInvestorIDType InvestorID;

TThostFtdcRequestIDType RequestID;

///front ID

TThostFtdcFrontIDType FrontID;

///session ID

TThostFtdcSessionIDType SessionID;

///exchange ID

TThostFtdcExchangeIDType ExchangeID;

///order system ID

TThostFtdcOrderSysIDType OrderSysID;

///action flag

TThostFtdcActionFlagType ActionFlag;

///price

TThostFtdcPriceType LimitPrice;

///volume change

TThostFtdcV olumeType V olumeChange;

///action date

TThostFtdcDateType ActionDate;

///action time

TThostFtdcTimeType ActionTime;

///trader ID

TThostFtdcTraderIDType TraderID;

///install ID

TThostFtdcInstallIDType InstallID;

///order local ID

TThostFtdcOrderLocalIDType OrderLocalID;

///action local ID

TThostFtdcOrderLocalIDType ActionLocalID;

///participant ID

TThostFtdcParticipantIDType ParticipantID;

///trading code

TThostFtdcClientIDTypeClientID;

///business unit

TThostFtdcBusinessUnitType BusinessUnit;

///order action status TThostFtdcOrderActionStatusTypeOrderActionStatus;

///user id

TThostFtdcUserIDType UserID;

///status message

TThostFtdcErrorMsgType StatusMsg;

5.2.11 OnRspQueryMaxOrderV olume

CTP服务器使用此callback函数来反馈客户端应用程序“ReqQueryMaxOrderV olume”的请求。

定义:void OnRspQueryMaxOrderV olume(

CThostFtdcQueryMaxOrderV olumeField *pQueryMaxOrderV olume,

CThostFtdcRspInfoField *pRspInfo,

int nRequestID,

bool bIsLast);

参数:pQueryMaxOrderV olume:Pointer of the structure for the response of ReqQueryMaxOrderV olume. The following is definition of the structure,

struct CThostFtdcQueryMaxOrderV olumeField

{

///broker id

TThostFtdcBrokerIDType BrokerID;

///investor ID

TThostFtdcInvestorIDType InvestorID;

///instrument ID

TThostFtdcInstrumentIDType InstrumentID;

///direction

TThostFtdcDirectionType Direction;

///offset flag

TThostFtdcOffsetFlagType OffsetFlag;

///hedge flag

TThostFtdcHedgeFlagType HedgeFlag;

///max volume

TThostFtdcV olumeType MaxV olume;

};

5.12 OnRspSettlementInfoConfirm

CTP服务器利用此callback函数反馈客户端应用程序“ReqSettlementInfoConfirm”的请求。

定义:void OnRspSettlementInfoConfirm(

CThostFtdcSettlementInfoConfirmField *pSettlementInfoConfirm,

CThostFtdcRspInfoField *pRspInfo,

int nRequestID,

bool bIsLast);

参数:

pSettlementInfoConfirm: Pointer of the structure for the response of

ReqSettlementInfoConfirm. The following is definition of the structure,

struct CThostFtdcSettlementInfoConfirmField

{

///broker id

TThostFtdcBrokerIDType BrokerID;

///investor ID

TThostFtdcInvestorIDType InvestorID;

///confirm date

TThostFtdcDateType ConfirmDate;

///confirm time

TThostFtdcTimeType ConfirmTime;

};

5.13 OnRspQryOrder

CTP服务器利用此callback函数反馈客户端应用程序“ReqSettlementInfoConfirm”的请求。

定义:void OnRspQryOrder(

CThostFtdcOrderField *pOrder,

CThostFtdcRspInfoField *pRspInfo,

int nRequestID,

bool bIsLast);

参数:

pOrder:Pointer of the structure for the response of ReqQryOrder. The following is definition of the structure,

struct CThostFtdcOrderField

{

///broker id

TThostFtdcBrokerIDType BrokerID;

///investor ID

TThostFtdcInvestorIDType InvestorID;

///instrument ID

TThostFtdcInstrumentIDType InstrumentID;

///order reference

TThostFtdcOrderRefType OrderRef;

TThostFtdcUserIDType UserID;

///order price type TThostFtdcOrderPriceTypeType OrderPriceType;

///direction

TThostFtdcDirectionType Direction;

///combination order’s offset flag TThostFtdcCombOffsetFlagType CombOffsetFlag;

///combination or hedge flag TThostFtdcCombHedgeFlagType CombHedgeFlag;

///price

TThostFtdcPriceType LimitPrice;

///volume

TThostFtdcV olumeType V olumeTotalOriginal;

///valid date type

TThostFtdcTimeConditionType TimeCondition;

///GTD DATE

TThostFtdcDateType GTDDate;

///volume condition

TThostFtdcV olumeConditionType V olumeCondition;

///min volume

TThostFtdcV olumeType MinV olume;

///trigger condition TThostFtdcContingentConditionType ContingentCondition; ///stop price

TThostFtdcPriceType StopPrice;

///force close reason TThostFtdcForceCloseReasonType ForceCloseReason;

/// auto suspend flag

TThostFtdcBoolType IsAutoSuspend;

///business unit

TThostFtdcBusinessUnitType BusinessUnit;

///request ID

TThostFtdcRequestIDType RequestID;

///order local ID

TThostFtdcOrderLocalIDType OrderLocalID;

///exchange ID

TThostFtdcExchangeIDType ExchangeID;

///participant ID

TThostFtdcParticipantIDType ParticipantID;

///trading code

TThostFtdcClientIDTypeClientID;

///exchange instrument ID TThostFtdcExchangeInstIDType ExchangeInstID;

TThostFtdcTraderIDType TraderID;

///install ID

TThostFtdcInstallIDType InstallID;

///order submit status TThostFtdcOrderSubmitStatusType OrderSubmitStatus; ///order notify sequence TThostFtdcSequenceNoType NotifySequence;

///trading day

TThostFtdcDateType TradingDay;

///settlement ID

TThostFtdcSettlementIDType SettlementID;

///order system ID

TThostFtdcOrderSysIDType OrderSysID;

///order source

TThostFtdcOrderSourceType OrderSource;

///order status

TThostFtdcOrderStatusType OrderStatus;

///order type

TThostFtdcOrderTypeType OrderType;

///volume traded

TThostFtdcV olumeType V olumeTraded;

/// total volume

TThostFtdcV olumeType V olumeTotal;

///insert date

TThostFtdcDateType InsertDate;

///insert time

TThostFtdcTimeType InsertTime;

///active time

TThostFtdcTimeType ActiveTime;

///suspend time

TThostFtdcTimeType SuspendTime;

///update time

TThostFtdcTimeType UpdateTime;

///cancel time

TThostFtdcTimeType CancelTime;

///active trader ID

TThostFtdcTraderIDType ActiveTraderID;

///clear participant ID TThostFtdcParticipantIDType ClearingPartID;

///sequence No.

TThostFtdcSequenceNoType SequenceNo;

///front ID

TThostFtdcFrontIDType FrontID;

TThostFtdcSessionIDType SessionID;

///user product information

TThostFtdcProductInfoType UserProductInfo;

///status message

TThostFtdcErrorMsgType StatusMsg;

};

5.2.14 OnRspQryTrade

CTP服务器利用此callback函数反馈客户端应用程序“ReqQryTrade”的请求。

定义:void OnRspQryTrade(

CThostFtdcTradeField *pTrade,

CThostFtdcRspInfoField *pRspInfo,

int nRequestID,

bool bIsLast);

参数:

pTrade:Pointer of the structure for the response of ReqQryTrade. The following is definition of the structure,

struct CThostFtdcTradeField

{

///broker id

TThostFtdcBrokerIDType BrokerID;

///investor ID

TThostFtdcInvestorIDType InvestorID;

///instrument ID

TThostFtdcInstrumentIDType InstrumentID;

///order reference

TThostFtdcOrderRefType OrderRef;

///user id

TThostFtdcUserIDType UserID;

///exchange ID

TThostFtdcExchangeIDType ExchangeID;

///trade ID

TThostFtdcTradeIDTypeTradeID;

///direction

TThostFtdcDirectionType Direction;

///order system ID

TThostFtdcOrderSysIDType OrderSysID;

///participant ID

TThostFtdcParticipantIDType ParticipantID;

///trading code

TThostFtdcClientIDTypeClientID;

///trading role

TThostFtdcTradingRoleType TradingRole;

///exchange instrument ID

TThostFtdcExchangeInstIDType ExchangeInstID;

///offset flag

TThostFtdcOffsetFlagType OffsetFlag;

///hedge flag

TThostFtdcHedgeFlagType HedgeFlag;

///price

TThostFtdcPriceType Price;

///volume

TThostFtdcV olumeType V olume;

///trade date

TThostFtdcDateType TradeDate;

///trade time

TThostFtdcTimeType TradeTime;

///trade type

TThostFtdcTradeTypeType TradeType;

///price source

TThostFtdcPriceSourceType PriceSource;

///trader ID

TThostFtdcTraderIDType TraderID;

///order local ID

TThostFtdcOrderLocalIDType OrderLocalID;

///clear participant ID

TThostFtdcParticipantIDType ClearingPartID;

///business unit

TThostFtdcBusinessUnitType BusinessUnit;

///sequence No.

TThostFtdcSequenceNoType SequenceNo;

///trading day

TThostFtdcDateType TradingDay;

///settlement ID

TThostFtdcSettlementIDType SettlementID;

};

5.2.15 OnRspQryInvestor

CTP服务器利用此callback函数反馈客户端应用程序“ReqQryInvestor”的请求。

定义:void OnRspQry Investor (

CThostFtdcInvestorField *pInvestor,

CThostFtdcRspInfoField *pRspInfo,

int nRequestID,

bool bIsLast);

参数:

pInvestor:Pointer of the structure for the response of ReqQryInvestor. The

following is definition of the structure,

struct CThostFtdcInvestorField

{

///investor ID

TThostFtdcInvestorIDType InvestorID;

///broker id

TThostFtdcBrokerIDType BrokerID;

///investor group ID

TThostFtdcInvestorIDType InvestorGroupID;

///investor name

TThostFtdcPartyNameType InvestorName;

///Identified Card Type

TThostFtdcIdCardTypeType IdentifiedCardType;

///Identified Card No.

TThostFtdcIdentifiedCardNoType IdentifiedCardNo;

///is active

TThostFtdcBoolType IsActive;

};

5.2.16 OnRspQryInvestorPosition

CTP服务器利用此callback函数反馈客户端应用程序“ReqQryInvestorPosition”的请求。

定义:void OnRspQry InvestorPosition(

CThostFtdcInvestorPositionField *pInvestorPosition,

CThostFtdcRspInfoField *pRspInfo,

int nRequestID,

bool bIsLast);

参数:

pInvestorPosition :Pointer of the structure for the response of

ReqQryInvestorPosition. The following is definition of the structure,

struct CThostFtdcInvestorPositionField

{

///instrument ID

TThostFtdcInstrumentIDType InstrumentID;

///broker id

TThostFtdcBrokerIDType BrokerID;

///investor ID

TThostFtdcInvestorIDType InvestorID;

///position direction

TThostFtdcPosiDirectionType PosiDirection;

///hedge flag

TThostFtdcHedgeFlagType HedgeFlag;

///position date

综合交易平台的UDP使用方法

Userapi使用方法 一、根据CThostFtdcUserSpi派生出客户端系统所需的回调接口类 1.必须重载的函数有:virtual void OnFrontConnected(); 当客户端与交易后台建立起通信连接时(还未登录前),该函数被调用,客户端可在此函数内实现登陆; 2.其它函数可以根据自己的业务需求重载 二、调用CThostFtdcUserApi::CreateFtdcUserApi创建userapi实例 1.函数原形: static CThostFtdcUserApi *CreateFtdcUserApi(const char *pszFlowPath = "", const bool bIsUsingUdp=false) 参数pszFlowPath:流文件的存放路径(用户自己创建),缺省为当前目录 参数bIsUsingUdp:为行情模式(交易实例该参数缺省或置为false),使用行情时,该参数缺省或置为false时为TCP行情,否则为UDP行情; 三、调用CThostFtdcUserApi的函数SubscribePrivateTopic注册共有流(行情)或私 有流(交易类、查询类) 函数原形:virtual void SubscribePrivateTopic(THOST_TE_RESUME_TYPE nResumeType) 参数nResumeType:私有流重传方式,取值为THOST_ TERT_RESTART-从本交易日开始重传、THOST_TERT_RESUME-从上次收到的续传、THOST_TERT_QUICK-只传送登录后私有流的内容; 四、调用CThostFtdcUserApi::RegisterFront注册交易或行情服务器 函数原形:virtual void RegisterFront(char *pszFrontAddress) 参数pszFrontAddress:交易或行情服务器的地址、端口号 特殊说明:pszFrontAddress格式:tcp://xxx.xxx.xxx.xxx:yyyy,对于行情,无论是tcp还是udp,都应该使用此格式,因为udp传输存在不可靠性,所以在登陆、订阅行情、接收第一次行情时时仍然使用tcp;并且不必为udp配置节点,udp仍然使用该地址和端口号; 五、创建CThostFtdcUserSpi派生类的实例 六、调用CThostFtdcUserApi::RegisterSpi回调接口类的实例 函数原形:virtual void RegisterSpi(CThostFtdcUserSpi *pSpi) 参数pSpi:回调接口类的实例 七、调用CThostFtdcUserApi::Init初始化运行环境,启动工作线程 函数原形:virtual void Init() 八、结束

上期CTP技术

CTP介绍 综合交易平台做为一个开放、快速、稳定、安全的期货交易、结算系统解决方案,随着接入期货公司的增多,其在期货界也获得了越来越普遍的认同。国内期货界程序化交易热情的不断高涨,也为综合交易平台的蓬勃发展提供了契机。综合交易平台开放的接口、优异的性能、集中部署的创新模式以及经验丰富的技术背景都为程序化交易在国内的快速发展提供了最为优异的平台。综合交易平台现有的程序化交易客户对综合交易平台的解决方案给了很高的评价,其交易量也不断攀升。 下图是目前综合交易平台提供的程序化交易方案的部署图: 1. 期货公司在使用综合交易平接入程序化交易前,需要首先成为综合交易平台主席(或二席)客户。

2. 综合交易平台提供开放的API(基于C++)及相关文档,并在客户进行程序化交易终端开发时提供技术帮助。 3. 为方便程序化交易终端的开发测试,综合交易平台免费提供其他成熟的交易终端供客户使用。在客户的程序化交易终端出现故障时,也可以使用该终端进行紧急处理。 4. 程序化交易终端可以使用专线接入综合交易平台,为进一步提高接入速度,客户也可以将程序化交易终端托管在上期技术机房。 CTP的优势 1. 开放的API接口 综合交易平台从一开始就秉承“整合更多的技术资源为期货界提供最高端的解决方案”的宗旨,开放性的API接口是贯彻这一宗旨的必要前提。只有开放接口,综合交易平台才能在提供稳定高效的交易结算后台的同时满足期货交易客户的多样性、个性化的需求。 首先,开放性的接口给程序化交易者提供了直接接入交易后台的合法平台,程序化交易者再也不需要承受破解市面流行交易系统的私密接口进行非法接入的系统和商务风险,也不需要忍气吞声的使用交易系统厂商提供的、经过层层包裹而慢得要命的网关平台。 其次,程序化交易者可以使用开放的接口自行开发或是寻求可控的第三方技术帮助,这样程序化交易者既实现了了交易的程序化,又能将自己的核心交易策略控制在自己手中。 另外,使用开放性的接口的程序化交易交易策略,在执行时采取的是编译后直接运行的模式,而不同于目前市面上提供的交易策略公式实现平台的解释执行模式,在瞬息万变的期货实时交易中,解释执行造成的时间延误往往会将一个成功的交易策略变成烧钱的机器。 2. 高性能的交易后台 综合交易平台8000笔/秒处理速度的交易引擎,整套系统在0.5毫秒以内处理完成报单、成交全过程的资金持仓计算的能力,以及无单点故障并实现负载均衡的交易系统体系架构树立了综合交易平台高性能的业界形象。综合交易平台高性能的处理能力,对撤单率极高的程序化交易策略提供了最强大的支持,期货公司再也不需要在交易系统中关闭对程序化交易客户几十上百万笔报单回报的收取,而使风险控制流于形式。使用综合交易平台,期货公司在拥有高速交易能力的同时,也不用担心多上几个客户系统就会岌岌可危。综合交易平台目前的系统配置就拥有2万个客户同时在线的处理能力,还可以通过扩展前置机群进一步提升系统对更多客户在线的处理能力。 3. 高速的交易所通信线路 综合交易平台通过千兆局域网接入中金所和上期所交易系统,通过三所联网

上期CTP及上期所张江机房VIP交易通道简介-1ms极速交易通道

上期CTP交易软件及上期所张江机房VIP交易通道服务简介 打造1毫秒极速交易通道 1、CTP交易软件: 目前中大期货为投资者提供了CTP快期、CTP交易开拓者、CTP金字塔、CTP 闪电手、CTP闪电王、CTP文华赢智等期货交易终端。 2、CTP平台交易的上期技术机房服务器托管服务(数量有限): 提供上期所张江机房VIP交易通道服务,确保最大的交易机会。采用期货行业最先进的万兆全光纤网络解决方案,提供1ms极速交易接入!可以自主管理服务器,确保数据安全。 上期所张江机房服务器通过全万兆全光纤接入CTP平台并直接发送交易指令至交易所服务器,无需经过其他中转服务器,其报单和行情速度处于目前业内领先水平。 3、CTP平台简介 CTP综合交易平台是由上海期货信息技术有限公司(上海期货交易所的全资子公司)开发的期货交易平台,适合程序化交易软件运用和短线炒单客户使用。 CTP的优势 开放的API接口 开放性的接口给程序化交易者提供了直接接入交易后台的平台,客户可以自行开发或是寻求第三方技术帮助。此外,CTP使用开放性接口的程序化交易策略,采取编译后直接运行的模式,没有目前市面上多数软件普遍存在的时间延误。 高性能的交易后台 综合交易平台8000笔/秒处理速度的交易引擎,整套系统在0.5毫秒以内处理完成报单、成交全过程的资金持仓计算的能力,对撤单率极高的程序化交易策略提供了最强大的支持。 高速的交易所通信线路 综合交易平台通过千兆局域网接入中金所和上期所交易系统,通过三所联网主干接入大商所和郑商所。 风险提示:任何硬件、软件均存在发生差错的概率,若您的电脑无法登录CTP平台交易软件进行交易,请及时致电中大期货人工下单电话。

CTP系统简介

CTP系统介绍 综合交易平台(Comprehensive Transaction Platform),是专门为期货公司开发的一期货经纪业务管理系统,由交易、风险控制和结算三大系统组成。系统能够同时连通国内四家期货交易所,支持国内商品期货和股指期货的交易结算业务,并能自动生成、报送保证金监控文件和反洗钱监控文件。 CTP特点: 1、CTP交易系统“新一代交易所系统”的核心技术为基础,适合程序化交易软件运用和短线炒手使用的交易平台。 2、应用CTP的开发接口自己编写软件,支持C++语言,NET语言。 3、基于上期所和中金所NGES核心支持,稳定、高速、开放式接口。 3、内存数据库,信息总线技术,完全消除闪单点故障,报盘机热备和负载均衡。 4、系统并发处理能力强大,委托性能超过2000笔/秒,软件本身可达8000笔/秒,支持同时在线客户并发数为1万个客户/秒,且可以通过增加前置机进一步扩充。系统主要面向期货公司,也可用于基金公司、投资公司等进行期货交易。 CTP的优势 1. 开放的API接口 首先,开放性的接口给程序化交易者提供了直接接入交易后台的合法平台,程序化交易者再也不需要承受破解市面流行交易系统的私密接口进行非法接入的系统和商务风险,也不需要忍气吞声的使用交易系统厂商提供的、经过层层包裹而慢得要命的网关平台。 其次,程序化交易者可以使用开放的接口自行开发或是寻求可控的第三方技术帮助,这样程序化交易者既实现了了交易的程序化,又能将自己的核心交易策略控制在自己手中。 另外,使用开放性的接口的程序化交易交易策略,在执行时采取的是编译后直接运行的模式,而不同于目前市面上提供的交易策略公式实现平台的解释执行模式,在瞬息万变的期货实时交易中,解释执行造成的时间延误往往会将一个成功的交易策略变成烧钱的机器。 2. 高性能的交易后台 综合交易平台8000笔/秒处理速度的交易引擎,整套系统在0.5毫秒以内处理完成报单、成交全过程的资金持仓计算的能力,以及无单点故障并实现负载均衡的交易系统体系架构树立了综合交易平台高性能的业界形象。综合交易平台高性能的处理能力,对撤单率极高的程序化交易策略提供了最强大的支持,期货公司再也不需要在交易系统中关闭对程序化交易客户几十上百万笔报单回报的收取,而使风险控制流于形式。使用综合交易平台,期货公司在拥有高速交易能力的同时,也不用担心多上几个客户系统就会岌岌可危。综合交易平台目前的系统配置就拥有2万个客户同时在线的处理能力,还可以通过扩展前置机群进一步提升系统对更多客户在线的处理能力。 3. 高速的交易所通信线路 综合交易平台通过千兆局域网接入中金所和上期所交易系统,通过三所联网主干接入大商所和郑商所。投资者在综合交易平台的报单直接进入综合交易平台的前置机,经过交易后台高速的资金持仓计算后再经局域网报到中金所和上期所,通过三所联网主干报到大商所和郑商所。行情服务器直连交易所并在同一个进程实现分发到行情前置,接收和分发完全在内存中完成,网络迟延也被压缩到了极点。托管于上期技术的程序化交易终端,因为通过局域网

ctp综合交易平台下单字段分析

CTP综合交易平台下单字段分析 CTP综合交易平台下单字段分析2015-11-16 13:58 1126人阅读评论(0) 收藏举报版权声明:本文为博主原创文章,未经博主允许不得转载。///输入报单 struct CThostFtdcInputOrderField { ///经纪公司代码 TThostFtdcBrokerIDType BrokerID; ///投资者代码 TThostFtdcInvestorIDType InvestorID; ///合约代码 TThostFtdcInstrumentIDType InstrumentID; ///报单引用 TThostFtdcOrderRefType OrderRef; ///用户代码 TThostFtdcUserIDType UserID; ///报单价格条件 TThostFtdcOrderPriceTypeType OrderPriceType;///市价 #define THOST_FTDC_OPT_AnyPrice '1' ///限价/条件单 #define THOST_FTDC_OPT_LimitPrice '2'

///最优价 #define THOST_FTDC_OPT_BestPrice '3' ///最新价 #define THOST_FTDC_OPT_LastPrice '4' ///最新价浮动上浮1个ticks #define THOST_FTDC_OPT_LastPricePlusOneTicks '5' ///最新价浮动上浮2个ticks #define THOST_FTDC_OPT_LastPricePlusTwoTicks '6' ///最新价浮动上浮3个ticks #define THOST_FTDC_OPT_LastPricePlusThreeTicks '7' ///卖一价 #define THOST_FTDC_OPT_AskPrice1 '8' ///卖一价浮动上浮1个ticks #define THOST_FTDC_OPT_AskPrice1PlusOneTicks '9' ///卖一价浮动上浮2个ticks #define THOST_FTDC_OPT_AskPrice1PlusTwoTicks 'A' ///卖一价浮动上浮3个ticks #define THOST_FTDC_OPT_AskPrice1PlusThreeTicks 'B' ///买一价 #define THOST_FTDC_OPT_BidPrice1 'C' ///买一价浮动上浮1个ticks #define THOST_FTDC_OPT_BidPrice1PlusOneTicks 'D'

CTP平台术语解释

综合交易平台术语解释 交易员终端 交易实时行情窗口术语 合约代码:综合交易平台的合约代码 合约在交易所的代码:期货合约在交易所的代码 交易阶段编号:交易所交易节编号 今虚实度:期权中的今虚实度值,即Delta期权价格相对于标的物价格的变化率 昨虚实度:期权中的昨虚实度值 最后修改时间:行情最近一次更新的时间 最后修改毫秒:最后修改时间的毫秒值 交易所代码:SHFE/DCE/CZCE(上期所/大连交易所/郑州交易所) 今收盘:今日收盘价,收盘价是指某一期货合约当日交易日的最后一笔成交价格 进入本状态原因:手动切换,自动切换,熔断 申买价:某一期货合约当日交易所系统中出现的未成交报单的最高申买价 按价格由高到低五级排序,申买价一,申买价二申买价三,申买价四,申买价五申卖价:某一期货合约当日交易系统中出现的未成交报单的最低申卖价 按价格由低到高五级排序,申卖价一,申卖价二,申卖价三,申卖价四,申卖价五申买量:指某一期货合约当日交易所系统中未成交的最高价位申请买入的下单数量。 按和申买价五级排序对应分为五级,申买量一,申买量二,申买量三,申买量四,申买量五 申卖量:指某一期货合约当日交易所系统中未成交的最低价位申请卖出的下单数量。 按和申卖价五级排序对应分为五级,申卖量一,申卖量二,申卖量三,申卖量四,申卖量五 昨持仓量:历史持仓数量 最新价:当前交易日合约最新成交价格 涨跌:最新价–昨结算价 持仓量:某一期货合约所有未平仓合约的双边数量 仓差:某一期货合约当日持仓量与上日持仓量相比增加(正值),减少(负值)或不变(0)合约交易状态:分为集合竞价报单,集合竞价价格平衡,集合竞价撮合,开盘前,连续交易,非交易,收盘;现在该字段为空,各交易所的状态放在左下状态条显示。进入本状态时间:进入合约交易状态的时间

多账户-多策略期货交易程序(ctp开发经验分享)

CTP多账户多策略-交易程序 C++c t p接口程序化交易经验分享 CTP简介 综合交易平台CTP(Comprehensive Transaction Platform)是由上海期货信息技术有限公司(上海期货交易所的全资子公司)开发的期货交易平台,CTP平台以“新一代交易所系统”的核心技术为基础,稳定、高速、开放式接口,适合程序化交易软件运用和短线炒单客户使用。 ctp接口下载地址 本文目的 该程序是我大二暑假参加一个金融软件比赛写的,是比赛作品的其中一部分,专门用来进行交易的。作品的目标是多账户、多策略。其中交易策略用别的语言编写,它们产生并发送交易指令(交易账户、交易合约等信息)给交易主机(即这个项目)进行买卖。因此交易主机的主要职责是接收、解析并执行交易指令,跟踪汇报指令的交易情况。具体情况可以看我我上传的介绍视频,那是后来提交作品时录的。 后来有几个人问起我这个程序,其中有位老师想在实盘中测试下自己的交易策略怎样,就找了两位师弟给他做那个东西,然后让我去给他们讲要注意些什么东西,这让我想起自己一开始接触ctp的接口时,花了不少时间去测试接口看是怎么一回事。鉴于网上ctp的开发介绍不多,我就借这个项目分享下经验,让大家能少走些弯路就尽量少走一些。 有以下地方需要注意: 环境:VS2013 + Qt5.3(32位) + mysql(32位)(在我写这个项目时ctp在windows平台上 只有32位的库) 刚接触的话先粗略浏览下“开发资料”中的内容,里面的PPT是需要细看的。我下面 讲的是些开发的经验,并不是起步教程,理解资料中的PPT是起步的关键 在初步理解概念后试着自己写一个登录发请求的例子,试着调用不同的API函数,这 些可以参考noQtCTP.rar里的内容(结合文档中的示例)。这是我开始接触ctp接口 时为了理解写的一些代码(就是登录、调用简单的API),不需要Qt库也可以编译 当需要测试交易API时,可以参考tdspiTestWithQt.rar里的内容,这是我学交易API 操作和研究回调函数时用得最多的工具了!需要Qt进行编译,可以不断修改里面的

综合交易平台运维培训教材系列--银期

综合交易平台运维培训教材系列(第一册) 综合交易平台 交易、风控、银期系统技术介绍

目录 1文档介绍 (1) 1.1文档目的 (1) 1.2读者对象 (1) 1.3参考文献 (1) 1.4术语与缩写解释 (1) 1.5概述 (2) 2银期系统 (5) 2.1概述 (5) 2.2银期的架构图示 (5) 2.3银期系统各组件介绍 (6) 2.3.1银期报盘 (6) 2.3.2银期报盘管理器 (6) 2.4银期程序启动之前配置 (6) 2.4.1配置期货公司和银行代码映射关系 (6) 2.4.2配置银期签约关系 (7) 2.5签到及相应的异常处理 (7) 2.5.1正常情况 (7) 2.5.2异常情况及处理 (8) 2.6签约、解约及相应的异常处理 (8) 2.6.1签约(开户) (8) 2.6.2解约(销户) (9) 2.7转账类交易过程及其相应的异常处理 (10) 2.7.1期货方发起 (10) 2.7.2银行方发起 (12) 2.8银期出入金时间设置 (12) 2.9银期转账限额设置 (13) 2.9.1转账限额 (13) 2.9.2银行转账限额 (13) 2.9.3当日转账限额 (13) 2.10冲正机制 (14) 2.11签退 (14) 2.12对账 (14) 2.12.1对账文件 (14) 2.12.2对账文件是否到达 (15) 2.12.3手工对账 (15) 2.12.4自动对账 (15) 2.13银期流水和日志 (15) 2.14对五家银行处理时的差异之处介绍 (16) 2.14.1中国交通银行 (16) 2.14.2中国建设银行 (16)

5)不要随意停止密钥协商服务 (18) 2.14.3中国工商银行 (18) 2.14.4中国农业银行 (19) 2.14.5中国银行 (19)

ctp综合交易平台教程

CTP综合交易平台教程 基本介绍 一、系统简介 交易托管系统 API 是一个基于 C++的类库, 通过使用和扩展类库提供的接口来实现相关交易功能,包括报单与报价的录入、报单与报价的撤销、报单与报价的挂起、报单与报价的激活、报单与报价的修改、报单与报价的查询、成交单查询、投资者查询、投资者持仓查询、合约查询、交易日获取等。 支持 MS VC 6.0,MS https://www.docsj.com/doc/bc15695231.html, 2003 编译器。需要打开多线程编译选项/MT。 二、体系结构 交易员 API 使用建立在 TCP 协议之上 FTD 协议与交易托管系统进行通讯,交易托管系统负责投资者的交易业务处理。 2.1.通讯模式 FTD 协议中的所有通讯都基于某个通讯模式。通讯模式实际上就是通讯双方协同工作的方式。FTD 涉及的通讯模式共有三种:l 对话通讯模式l 私有通讯模式l 广播通讯模式对话通讯模式是指由会员端主动发起的通讯请求。该请求被交易所端接收和处理,并给予响应。例如报单、查询等。这种通讯模式与普通的客户/服务器模式相同。私有通讯模式是指交易所端主动,向某个特定的会员发出的信息。例如成交回报等。广播通讯模式是指交易所端主动,向市场中的所有会员都发出相同的信息。例如公告、市场公共信息等。通讯模式和网络的连接不一定存在简单的一对一的关系。也就是说,一个网络连接中可能传送多种不同通讯模式的报文,一种通讯模式的报文也可以在多个不同的连接中传送。无论哪种通讯模式,其通讯过程都如图 1 所示

本接口暂时没有使用广播通信方式。 2.2.数据流 交易托管系统支持对话通讯模式、私有通讯模式、广播通讯模式:对话通讯模式下支持对话数据流和查询数据流:对话数据流是一个双向数据流,交易托管系统发送交易请求,交易系统反馈应答。交易系统不维护对话流的状态。系统故障时,对话数据流会重置,通讯途中的数据可能会丢失。 查询数据流是一个双向数据流,交易托管系统发送查询请求,交易系统反馈应答。交易系统不维护查询流的状态。系统故障时,查询数据流会重置,通讯途中的数据可能会丢失。私有通讯

CTP综合交易平台简介

CTP综合交易平台简介 综合交易平台CTP(Comprehensive Transaction Platform)是由上海期货信息技术有限公司(上海期货交易所的全资子公司)开发的期货交易平台,CTP平台以“新一代交易所系统”的核心技术为基础,提供稳定、高速、开放式接口,适合程序化交易软件运用和短线炒单客户使用。 一.CTP介绍 综合交易平台做为一个开放、快速、稳定、安全的期货交易、结算系统解决方案,随着接入期货公司的增多,其在期货界也获得了越来越普遍的认同。国内期货界程序化交易热情的不断高涨,也为综合交易平台的蓬勃发展提供了契机。综合交易平台开放的接口、优异的性能、集中部署的创新模式以及经验丰富的技术背景都为程序化交易在国内的快速发展提供了最为优异的平台。综合交易平台现有的程序化交易客户对综合交易平台的解决方案给了很高的评价,其交易量也不断攀升。 下图是目前综合交易平台提供的程序化交易方案的部署图: 1. 期货公司在使用综合交易平接入程序化交易前,需要首先成为综合交易平台主席(或二席)客户。 2. 综合交易平台提供开放的API(基于C++)及相关文档,并在客户进行程序化交易终端开发时提供技术帮助。 3. 为方便程序化交易终端的开发测试,综合交易平台免费提供其他成熟的交易终端供客户使用。在客户的程序化交易终端出现故障时,也可以使用该终端进行紧急处理。 4. 程序化交易终端可以使用专线接入综合交易平台,为进一步提高接入速度,客户也可以将程序化交易终端托管在上期技术机房。

二. CTP的优势 1. 开放的API接口 综合交易平台从一开始就秉承“整合更多的技术资源为期货界提供最高端的解决方案”的宗旨,开放性的API接口是贯彻这一宗旨的必要前提。只有开放接口,综合交易平台才能在提供稳定高效的交易结算后台的同时满足期货交易客户的多样性、个性化的需求。 首先,开放性的接口给程序化交易者提供了直接接入交易后台的合法平台,程序化交易者再也不需要承受破解市面流行交易系统的私密接口进行非法接入的系统和商务风险,也不需要忍气吞声的使用交易系统厂商提供的、经过层层包裹而慢得要命的网关平台。 其次,程序化交易者可以使用开放的接口自行开发或是寻求可控的第三方技术帮助,这样程序化交易者既实现了了交易的程序化,又能将自己的核心交易策略控制在自己手中。 另外,使用开放性的接口的程序化交易交易策略,在执行时采取的是编译后直接运行的模式,而不同于目前市面上提供的交易策略公式实现平台的解释执行模式,在瞬息万变的期货实时交易中,解释执行造成的时间延误往往会将一个成功的交易策略变成烧钱的机器。2. 高性能的交易后台 综合交易平台8000笔/秒处理速度的交易引擎,整套系统在0.5毫秒以内处理完成报单、成交全过程的资金持仓计算的能力,以及无单点故障并实现负载均衡的交易系统体系架构树立了综合交易平台高性能的业界形象。综合交易平台高性能的处理能力,对撤单率极高的程序化交易策略提供了最强大的支持,期货公司再也不需要在交易系统中关闭对程序化交易客户几十上百万笔报单回报的收取,而使风险控制流于形式。使用综合交易平台,期货公司在拥有高速交易能力的同时,也不用担心多上几个客户系统就会岌岌可危。综合交易平台目前的系统配置就拥有2万个客户同时在线的处理能力,还可以通过扩展前置机群进一步提升系统对更多客户在线的处理能力。 3. 高速的交易所通信线路 综合交易平台通过千兆局域网接入中金所和上期所交易系统,通过三所联网主干接入大商所和郑商所。投资者在综合交易平台的报单直接进入综合交易平台的前置机,经过交易后台高速的资金持仓计算后再经局域网报到中金所和上期所,通过三所联网主干报到大商所和郑商所。行情服务器直连交易所并在同一个进程实现分发到行情前置,接收和分发完全在内存中完成,网络迟延也被压缩到了极点。托管于上期技术的程序化交易终端,因为通过局域网接入综合交易平台,其报单和行情速度处于目前业内最快水平。

CTP主席交易系统客户登录验证测试软件及使用方法

CTP主席交易系统客户登录验证测试软件及使用方法 一、文华财经 1、在登录交易界面点击选择期货公司; 2、选择:和合期货_CTP(主席),点确定; 3、返回登录界面,输入账号密码及验证码登录;

4、登录验证完成后记得先切换回金仕达主席站点交易。 二、博易云交易版 在交易界面选择和合期货CTP主席交易,然后左边选择交易站点,输入账号密码及验证码登录,登录验证完成后记得先切换回金仕达主席站点交易。 三、闪电王交易软件 1、在登录界面点击选择期货公司,选择和合期货CTP主席交易,选择:和合期货主席交易;

2、返回登录界面,输入账号密码及验证码登录; 3、登录验证完成后记得先切换回金仕达主席站点交易。 四、快期交易终端V2版 1、在公司网站https://www.docsj.com/doc/bc15695231.html,软件下载菜单中下载快期交易终端V2版; 下载地址: https://www.docsj.com/doc/bc15695231.html,/Upload/file/20180711/20180711165613_0217.exe 2、安装后打开软件,选择联通或电信站点登录; 3、登录验证完成后记得先切换回金仕达主席站点交易。 五、快期交易终端V3版 1、在公司网站https://www.docsj.com/doc/bc15695231.html,软件下载菜单中下载快期交易终端V3版; 下载地址: https://www.docsj.com/doc/bc15695231.html,/Upload/file/20180711/20180711170211_1663.exe 2、安装后打开软件,选择登录页进入;

3、选择电信或联通站点输入客户号、密码登录。 4、登录验证完成后记得先切换回金仕达主席站点交易。 六、和合期货手机APP登录 1、在安卓或苹果商店搜索“和合期货”,下载和合期货APP; 2、打开APP后点击【交易】,选择交易服务器“CTP联通”或者“CTP电信”,返回登录界面输入用户名密码及验证码登录; 3、登录验证完成后记得先切换回金仕达主席站点交易。 七、文华财经随身行

综合交易平台API技术开发的指南

综合交易平台API技术开发指南 第一章CTP产品特性 (2) 第二章CTP-API技术基础 (4) 第三章CTP-API证券交易 (9) 模拟交易系统 (9) 证券交易实务 (9) 行情接口函数 (10) 交易接口函数 (10) 第四章CTP-API期货交易 (10) 模拟交易系统 (10) 期货交易实务 (11) 行情接口函数 (11) 交易接口函数 (11)

第一章CTP产品特性 如何获取综合交易平台(Comprehensive Transaction Platform 以下简称CTP)证券(期货)交易及行情API发布包、文档以及开发实例? 【答: 2群(102497247)群共享中发布,请及时获取最新版本。CTP_API开发技术群均遵守实名制规则, 求的群成员将不定期予以清除。 CTP提供哪些证券(期货)投资者交易客户端软件? 【答:CTP向全市场免费开放投资者交易及行情API,并不提供任何投资者使用的交易客户端产品。目前市场上使用的客户端产品都由第三方厂商提供(基于免费开放的API 接入CTP) 手工交易客户端(如快期:https://www.docsj.com/doc/bc15695231.html,/)及程序化交易客户端(如盈佳: https://www.docsj.com/doc/bc15695231.html,/) 请问国证券(期货)公司有哪些使用CTP系统? 【答: 一套或多套CTP次用系统) 家。 CTP期货公司主用系统用户:中国国际、华泰长城、海通期货、申银万国、中期、广发期货、恒泰期货、美尔雅期货、中证期货、华元期货、瑞龙期货、天鸿期货。 CTP期货公司次用系统用户:华西期货、华鑫期货、兴业期货、渤海期货、金源期货、宏源期货、新湖期货、国泰君安、东证期货、南华期货、浙商期货、银河期货、经 易期货、 国金期货、方正期货、鲁证期货(新增) 纪期货(新增) CTP证券公司次用系统用户:华宝证券。

CTP交易报告

CTP交易报告 ——应用编程手册 1、历年版本 版本:v4.2 时间:2009-11-6 备注:英文版 2、索引 第一章简介 1.1 背景 1.2 API文件介绍 第二章结构 2.1 通讯模式 2.2 数据流 第三章编程接口类型 3.1 对话模式的编程接口 3.2 私有模式的编程接口 3.3 广播模式的编程接口 第一章介绍 综合交易平台(Comprehensive Transaction Platform),是专门为期货公司开发的一套期货经纪业务管理系统,由交易、风险控制和结算三大系统组成。 API,实现了客户端和综合交易平台之间的通讯。通过API,投资者可以接收来自上交所,大商所和郑商所的行情数据,发送交易指令,接收相应的反馈和交易状态等信息。 1.1 背景 2006年,上海金融期货交易所完成了新一代交易系统的开发,我们借助其成功经验,开发了CTP。 2007年4月,我们获得了来自中国期货公司交易的第一笔订单。通过近三年的不懈努力,使用CTP的投资者遍布全球,国内使用CTP的期货公司已到达30家。 1.2 API文件 CTP上使用的API是基于C++程序库,来实现客户端和CTP服务器之间的数据传输。客户端包括,所有投资者都可以使用的CTP标准客户端(比如,Q7,popo,weisoft等第三方开发的客户端),以及个性化交易工具(由投资者个人或其合作者开发)。通过API,客户端可以发出或撤销普通单、条件单、查询委托或交易状态、查询账户实时信息和交易头寸。API程序库包括:

注:使用MS VC 6.0,MS https://www.docsj.com/doc/bc15695231.html, 2003等编程工具的,需要在编程设置中打开“multi-thread”选项。 第二章结构 CTP的API和CTP服务器之间使用的通讯协议是期货交易数据协议(futures TradingData Exchange protocol ,FTD),它基于TCP协议。 2.1 通讯模式 在FTD协议中,通讯模式包括以下三种模式: ●对话模式,客户端给CTP发送请求,CTP将会相应返回结果。 ●私有模式,CTP把特定的私人信息发送给对应的客户端,包括持仓信息、交易确认信息等。 ●广播模式,CTP将把公告等信息发送给所有的注册用户。 每种模式并不限于一种连接状态。也就是说,建立一种连接之后,客户端可以同时使用三种通讯模式,或者建立集中不同的连接之后,客户端也可以使用同样的通讯模式。比如,客户可以使用广播模式来接收合约状态的变动信息,同时也可接收私人信息(如下单确认等)。 下图描绘了三种通讯模式的工作流程:

综合交易平台API技术开发指南

【综合交易平台API技术开发指南】 综合交易平台API技术开发指南 第一章 CTP产品特性.............................................................................................. (2) 第二章 CTP-API技术基 础 ............................................................................................. (4) 第三章 CTP-API证券交 易 ............................................................................................. (9) 模拟交易系 统 ......................................................................................... (9) 证券交易实 务 ......................................................................................... (9) 行情接口函 数 .........................................................................................

(10) 交易接口函 数 ......................................................................................... (10) 第四章 CTP-API期货交 易 ............................................................................................. . (10) 模拟交易系 统 ......................................................................................... (10) 期货交易实 务 ......................................................................................... (11) 行情接口函 数 ......................................................................................... (11) 交易接口函 数 ......................................................................................... (11) 上海期货信息技术有限公司,2012 第 1 页共 18 页

综合交易平台API开发常见问题列表

综合交易平台API开发常见问题列表 文件状态:[ ] 草稿[√] 正式发布[ ] 正在修改文件标识: 当前版本:V5.1 作者:综合交易平台产品组 完成日期:2009年9月1日星期三

文档说明 本文档由综合交易平台API技术QQ群(78718661、102497247、59216315)中各位终端厂商及程序化交易技术专家的讨论记录整理所得,后续更新将在http://202.109.110.121/api.htm发布,请及时获取最新版本。 模拟环境 1.综合交易平台提供商品期货模拟交易系统供大家进行开发、测试及交易试用: 交易前置: https://www.docsj.com/doc/bc15695231.html,:26205 行情前置: https://www.docsj.com/doc/bc15695231.html,:26213 经纪公司代码:2030 2.请问怎样申请模拟环境测试账号? 答:准备为综合交易平台开发交易终端的软件厂商和个人,可以将公司简介、开发人员简历及终端产品规划发邮件到wang.y@https://www.docsj.com/doc/bc15695231.html,申请,获得上期技术领导审批后将发放测试账号。期货投资者可以通过国内任意一家期货公司向上期技术市场人员提出申请。 3.请问模拟环境交易时间? 答:国内期货市场正常交易时间均可交易,每个交易日晚17:30到凌晨5:00也可进行交易,节假日正常情况下都可进行交易。 4.请问模拟环境上期所是非交易状态,可其它交易所没有,为何其它交易所的品种也不动, 没有交易了? 答:模拟环境只有上期所的交易所系统,其他交易所的合约也是在上期所系统模拟。 5.是不是通过上期提供的api接口及模拟账号就可以接入综合平台进行程序化测试了? 答:是的,不过只建议在测试系统进行功能测试,不要进行策略测试。 6.我9点前就开机了,但不知为何到9点4分左右才开始接收到行情数据

综合交易平台主席系统解决方案

综合交易平台 主席系统解决方案说明书 文件标识: 当前版本: V3.3 作 者: 综合交易平台产品组 文件状态: [ ] 草稿 [√] 正式发布 [ ] 正在修改 完成日期: 2009年3月16日星期二

目录 一、方案简述 (3) 二、适用对象 (5) 1. 全部投资者交易结算托管 (5) 2. 部分投资者交易托管 (5) 3. 灾难备份交易托管 (5) 三、功能概述 (6) 四、主要功能界面 (6) 1. 交易员终端 (7) 2. 风险监控终端 (8) 3. 结算管理平台 (9) 五、方案优势 (10) 六、方案配置 (13) 1. CTP服务器规格 (13) 2. CTP环境部署图 (13) 3. CTP业务逻辑图 (14) 七、拓扑结构 (14) 八、主席系统上线流程 (16) 1. 上线准备 (16) 2. 数据迁移阶段 (16) 3. 数据同步结算阶段 (17) 4. 上线策略 (18) 5. 上线风险 (19) 6. 历史数据迁移 (19) 九、综合交易平台报价 (19) 1. 标准使用费 (19) 2. 季度计费优惠方案 (20) 十、成功案例 (21)

一、方案简述 上海期货信息技术有限公司(以下简称“上期技术”)是上海期货交易所全资子公司,是业内领先的金融交易技术服务提供商。公司拥有雄厚的技术实力,良好的业内背景,为全行业的用户,包括交易所、会员单位、投资者等提供优质高效的技术服务,是上海期货交易所新一代交易所系统、中国金融期货交易所交易所系统、期货保证金安全存管系统等一系列大型项目的建设方。 随着期货行业的快速发展,在国家金融体系中影响力的日益提升,业务的发展对各个层次市场参与者的支撑其核心业务的IT系统提出了越来越高的建设标准。以该市场的重要参与者群体—期货经纪公司为例,国家就对其各方面要求日渐严格,就IT方面而言,对机房的建设、交易环境的部署、交易系统的搭建、互备机房的设立等方面对会员单位均已有明确要求。上期技术本着以放心、安心、舒心的优质金融信息技术服务适应并促进中国期货行业快速发展的宗旨,为彻底将期货经纪公司从“为适应信息技术一日千里的发展而疲于奔命”的桎梏中解放出来,上期技术在交易所外的期货信息技术发展战略一直以主机托管、机房托管及应用托管的逐级演进为主线。 上海期货信息技术有限公司交易托管中心于2006年成立,通过近3年时间努力,主机托管业务市场占有率已经超过70%,在期货业内树立了良好的企业形象,在期货公司间得到良好口碑。上期技术的主机托管用户,在拥有运行于具有充裕的互联网资源、专业运维服务的一流机房中的交易系统时,也获得了极大的成本优势。 2009年新年伊始,上海期货信息技术有限公司更是重拳推出“上海期货信息技术有限公司张江交易托管中心”,该中心位于张江银行卡园上海期货交易所数据中心园区内,建设总面积180亩;上期技术数据中心机房一期总面积约1600平方米,其中主机托管区面积900平方米,VIP机房托管空间600平方米,余留

c 连接ctp接口实现简单量化交易(行情交易k线策略)

C++连接CTP接口实现简单量化交易(行情、交易、k线、 策略) C++连接CTP接口实现简单量化交易(行情、交易、k 线、策略)标签:c++CTP量化2017-04-18 22:09 559人阅读评论(7) 收藏举报分类:C/C++(44)金融工程(quant)(1)版权声明:转载需邮件联系我并取得授权,谢谢目录(?)[+]对于量化交易来说,量化策略和技术系统缺一不可,为了知其所以然,本文实现了一个C++连接CTP接口进行仿真交易的demo,从接收行情、下订单、数据处理到添加策略、挂载运行交易等多个环节来看一下量化交易的最简单流程,管中窥豹,一探究竟。 准备工作交易所接口这里使用上期所提供的CTP接口API,通过CTP可以连接交易所进行行情接收交易。下载地址:CTP下载本文使用的win32版本的,Linux版本用法类似。CTP接口包含以下内容: ThostFtdcTraderApi.h:C++头文件,包含交易相关的指令,如报单。ThostFtdcMdApi.h:C++头文件,包含获取行情相关的指令。ThostFtdcUserApiStruct.h:包含了所有用到的数据结构。ThostFtdcUserApiDataType.h:包含了所有用到的数据类型。thosttraderapi.lib、thosttraderapi.dll:交易部分的动态链接库和静态链接库。thostmduserapi.lib、

thostmduserapi.dll:行情部分的动态链接库和静态链接库。error.dtd、error.xml:包含所有可能的错误信息。整个开发 包有2个核心头文件包括4个核心接口,CThostFtdcMdApi接口和CThostFtdcTraderApi两个头文件,一个处理行情,一个处理交易。(1)处理行情的CThostFtdcMdApi接口有两个类,分别是CThostFtdcMdApi 和CThostFtdcMdSpi,以Api结尾的是用来下命令的,以Spi 结尾的是用来响应命令的回调。(2)处理交易的CThostFtdcTraderApi接口也有两个类,分别是CThostFtdcTraderApi和CThostFtdcTraderSpi, 通过CThostFtdcTraderApi向CTP发送操作请求,通过CThostFtdcTraderSpi接收CTP的操作响应。 期货账户要连接期货交易所交易,需要开设自己的账户,实现期货交易、银期转账、保证金等功能,由于小白一般不会用实盘资金交易,所以此处推荐用上期所提供的simnow虚拟交易平台simnow申请一个虚拟账户。SIMNOW提供两类数据前置地址:(1)交易时段的地址,如09:00-15:00和21:00-02:30,使用第一套地址,这些数据是真实的行情数据,只是时间上比真实的行情会有延迟30秒左右(SIMNOW从 交易所接收后转发出来的)。(2)非交易时段地址,这时的数据是历史行情的播放,比如昨天的数据之类的,可以用来做程序调试。

相关文档