证券CTP平台TraderAPI接口

合集下载

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 2003等编程工具的,需要在编程设置中打开“multi-thread”选项。

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

2.1 通讯模式在FTD协议中,通讯模式包括以下三种模式:●对话模式,客户端给CTP发送请求,CTP将会相应返回结果。

穿透式监管CTPAPI使用说明

穿透式监管CTPAPI使用说明

穿透式监管CTPAPI使用说明文档修订历史记录内容申明目录第1章引言 (2)1.1实现目的 (2)1.2背景 (2)1.3定义 (2)第2章流程设计 (3)2.1终端认证方案 (3)2.1.1 背景条件 (3)2.1.2 appid对应的授权码分发流程 (3)2.1.3 登录前认证 (4)2.2使用CTP交易API进行终端信息采集 (6)2.2.1 直接使用CTP交易API直连模式 (6)2.2.2 使用中继服务器操作员登录模式 (8)2.2.3 使用中继服务器多对多登录模式 (11)第3章CTP API使用说明 (12)3.1采集API使用说明 (12)3.1.1 采集API说明 (12)3.2T RADER API (12)3.2.1 穿透式监管涉及到的API (12)3.2.2 客户使用流程 (14)上海期货信息技术有限公司第第1章引言1.1 实现目的简要描述CTP对于终端数据采集和终端认证的实现方案。

用于指导终端厂商正确使用CTP的交易API和采集API。

1.2 背景证监会发布《关于进一步加强期货经营机构客户交易终端信息采集有关事项的公告》/pub/zjhpublic/zjh/201807/t20180709_340951.htm监控中心发布的《期货公司客户交易终端信息采集及接入认证技术规范》关于进一步加强期货经营机构客户交易终期货公司客户交易终端信息采集及接入认1.3 定义第2章穿透式监管方案设计2.1 终端认证方案2.1.1背景条件每个期货终端软件需要向期货公司申请自己的appid。

中继服务器软件需要向期货公司申请自己的relayappid。

2.1.2appid对应的授权码分发流程期货公司确认终端软件集成了正确的数据采集模块后,为该appid的终端软件分配授权码。

终端软件需要保护好自己的appid和授权码,防止被其他软件盗用。

2.1.2.1 直连终端认证流程对于直接连接期货公司交易柜台的终端,期货公司确认终端软件集成了正确的数据采集模块后。

深交所第五版接口

深交所第五版接口

深交所第五版接口深交所第五版接口是深圳证券交易所的一套完整的系统接口,它通过开放接口给开发者提供了一系列的数据、功能和服务。

本文将从概述深交所第五版接口及其优势,接口分类、数据结构和使用方法介绍四个方面逐一进行详细阐述,以期为开发者提供更为详细的了解和使用指南。

一、概述深交所第五版接口是一个开放、独立的系统接口。

作为深圳证券交易所为开发者提供的一套完整的解决方案,其主要目的是为开发者提供一个通用的、可扩展的开发平台。

该接口提供了一个开放的数据访问和交互的方式,允许开发者查询、修改、删除交易数据等,支持市场数据、交易数据、信息查询等多种功能。

二、接口分类深交所第五版接口可以根据涉及的功能进行分类,这里对其主要的四类接口进行简要介绍。

1、流式数据接口(Trading API)这是深交所的主要接口,主要用于与交易平台连接,实时拉取行情数据。

该接口支持 HTTP 和WebSocket两种协议,并提供了众多的行情数据、K线数据等,可以方便地满足用户行情数据查询等功能。

2、订单接口(Order API)该接口用于提交删除和修改订单,同时还支持订单信息查询等操作。

3、查询接口(Query API)该接口提供了多种可以用于查询的服务,如资金查询、持仓查询、成交查询等。

4、数据推送接口(Push API)这是用于数据主动推送的接口,使用该接口进行行情数据推送等。

三、数据结构深交所第五版接口的数据结构类似于JSON数据格式,内部包含了多个字段,每个字段都有特定的含义。

在使用该接口时,开发者需要掌握常用的一些字段信息,如证券代码、交易量、成交价位等。

四、使用方法深交所第五版接口使用十分简单,首先需要定位到所需功能所属的模块,并选择相应的接口进行调用。

接口的调用主要通过http请求方式,每个接口都拥有对应的url 地址和请求方式。

当用户请求接口时,需要提供相应的请求参数,请求参数会根据接口不同而有所变化,请开发者在使用前务必确认相关参数信息。

CTP接口开发指南

CTP接口开发指南

///部分成交还在队列中 #define THOST_FTDC_OST_PartTradedQueueing '1' ///部分成交不在队列中 #define THOST_FTDC_OST_PartTradedNotQueueing '2' ///未成交还在队列中 #define THOST_FTDC_OST_NoTradeQueueing '3' ///未成交不在队列中 #define THOST_FTDC_OST_NoTradeNotQueueing '4' ///撤单 #define THOST_FTDC_OST_Canceled '5' ///未知 #define THOST_FTDC_OST_Unknown 'a' ///尚未触发 #define THOST_FTDC_OST_NotTouched 'b' 多次响应对应 FrontID + SessionID + OrderRef BrokerID + BrokerOrderSeq ExchangeID + OrderSysID OnRtnTrade 与 OnRtnOrder 对应 BrokerID + BrokerOrderSeq ExchangeID + OrderSysID 成交价格: Price 成交时间:TradeTime
ห้องสมุดไป่ตู้价单
市价单 任意价格 价格为 0
触发单 ///触发条件:用户设定 ContingentCondition = ……; ///止损价:用户设定 StopPrice = ……; /// 报单价格条件类型:限价 OrderPriceType = THOST_FTDC_OPT_LimitPrice; /// 价格:用户设定 LimitPrice = ……; /// 有效期类型类型:当日有效 TimeCondition = THOST_FTDC_TC_GFD;

Hello?CTP(二)——CTP简介

Hello?CTP(二)——CTP简介

Hello CTP(二)——CTP简介一、CTP简介1、CTP简介CTP(Comprehensive Transaction Platform)综合交易平台是上海期货信息技术有限公司(上海期货交易所全资子公司)开发的期货交易平台,CTP平台以新一代交易所系统的核心技术为基础,具有稳定、高速的开放式接口,适合程序化交易运用和短线炒单客户使用。

2、CTP设计(1)高可用性CTP通过提高系统的容错、排错、检错、纠错能力来保证系统可用性。

对可能错误进行容错设计;对关键应用部件采用冗余设计,交易系统所有关键节点都有备份系统,出现故障时可以迅速、平滑地切换系统,不影响系统运行。

交易数据可以实现精确重演,保证系统重要数据的安全性设置并发布运行日志和信息跟踪功能。

在设计API接口和人机接口时,对关键输入信息引入检错、纠错机制。

(2)大规模并发处理能力期货交易系统对交易的实时性要求很高,客观上要求系统应当具有大规模并发的快速处理能力。

一般从系统的体系结构和计算模型、内存组织结构、临时文件的组织结构和数量、软件结构和程序调用关系、系统数据的分布方式及应用的组织结构等方面提升系统的运行效率。

(3)安全性交易员或投资者的身份应得到有效验证,使得未授权用户不能进行交易;交易监控和关键数据日志记录,使得交易行为不可抵赖以及可日后审计;交易数据加密,使得交易不会泄密和被监控偷听等。

(4)可扩展性系统在软件体系结构维持不变的情况下,通过对硬件配置的扩展提升系统性能。

同时,系统设计应尽可能灵活,保证以后的扩展性。

交易系统内部,应当由相对独立的交易组件组成。

(5)业务规则的隔离通过对不断扩展的业务进行抽象,形成各种业务规则。

对于这些业务规则,应当使相互之间的影响降到最低,在增加新的规则或对原有规则进行调整时,将影响降到最低。

3、CTP通讯模式CTP API使用基于TCP协议上的FTD协议与CTP后台进行通讯,FTD协议中的所有通讯都基于某个通讯模式。

CTP新版银期转帐TradeApi使用说明

CTP新版银期转帐TradeApi使用说明

新版银期转帐TradeApi使用说明银行发起银行资金转期货通知函数原形:virtual void OnRtnFromBankToFutureByBank(CThostFtdcRspTransferField *pRspTransfer)参数说明:pRspTransfer银行发起银行资金转期货通知包体,其结构定义见(ThostFtdcUserApiStruct.h)银行发起期货资金转银行通知函数原形:virtual void OnRtnFromFutureToBankByBank(CThostFtdcRspTransferField *pRspTransfer)参数说明:pRspTransfer银行发起期货资金转银行通知包体,其结构定义见(ThostFtdcUserApiStruct.h)银行发起冲正银行资金转期货通知函数原形:virtual void OnRtnRepealFromBankToFutureByBank(CThostFtdcRspRepealField *pRspRepeal)参数说明:pRspRepeal银行发起冲正银行转期货通知包体,其结构定义见(ThostFtdcUserApiStruct.h)银行发起冲正期货资金转银行通知函数原形:virtual void OnRtnRepealFromFutureToBankByBank(CThostFtdcRspRepealField *pRspRepeal)参数说明:pRspRepeal银行发起冲正期货转银行通知包体,其结构定义见(ThostFtdcUserApiStruct.h)期货发起银行资金转期货自动冲正通知函数原形:OnRtnRepealFromBankToFutureByFuture(CThostFtdcRspRepealField *pRspRepeal)参数说明:pRspRepeal银行处理结果包体,其结构定义见(ThostFtdcUserApiStruct.h)期货发起期货资金转银行自动冲正通知函数原形:RtnRepealFromFutureToBankByFuture(CThostFtdcRspRepealField *pRspRepeal)参数说明:pRspRepeal银行处理结果包体,其结构定义见(ThostFtdcUserApiStruct.h)期货发起银行资金转期货手工冲正通知函数原形:virtual void OnRtnRepealFromBankToFutureByFutureManual(CThostFtdcRspRepealField *pRspRepeal)参数说明:pRspRepeal银行处理结果包体,其结构定义见(ThostFtdcUserApiStruct.h)期货发起银行资金转期货手工冲正错误通知函数原形:virtual void OnErrRtnRepealBankToFutureByFutureManual(CThostFtdcReqRepealField *pReqRepeal, CThostFtdcRspInfoField *pRspInfo)参数说明:pReqRepeal交易核心(tkernel)处理结果包体,其结构定义见(ThostFtdcUserApiStruct.h)期货发起期货资金转银行手工冲正通知函数原形:virtual void OnRtnRepealFromFutureToBankByFutureManual(CThostFtdcRspRepealField *pRspRepeal)参数说明:pRspRepeal银行处理结果包体,其结构定义见(ThostFtdcUserApiStruct.h)期货发起期货资金转银行手工冲正错误通知函数原形:virtual void OnErrRtnRepealFutureToBankByFutureManual(CThostFtdcReqRepealField *pReqRepeal, CThostFtdcRspInfoField *pRspInfo)参数说明:pReqRepeal交易核心(tkernel)处理结果包体,其结构定义见(ThostFtdcUserApiStruct.h)查询转帐流水1.请求函数原形:virtual int ReqQryTransferSerial(CThostFtdcQryTransferSerialField *pQryTransferSerial, int nRequestID)参数说明:pQryTransferSerial查询条件,其结构定义为struct CThostFtdcQryTransferSerialField{TThostFtdcBrokerIDType BrokerID; ///经纪公司代码TThostFtdcAccountIDType AccountID; ///投资者帐号TThostFtdcBankIDType BankID; ///银行编码};其中:BrokerID必填、AccountID必填nRequestID请求编号2.应答函数原形:virtual void OnRspQryTransferSerial(CThostFtdcTransferSerialField *pTransferSerial, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) 参数说明:pTransferSerial流水记录,其结构定义见(ThostFtdcUserApiStruct.h); pRspInfo:为处理结果信息,ErrorID=0表示成功,其它表示错误;bIsLast:是否有后续包体期货发起银行资金转期货1.请求:函数原形:virtual int ReqFromBankToFutureByFuture(CThostFtdcReqTransferField *pReqTransfer, int nRequestID)参数说明:pReqTransfer请求包体,其结构定义见(ThostFtdcUserApiStruct.h);其中,必填字段有:业务功能码(TradeCode)、银行代码(BankID)、银行分支机构代码(BankBranchID,填‘0000’)期货公司代码(BrokerID)、银行帐户密码(BankPassWord)、投资者帐号(AccountID)、资金帐户密码(Password)、资金帐户密码核对标志(SecuPwdFlag,值为BPWDF_BlankCheck)、币种(CurrencyID)、转帐金额(TradeAmount)nRequestID请求编号2.交易核心响应:函数原形:virtual void OnRspFromBankToFutureByFuture(CThostFtdcReqTransferField *pReqTransfer, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)参数说明:pReqTransfer更新后的请求包体pRspInfo交易核心(tkernel)处理结果(ErrorID=0表示成功)nRequestID请求编号bIsLast是否有后续包体特殊说明:使用本函数后,可以不再使用“4。

CTP 接口COM封装使用指南

CTP 接口COM封装使用指南

CTP 接口COM封装使用指南盈佳发布了一个基于COM标准的CTP-API接口封装,通过这个COM接口,用户可以利用任何支持COM的语言来接入CTP;该COM 组件在内部进行仓位和资金的自动计算,并对用户屏蔽了上期所的平今和平昨的差别(优先平今),对用户非常友好。

1.1 COM包构成该COM组件在运行时,需要下面几个文件:✧ctpcom.dll✧thosttraderapi.dll✧thostmduserapi.dll✧config.xml(可以有多个,不同的期货公司需要不同的配置文件,在登录时指定这个配置文件的名称)✧error.xml,error.dtd ctp中错误信息定义1.2 COM注册在使用COM组件之间,需要先注册注本COM组件,步骤如下:✧运行cmd,✧cd到ctpcom.dll所在的目录,✧运行Regsvr32 ctpcom.dll1.3 COM接口方法该COM提供的接口(c++语言描述)如下:✧Login([in] BSTR ConfigFile,[in] BSTR UserID,[in] BSTRPassword,[out] int *ErrorID);说明:登录到CTP系统。

必须首先调用该方法成功登录后,才能调用其他方法。

参数:ConfigFile,配置文件的名称,该配置文件必须和ctpcom.dll放在同一个目录下。

通过指定不通的配置文件,可以创建多个ctpcom对象,连接到不同的期货经纪公司。

UserID, 投资者账户名Password,投资者密码;ErrorID,返回登录错误代码,为0时表示登录成功,其他值表示登录失败。

✧Buy([in] BSTR pszInstrumentID,[in] int volume,[in] doubleprice,[out] long* OrderID);说明:对指定的合约买入开仓;参数:pszInstrumentID,合约代码,区分大小写;volume,开仓手数,以停板价+立即撤单来模拟)OrderID,返回该报单的唯一编号,可以通过这个编号来跟踪此报单;✧Sell([in] BSTR pszInstrumentID,[in] int volume,[in] doubleprice,[out] long* OrderID);说明:对指定的合约卖出平仓;参数:pszInstrumentID,合约代码,区分大小写;volume,平仓手数,price,平仓价格,0表示以市价平仓(对于上期所,以停板价+立即撤单来模拟)OrderID,返回该报单的唯一编号,可以通过这个编号来跟踪此报单;✧Short([in] BSTR pszInstrumentID,[in] int volume,[in] doubleprice,[out] long* OrderID);说明:对指定的合约卖出开仓;参数:pszInstrumentID,合约代码,区分大小写;volume,开仓手数,以停板价+立即撤单来模拟)OrderID,返回该报单的唯一编号,可以通过这个编号来跟踪此报单;✧Cover([in] BSTR pszInstrumentID,[in] int volume,[in] doubleprice,[out] long* OrderID);说明:对指定的合约买入平仓;参数:pszInstrumentID,合约代码,区分大小写;volume,平仓手数,price,平仓价格,0表示以市价平仓(对于上期所,以停板价+立即撤单来模拟)OrderID,返回该报单的唯一编号,可以通过这个编号来跟踪此报单;✧PlaceOrder([in] BSTR pszInstrumentID, [in] int buySell, [in] intopenClose, [in] int volume,[in] double price,[out] long* OrderID); 说明:对指定的合约买入平仓;参数:pszInstrumentID,合约代码,区分大小写;buySell, 买卖,0为买,1为卖;openClose, 开平,0为开,1为平;volume,平仓手数,price,平仓价格,0表示以市价平仓(对于上期所,以停板价+立即撤单来模拟)OrderID,返回该报单的唯一编号,可以通过这个编号来跟踪此报单;✧CancelOrder([in] long OrderID,[out]int* status);说明:对指定的报单进行撤单操作;参数:OrderID,指定的报单号;Status,返回代码,>0表示已经对该报单发出撤单指令,<=0表示该报单不存在,或者已经不可撤;✧SubscribeMD([in] BSTR InstrumentID);说明:订阅某个合约的行情数据。

综合交易平台ctp api 教程

综合交易平台ctp api 教程

通用规则 – 查询/请求
• 请求查询合约
virtual int ReqQryInstrument(CThostFtdcQryInstrumentField *pQryInstrument, int nRequestID) = 0;
• 请求查询合约响应
virtual void OnRspQryInstrument(CThostFtdcInstrumentField *pInstrument, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
通用规则 – 查询/请求
• 查询参数
如果查询参数为空,说明需要查询所有 • 响应信息RspInfo
数据。如果需要查询某个交易所的合约, 就在查询参数中指定ExchangeID。
如果RspInfo为空,或者RspInfo的错 误代码为0,说明查询成功。
• 请求编号RequestID
发送请求时需要设定RequestID, TraderApi返回响应时返回相关请求的 RequestID。
/// 操作标志类型:撤单
ActionFlag = THOST_FTDC_AF_Delete /// 交易序列号
• 如果Thost接受了撤单指令,用户不会收到 OnRspOrderAction,而会收到OnRtnOrder, 用来更新委托状态。
FrontID +SessionID+OrderRef,
• 注意:服务器在触发服务器预埋单、条件单时,会发送新的委托指令到交易 所,需要设置新的OrderRef和OrderSysID。
交易业务 – 报单指令
• 报单指令是:ReqOrderInsert。

综合交易平台API简介-精品文档

综合交易平台API简介-精品文档

概述 – 通讯模式
• 有3种方式订阅公有流和私有流
enum THOST_TE_RESUME_TYPE { // 从当天的第一条记录开始接收数据流 THOST_TERT_RESTART = 0, // 接收上次断线以后的数据流 THOST_TERT_RESUME, // 接收本次登入以后的数据流 THOST_TERT_QUICK };
• 查询参数 如果查询参数为空,说明需要查询 所有数据。如果需要查询某个交易 所的合约,就在查询参数中指定 ExchangeID。 请求编号RequestID 发送请求时需要设定RequestID, TraderApi返回响应时返回相关请求 的RequestID。 因为TraderApi是异步实现的,终端 程序可能连续发出多个请求和查询 指令。RequestID可以把请求/查询 指令和相关的回报关联起来。 指令返回值 如果调用方法成功,返回0。否则 表示不成功。 • 响应信息RspInfo 如果RspInfo为空,或者RspInfo的错 误代码为0,说明查询成功。 否则RspInfo中会保存错误编码和错 误信息。 查询响应数据 查询响应方法每次返回1条记录。 如果没有查询结果,就返回空指针。 结束标志IsLast 无论是否有查询响应数据没,只要 查询响应结束,IsLast为true。
MdUserApi接口文件:
• ThostFtdcMdApi.h: 定义了请求接口CThostFtdcMdApi, 事件处理接口CThostFtdcMdSpi。 ThostFtdcUserApiStruct.h, ThostFtdcUserApiDataType.h: 和TraderApi公用。 thostMdapi.lib:静态连接库 thostMdapi.dll:动态链接库
概述 - 通讯模式

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

综合交易平台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技术开发指南】第一章CTP产品特性如何获取综合交易平台(Comprehensive Transaction Platform 以下简称CTP)证券(期货)交易及行情API发布包、文档以及开发实例?【答:2群(102497247)群共享中发布,请及时获取最新版本。

CTP_API开发技术群均遵守实名制规则,求的群成员将不定期予以清除。

CTP提供哪些证券(期货)投资者交易客户端软件?【答:CTP向全市场免费开放投资者交易及行情API,并不提供任何投资者使用的交易客户端产品。

目前市场上使用的客户端产品都由第三方厂商提供(基于免费开放的API 接入CTP)手工交易客户端(如快期:/)及程序化交易客户端(如盈佳:/)请问国内证券(期货)公司有哪些使用CTP系统?【答:一套或多套CTP次用系统)家。

CTP期货公司主用系统用户:中国国际、华泰长城、海通期货、申银万国、上海中期、广发期货、恒泰期货、美尔雅期货、中证期货、华元期货、瑞龙期货、天鸿期货。

CTP期货公司次用系统用户:华西期货、华鑫期货、兴业期货、渤海期货、金源期货、宏源期货、新湖期货、国泰君安、东证期货、南华期货、浙商期货、银河期货、经易期货、国金期货、方正期货、鲁证期货(新增)纪期货(新增)CTP证券公司次用系统用户:华宝证券。

上海期货信息技术有限公司,2012 第2 页共18 页【综合交易平台API技术开发指南】CTP中的BrokerID是什么意思,在使用CTP-API时如何填写?【答:CTP最初设计时考虑了一套CTP系统供多家经纪公司使用的情形,CTP则使用BrokerID从业务层面完全隔离不同经纪公司的交易、风控及结算用户的接入。

CTPAPI开发之一:CTPAPI简介

CTPAPI开发之一:CTPAPI简介

CTPAPI开发之⼀:CTPAPI简介官⽹下载综合交易平台CTP(Comprehensive Transaction Platform)是由上海期货信息技术有限公司(上海期货交易所的全资⼦公司)开发的期货交易平台,CTP平台以"新⼀代交易所系统"的核⼼技术为基础,稳定、⾼速、开放式接⼝,适合程序化交易软件运⽤和短线炒单客户使⽤。

官⽹:API接⼝⽂件清单:整个开发包有2个核⼼头⽂件包括4个核⼼接⼝,CThostFtdcMdApi接⼝和CThostFtdcTraderApi两个头⽂件,⼀个处理⾏情,⼀个处理交易。

(1)处理⾏情的CThostFtdcMdApi接⼝有两个类,分别是CThostFtdcMdApi和CThostFtdcMdSpi,以Api结尾的是⽤来下命令的,以Spi结尾的是⽤来响应命令的回调。

(2)处理交易的CThostFtdcTraderApi接⼝也有两个类,分别是CThostFtdcTraderApi和CThostFtdcTraderSpi, 通过CThostFtdcTraderApi 向CTP发送操作请求,通过CThostFtdcTraderSpi接收CTP的操作响应。

API命名规则:CTP是基于多线程的,⾄少有两个线程在⼯作,⼀个是程序主线程,另⼀个是API⼯作线程。

API底层封装了TCP通讯,通过函数回调来使⽤API接⼝。

CTP的API封装分为两⼤部分,⼀个是TraderApi(thosttraderapi.dll)负责交易部分,另⼀个是MdUserApi(thostmduserapi.dll)负责⾏情部分,交易接⼝初始化步骤:// 初始化交易线程cout << "初始化交易..." << endl;g_pTradeUserApi = CThostFtdcTraderApi::CreateFtdcTraderApi(); // 创建交易实例CtpTradeSpi *pTradeSpi = new CtpTradeSpi; // 创建交易回调实例g_pTradeUserApi->RegisterSpi(pTradeSpi); // 注册事件类g_pTradeUserApi->SubscribePublicTopic(THOST_TERT_RESTART); // 订阅公共流g_pTradeUserApi->SubscribePrivateTopic(THOST_TERT_RESTART); // 订阅私有流g_pTradeUserApi->RegisterFront(gTradeFrontAddr); // 设置交易前置地址g_pTradeUserApi->Init(); // 连接运⾏⾏情接⼝初始化步骤:// 初始化⾏情线程cout << "初始化⾏情..." << endl;g_pMdUserApi = CThostFtdcMdApi::CreateFtdcMdApi(); // 创建⾏情实例CThostFtdcMdSpi *pMdUserSpi = new CtpMdSpi; // 创建⾏情回调实例g_pMdUserApi->RegisterSpi(pMdUserSpi); // 注册事件类g_pMdUserApi->RegisterFront(gMdFrontAddr); // 设置⾏情前置地址g_pMdUserApi->Init(); // 连接运⾏初始化过程:报单时序图:。

穿透式监管CTPAPI使用说明

穿透式监管CTPAPI使用说明

穿透式监管CTPAPI使用说明文档修订历史记录内容申明目录第1章引言 (2)1.1实现目的 (2)1.2背景 (2)1.3定义 (2)第2章流程设计 (3)2.1终端认证方案 (3)2.1.1 背景条件 (3)2.1.2 appid对应的授权码分发流程 (3)2.1.3 登录前认证 (4)2.2使用CTP交易API进行终端信息采集 (6)2.2.1 直接使用CTP交易API直连模式 (6)2.2.2 使用中继服务器操作员登录模式 (8)2.2.3 使用中继服务器多对多登录模式 (11)第3章CTP API使用说明 (12)3.1采集API使用说明 (12)3.1.1 采集API说明 (12)3.2T RADER API (12)3.2.1 穿透式监管涉及到的API (12)3.2.2 客户使用流程 (14)第1章引言1.1 实现目的简要描述CTP对于终端数据采集和终端认证的实现方案。

用于指导终端厂商正确使用CTP的交易API和采集API。

1.2 背景证监会发布《关于进一步加强期货经营机构客户交易终端信息采集有关事项的公告》/pub/zjhpublic/zjh/201807/t20180709_340951.htm监控中心发布的《期货公司客户交易终端信息采集及接入认证技术规范》关于进一步加强期货经营机构客户交易终期货公司客户交易终端信息采集及接入认1.3 定义第2章穿透式监管方案设计2.1 终端认证方案2.1.1背景条件每个期货终端软件需要向期货公司申请自己的appid。

中继服务器软件需要向期货公司申请自己的relayappid。

2.1.2appid对应的授权码分发流程期货公司确认终端软件集成了正确的数据采集模块后,为该appid的终端软件分配授权码。

终端软件需要保护好自己的appid和授权码,防止被其他软件盗用。

2.1.2.1 直连终端认证流程对于直接连接期货公司交易柜台的终端,期货公司确认终端软件集成了正确的数据采集模块后。

上海期货交易所CTP行情和交易接入

上海期货交易所CTP行情和交易接入

上海期货交易所CTP⾏情和交易接⼊概述CTP的接⼊Demo详细代码下载:本⽂档不介绍CTP的具体流程,具体流程请参考上海期货交易所⽂档().⼀、概述1.CTP是上期技术,提供的国内期货⾏情和交易的接⼝,⾃推出以来,各⼤券商均架设了CTP技术的接⼊,引⼊策略算法便可以初步形成⼀个⾃动交易的系统,这也就吸引了很多对⾃动交易,策略交易感兴趣的各路⾼⼈来使⽤。

2.CTP难点在于,⼀个库提供了⾏情和交易两套接⼝,各⾃均有⼀套业务流程,⽽且两者在业务上还存在部分业务关联,也就是说还要处理两套之间的业务同步问题,没有⼀些C++基础的⼈很难开发好⽤的CTP库。

3.本Demo⽬标是,在Windows环境下做两个程序:⼀个封装CTP⾏情和交易接⼝成⼀个库,尽可能在⾼内聚低耦合的情况下,保持代码清晰,通俗尽可能让;⼀个执⾏程序很容易的去调⽤这个库,这⾥没有使⽤MFC或QT,直接采⽤控制台程序,很清晰的展⽰使⽤库。

⼆、准备环境1.开发⼯具:visual studio 2015或以上版本()本Demo采⽤Visual studio 2015 专业版 update 3Windows7 64位2.下载上期CTP库()综合交易平台API下载,下载列表中的windows下64位库(最新(2015-05-15)),解压如下:3.申请模拟账号()主页右上⾓,注册账号,例⼦中⽅便开箱即⽤,会使⽤我⾃⼰申请好的,请⾃⾏换成⾃⼰的帐号。

三、程序介绍1.先看下Demo的运⾏效果。

2.程序⽬录结构①Show all files模式下,VS⼯程⽬录结构如下图:共两个项⽬,CTPSample和CTPServer,CTPSample为封装交易所CTP的动态库,CTPServer为使⽤库的UI程序。

②代码⽬录结构bin64-----CTP CTP产⽣的共享⽂件-----Log ⽇志⽂件config.cfg 配置⽂件buildCTPServer.sln 存放⼯程⽂件Src------CTPSample DLL代码------CTPServer UI代码------Framwork 框架代码,避免复杂,不做公开(这⾥主要提供⽇志,数据定义,可⾃⼰替换)说明:confg.cfg主要保存了CTP的地址(其他均为⾮本Demo演⽰的主要功能):[info]CTPFront.trade1 = tcp://180.168.146.187:10030CTPFront.quote1 = tcp://180.168.146.187:10031CTPFront.trade2 = tcp://180.168.146.187:10001CTPFront.quote2 = tcp://180.168.146.187:10011CTPFront.trade3 = tcp://218.202.237.33:10002CTPFront.quote3 = tcp://:412133.模块介绍CTPSample模块CTPBase.h 动态库的导出定义MyCTPQuote.h/MyCTPQuote.CPP 交易的封装MyCTPQuote.h/MyCTPQuote.cpp ⾏情的封装CTPServer模块TradeManager.h/TradeManager.cpp UI主逻辑CTPServer.cpp main启动四、程序解析1. CTPSample模块之MyCTPQuote.h//定义⼀个管理器,管理⾏情接受class CTPSAMPLE_EXPORT MyCTPQuote{//嵌⼊⾏情回报类class MyRecv : public CThostFtdcMdSpi{public:MyRecv():m_Parent(nullptr) {};~MyRecv() {};void Bind(MyCTPQuote *Parent) { m_Parent = Parent; }public:///当客户端与交易后台建⽴起通信连接时(还未登录前),该⽅法被调⽤。

CTP手册

CTP手册
如果客户端应用程序需要使用行情 API,客户端需要采取以下步骤来描述先 前的数据流,不包括私有数据流和公共信息流。具体如下:
(1)所有 request 函数的参数都不能为空值; (2)如果函数返回的数值为“int”,数值 0 意味着函数运行良好,其他数值则表示返回错误,具体的错误信息在“error.xml”文件里面。
(4)使用“CThostFtdcTraderApi”的“SubscribePublicTopic” 函数处理公共数 据流。
(5)使用“CThostFtdcTraderApi”的“RegisterFront” 函数记录 CTP 服务器的 前端地址。客户端多运行几次这种函数,以便与服务器建立更可靠的联系。强烈 建议。
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; };

CTP 接口COM封装使用指南

CTP 接口COM封装使用指南

CTP 接口COM封装使用指南盈佳发布了一个基于COM标准的CTP-API接口封装,通过这个COM接口,用户可以利用任何支持COM的语言来接入CTP;该COM 组件在内部进行仓位和资金的自动计算,并对用户屏蔽了上期所的平今和平昨的差别(优先平今),对用户非常友好。

1.1 COM包构成该COM组件在运行时,需要下面几个文件:✧ctpcom.dll✧thosttraderapi.dll✧thostmduserapi.dll✧config.xml(可以有多个,不同的期货公司需要不同的配置文件,在登录时指定这个配置文件的名称)✧error.xml,error.dtd ctp中错误信息定义1.2 COM注册在使用COM组件之间,需要先注册注本COM组件,步骤如下:✧运行cmd,✧cd到ctpcom.dll所在的目录,✧运行Regsvr32 ctpcom.dll1.3 COM接口方法该COM提供的接口(c++语言描述)如下:✧Login([in] BSTR ConfigFile,[in] BSTR UserID,[in] BSTRPassword,[out] int *ErrorID);说明:登录到CTP系统。

必须首先调用该方法成功登录后,才能调用其他方法。

参数:ConfigFile,配置文件的名称,该配置文件必须和ctpcom.dll放在同一个目录下。

通过指定不通的配置文件,可以创建多个ctpcom对象,连接到不同的期货经纪公司。

UserID, 投资者账户名Password,投资者密码;ErrorID,返回登录错误代码,为0时表示登录成功,其他值表示登录失败。

✧Buy([in] BSTR pszInstrumentID,[in] int volume,[in] doubleprice,[out] long* OrderID);说明:对指定的合约买入开仓;参数:pszInstrumentID,合约代码,区分大小写;volume,开仓手数,以停板价+立即撤单来模拟)OrderID,返回该报单的唯一编号,可以通过这个编号来跟踪此报单;✧Sell([in] BSTR pszInstrumentID,[in] int volume,[in] doubleprice,[out] long* OrderID);说明:对指定的合约卖出平仓;参数:pszInstrumentID,合约代码,区分大小写;volume,平仓手数,price,平仓价格,0表示以市价平仓(对于上期所,以停板价+立即撤单来模拟)OrderID,返回该报单的唯一编号,可以通过这个编号来跟踪此报单;✧Short([in] BSTR pszInstrumentID,[in] int volume,[in] doubleprice,[out] long* OrderID);说明:对指定的合约卖出开仓;参数:pszInstrumentID,合约代码,区分大小写;volume,开仓手数,以停板价+立即撤单来模拟)OrderID,返回该报单的唯一编号,可以通过这个编号来跟踪此报单;✧Cover([in] BSTR pszInstrumentID,[in] int volume,[in] doubleprice,[out] long* OrderID);说明:对指定的合约买入平仓;参数:pszInstrumentID,合约代码,区分大小写;volume,平仓手数,price,平仓价格,0表示以市价平仓(对于上期所,以停板价+立即撤单来模拟)OrderID,返回该报单的唯一编号,可以通过这个编号来跟踪此报单;✧PlaceOrder([in] BSTR pszInstrumentID, [in] int buySell, [in] intopenClose, [in] int volume,[in] double price,[out] long* OrderID); 说明:对指定的合约买入平仓;参数:pszInstrumentID,合约代码,区分大小写;buySell, 买卖,0为买,1为卖;openClose, 开平,0为开,1为平;volume,平仓手数,price,平仓价格,0表示以市价平仓(对于上期所,以停板价+立即撤单来模拟)OrderID,返回该报单的唯一编号,可以通过这个编号来跟踪此报单;✧CancelOrder([in] long OrderID,[out]int* status);说明:对指定的报单进行撤单操作;参数:OrderID,指定的报单号;Status,返回代码,>0表示已经对该报单发出撤单指令,<=0表示该报单不存在,或者已经不可撤;✧SubscribeMD([in] BSTR InstrumentID);说明:订阅某个合约的行情数据。

新版CTP客户端开发指南

新版CTP客户端开发指南

乔煜
3.1
1. 修改 Demo 代码
乔煜
2. 添加报单流程图解,状态变化解释
3. 添加更多业务点介绍
更新:2015-10-16 1
CTP 客户端开发指南
前言
这是一份由上期技术提供的旨在帮助开发者快速了解、学习与综合交易平台进行对接的开发接口的文档。这 份文档提供了综合交易平台接口的整体介绍,解释了接口的运行机制,简述了使用相应的接口开发客户端的 常规步骤。文档中还会列举出其他开发人员咨询的问题及我们给出的回复。
更多上期技术实时信息请关注上期技术微信公众平台
上海期货信息技术有限公司

CTP 客户端南 ..................................................................................................................................................1 前言 ...............................................................................................................................................................................2 目录 ...............................................................................................................................................................................3 1 CTP ..............................................................................................................................................................................5

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

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

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 结尾的是用来响应命令的回调。

[转载]CTP初次接触三:官方CTP交易DEMO里的内容

[转载]CTP初次接触三:官方CTP交易DEMO里的内容

[转载]CTP初次接触三:官方CTP交易DEMO里的内容原文地址:CTP初次接触三:官方CTP交易DEMO里的内容作者:王衣谷量化交易响应)。

CThostFtdcTraderSpi(响应)类也需要继承才能使用,建立新void main(void){// 初始化UserApipUserApi = CThostFtdcTraderApi::CreateFtdcTraderApi(); // 创建UserApiCTraderSpi* pUserSpi = new CTraderSpi();pUserApi->RegisterSpi((CThostFtdcTraderSpi*)pUserSpi); // 注册事件类pUserApi->SubscribePublicT opic(TERT_RESTART); // 注册公有流pUserApi->SubscribePrivateTopic(TERT_RESTART); // 注册私有流pUserApi->RegisterFront(FRONT_ADDR); // connectpUserApi->Init();pUserApi->Join();// pUserApi->Release();}和行情部分的代码基本是类似的。

一、生成了API和SPI的两个类,一个负责交易申请,一个负责交易回报,并让两个类认识了一下。

pUserApi->RegisterSpi(pUserSpi)。

二、然后和行情服务器打招呼,我这里有个API类,你先认识下,过会我要来串门。

pUserApi->RegisterFront(FRONT_ADDR)。

FRONT_ADDR是交易服务器的地址。

三、这里还要做两件事情,注册公有流和注册私有流。

这是和行情那部分不一样的。

公有流:交易所向所有连接着的客户端发布的信息。

私有流:交易所向特定客户端发送的信息。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

6.3.11. OnRspOrderAction 方法................................................................................17 6.3.12. OnRspQryOrder 方法 ....................................................................................18
6.3.22. 6.3.23. 6.3.24. 6.3.25.
OnRspQryMarket 方法 ...................................................................................36 OnRtnTrade 方法 ...........................................................................................37 OnRtnOrder 方法...........................................................................................38 OnErrRtnOrderInsert 方法..............................................................................40
4. 运行模式...................................................................................................................................2 4.1. 工作线程...................................................................................................................2
6.3.20. OnRspQryDepthMarketData 方法..................................................................32 6.3.21. OnRspQryOrderFundDetail 方法 ...................................................................35
6.3.13. 6.3.14. 6.3.15. 6.3.16. 6.3.17. 6.3.18. 6.3.19.
OnRspQryTrade 方法.........................................................21 OnRspQryInvestor 方法 ................................................................................23 OnRspQryInvestorSecurityPosition 方法 ......................................................25 OnRspQryTradingAccount 方法.....................................................................26 OnRspQryTradingCode 方法.........................................................................28 OnRspQryExchange 方法...............................................................................29 OnRspQrySecurity 方法 .................................................................................30
2.1. 通讯模式...................................................................................................................1 2.2. 数据流.......................................................................................................................3 3. 接口模式...................................................................................................................................1
6.
7.
8.
9.
10.
11.
12.
版权所有©上海期货信息技术有限公司
第1页
证券交易托管系统
TradeAPI 接口
目录
1. 介绍...........................................................................................................................................6 2. 体系结构...................................................................................................................................1
3.1. 对话流和查询流编程接口.......................................................................................1 3.2. 私有流编程接口.......................................................................................................2
6.3.2. OnFrontDisconnected 方法..............................................................................9 6.3.3. OnHeartBeatWarning 方法 ...............................................................................9
证券交易托管系统
交 易 员 应 用 程 序 接 口
2016 年 1 月
证券交易托管系统
1. 文件属性 文件属性
文件名称 文件编号 文件版本号 文件状态 作者 文档编写日期 文档发布日期
内容 证券交易托管系统_ TradeAPI 接口
V0.3 草稿 上海期货信息技术有限公司 2016-1-27
TradeAPI 接口
2. 文件变更历史清单
文件版本号
修正日期
V0.1
2015-4-8
V0.2
2015-5-21
V0.3
2016-1-27
修正人 桂荣盛 桂荣盛 包路跃
备注 创建 增加个股期权接口说明 增加分级基金、融资融券 接口说明
3. 本次修改变更说明
序号
变更内容简述
1.
增加分级基金、融资融券接口说明
2.
3.
4.
5.
4.2. 本地文件...................................................................................................................3 5. 业务与接口对照.......................................................................................................................4
5.1. TraderAPI..................................................................................................................4
5.2. MarketDataAPI .........................................................................................................7
6. 开发接口...................................................................................................................................8
6.1. 通用规则...................................................................................................................8 6.2. 托管服务地址设置要求...........................................................................................8
相关文档
最新文档