CTP期货期权交易开发

CTP交易部分接口说明

综合交易平台(Comprehensive Transaction Platform,CTP)是专门为期货公司开发的一套期货经纪业务管理系统,由交易、风险控制和结算三大系统组成。其中,交易系统主要负责订单处理、行情转发及银期转账业务,系统能够同时连通国内四家期货交易所,支持国内商品期货和股指期货的交易结算业务,并能自动生成、报送保证金监控文件和反洗钱监控文件。

一、请求接口字段说明(必要字段)

1. 登录:

  • broker_id:经纪公司代码
  • investor_id:投资者代码
  • pwd:密码

2. 结算单确认:

  • broker_id:经纪公司代码
  • investor_id:投资者代码

3.报单录入:

3.1 必要字段说明

  • broker_id:经纪公司代码
  • investor_id:投资者代码
  • instrument_id:合约代码
  • user_id:若是普通投资者,则同investor_id
  • exchange_id:交易所代码
  • order_price_type:报单价格条件,
///任意价
#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‘
///买一价浮动上浮2个ticks
#define THOST_FTDC_OPT_BidPrice1PlusTwoTicks ‘E‘
///买一价浮动上浮3个ticks
#define THOST_FTDC_OPT_BidPrice1PlusThreeTicks ‘F‘
///五档价
#define THOST_FTDC_OPT_FiveLevelPrice ‘G‘
  • direction:买卖方向,
///买
#define THOST_FTDC_D_Buy ‘0‘
///卖
#define THOST_FTDC_D_Sell ‘1‘
  • comb_offset_flag:组合开平标志类型,只需填comb_offset_flag[0],
///开仓
#define THOST_FTDC_OF_Open ‘0‘
///平仓
#define THOST_FTDC_OF_Close ‘1‘
///强平
#define THOST_FTDC_OF_ForceClose ‘2‘
///平今
#define THOST_FTDC_OF_CloseToday ‘3‘
///平昨
#define THOST_FTDC_OF_CloseYesterday ‘4‘
///强减
#define THOST_FTDC_OF_ForceOff ‘5‘
///本地强平
#define THOST_FTDC_OF_LocalForceClose ‘6‘
  • comb_hedge_flag:组合投机套保标志,只需填comb_hedge_flag[0],
///投机
#define THOST_FTDC_HFEN_Speculation ‘1‘
///套利
#define THOST_FTDC_HFEN_Arbitrage ‘2‘
///套期保值
#define THOST_FTDC_HFEN_Hedge ‘3‘
  • limit_price:价格
  • volume_total_original:数量
  • time_condition:有效期类型,如当日有效,
///立即完成,否则撤销
#define THOST_FTDC_TC_IOC ‘1‘
///本节有效
#define THOST_FTDC_TC_GFS ‘2‘
///当日有效
#define THOST_FTDC_TC_GFD ‘3‘
///指定日期前有效
#define THOST_FTDC_TC_GTD ‘4‘
///撤销前有效
#define THOST_FTDC_TC_GTC ‘5‘
///集合竞价有效
#define THOST_FTDC_TC_GFA ‘6‘
  • volume_condition:成交量类型,一般填任何数量,
///任何数量
#define THOST_FTDC_VC_AV ‘1‘
///最小数量
#define THOST_FTDC_VC_MV ‘2‘
///全部数量
#define THOST_FTDC_VC_CV ‘3‘
  • min_volume:最小成交量1
  • contingent_condition:触发条件,
///立即
#define THOST_FTDC_CC_Immediately ‘1‘
///止损
#define THOST_FTDC_CC_Touch ‘2‘
///止赢
#define THOST_FTDC_CC_TouchProfit ‘3‘
///预埋单
#define THOST_FTDC_CC_ParkedOrder ‘4‘
///最新价大于条件价
#define THOST_FTDC_CC_LastPriceGreaterThanStopPrice ‘5‘
///最新价大于等于条件价
#define THOST_FTDC_CC_LastPriceGreaterEqualStopPrice ‘6‘
///最新价小于条件价
#define THOST_FTDC_CC_LastPriceLesserThanStopPrice ‘7‘
///最新价小于等于条件价
#define THOST_FTDC_CC_LastPriceLesserEqualStopPrice ‘8‘
///卖一价大于条件价
#define THOST_FTDC_CC_AskPriceGreaterThanStopPrice ‘9‘
///卖一价大于等于条件价
#define THOST_FTDC_CC_AskPriceGreaterEqualStopPrice ‘A‘
///卖一价小于条件价
#define THOST_FTDC_CC_AskPriceLesserThanStopPrice ‘B‘
///卖一价小于等于条件价
#define THOST_FTDC_CC_AskPriceLesserEqualStopPrice ‘C‘
///买一价大于条件价
#define THOST_FTDC_CC_BidPriceGreaterThanStopPrice ‘D‘
///买一价大于等于条件价
#define THOST_FTDC_CC_BidPriceGreaterEqualStopPrice ‘E‘
///买一价小于条件价
#define THOST_FTDC_CC_BidPriceLesserThanStopPrice ‘F‘
///买一价小于等于条件价
#define THOST_FTDC_CC_BidPriceLesserEqualStopPrice ‘H‘
  • force_close_reason:强平原因,一般填非强平,
///立即
#define THOST_FTDC_CC_Immediately ‘1‘
///止损
#define THOST_FTDC_CC_Touch ‘2‘
///止赢
#define THOST_FTDC_CC_TouchProfit ‘3‘
///预埋单
#define THOST_FTDC_CC_ParkedOrder ‘4‘
///最新价大于条件价
#define THOST_FTDC_CC_LastPriceGreaterThanStopPrice ‘5‘
///最新价大于等于条件价
#define THOST_FTDC_CC_LastPriceGreaterEqualStopPrice ‘6‘
///最新价小于条件价
#define THOST_FTDC_CC_LastPriceLesserThanStopPrice ‘7‘
///最新价小于等于条件价
#define THOST_FTDC_CC_LastPriceLesserEqualStopPrice ‘8‘
///卖一价大于条件价
#define THOST_FTDC_CC_AskPriceGreaterThanStopPrice ‘9‘
///卖一价大于等于条件价
#define THOST_FTDC_CC_AskPriceGreaterEqualStopPrice ‘A‘
///卖一价小于条件价
#define THOST_FTDC_CC_AskPriceLesserThanStopPrice ‘B‘
///卖一价小于等于条件价
#define THOST_FTDC_CC_AskPriceLesserEqualStopPrice ‘C‘
///买一价大于条件价
#define THOST_FTDC_CC_BidPriceGreaterThanStopPrice ‘D‘
///买一价大于等于条件价
#define THOST_FTDC_CC_BidPriceGreaterEqualStopPrice ‘E‘
///买一价小于条件价
#define THOST_FTDC_CC_BidPriceLesserThanStopPrice ‘F‘
///买一价小于等于条件价
#define THOST_FTDC_CC_BidPriceLesserEqualStopPrice ‘H‘
  • is_auto_suspend:自动挂起标志,1是,0否,一般填0
  • user_force_close:用户强平标志,1是,0否,一般填0

3.2 特别说明

  • 如果发送立即限价单:
/// 报单价格条件类型:限价
OrderPriceType = THOST_FTDC_OPT_LimitPrice;
/// 价格:用户设定
LimitPrice = ……;
/// 有效期类型类型:当日有效
TimeCondition = THOST_FTDC_TC_GFD;
  • 如果发送立即市价单
/// 报单价格条件类型:任意价
OrderPriceType = THOST_FTDC_OPT_AnyPrice;
///价格:0
LimitPrice = 0;
///有效期类型类型:立即完成,否则撤销
TimeCondition = THOST_FTDC_TC_IOC;
  • 如果发送触发单
///触发条件:用户设定
ContingentCondition = ……;
///止损价:用户设定
StopPrice = ……;
/// 报单价格条件类型:限价
OrderPriceType = THOST_FTDC_OPT_LimitPrice;
/// 价格:用户设定
LimitPrice = ……;
/// 有效期类型类型:当日有效
TimeCondition = THOST_FTDC_TC_GFD;
  • 关于平仓:

上期所区分昨仓和今仓。

平昨仓时,开平标志类型设置为平仓THOST_FTDC_OF_Close

平今仓时,开平标志类型设置为平今仓THOST_FTDC_OF_CloseToday

其他交易所不区分昨仓和今仓。

开平标志类型统一设置为平仓THOST_FTDC_OF_Close

4. 撤单:

4.1 必要字段填写

  • broker_id:经纪公司代码
  • investor_id:投资者代码
  • instrument_id:合约代码
  • user_id:若是普通投资者,则同investor_id
  • action_flag:只需填action_flag()[0],撤单THOST_FTDC_AF_Delete
///删除
#define THOST_FTDC_AF_Delete ‘0‘
///修改
#define THOST_FTDC_AF_Modify ‘3‘
  • order_ref:报单引用
  • front_id:前置编号
  • session_id:会话编号
  • order_sys_id:报单编号
  • exchange_id:交易所编号

4.2 特别说明

  • 报单未在交易所须用(OrderRef+FrontID+SessionID)定位并撤单。
  • 报单停留在交易所,可用(OrderSysID+ExchangeID)定位并撤单。
  • 可只填写一个字段,但是若填写字段,则必须正确,否则无法定位报单。
  • 以上报单定位字段可在报单通知、成交通知,或者查询报单、查询成交中获得。

5. 预埋单录入:

仅在非交易时段报入并在新的交易时段开始时被触发并执行。

字段参考普通下单,触发条件为预埋单类型。

6. 预埋撤单:trade_parked_order_action_id = 9004

仅在非交易时段报入并在新的交易时段开始时被触发并执行。

字段参考普通撤单。

7. 删除预埋单:

  • broker_id:经纪公司代码
  • investor_id:投资者代码
  • parked_order_id:预埋单编号

8. 删除预埋撤单:

  • broker_id:经纪公司代码
  • investor_id:投资者代码
  • parked_order_action_id:预埋撤单编号

9. 行权委托:

  • broker_id:经纪公司代码
  • investor_id:投资者代码
  • instrument_id:合约代码
  • volume:数量
  • offset_flag:offset_flag()[0],开平标志
  • hedge_flag:hedge_flag()[0],投机套保标志
  • action_type:执行类型,
///执行
#define THOST_FTDC_ACTP_Exec ‘1‘
///放弃
#define THOST_FTDC_ACTP_Abandon ‘2‘
  • posi_direction:保留头寸申请的持仓方向,
///净
#define THOST_FTDC_PD_Net ‘1‘
///多头
#define THOST_FTDC_PD_Long ‘2‘
///空头
#define THOST_FTDC_PD_Short ‘3‘
  • reserve_position_flag:期权行权后是否保留期货头寸的标记,
///保留
#define THOST_FTDC_EOPF_Reserve ‘0‘
///不保留
#define THOST_FTDC_EOPF_UnReserve ‘1‘
  • close_flag:期权行权后生成的头寸是否自动平仓,
///自动平仓
#define THOST_FTDC_EOCF_AutoClose ‘0‘
///免于自动平仓
#define THOST_FTDC_EOCF_NotToClose ‘1‘

10.撤销行权委托:

参考普通撤单

  • broker_id:经纪公司代码
  • investor_id:投资者代码
  • instrument_id:合约代码
  • user_id:若是普通投资者,则同investor_id
  • action_flag:只需填action_flag()[0],撤单THOST_FTDC_AF_Delete
  • exec_order_ref:执行宣告引用
  • front_id:前置编号
  • session_id:会话编号
  • exec_order_sys_id:执行宣告操作编号
  • exchange_id:交易所编号

11. 登出:

  • broker_id:经纪公司代码
  • user_id:用户代码

12. 条件单错误通知:

13. 询价通知:

14. 合约交易状态通知:

15. 查询类:

  • 查询结算单确认信息:acct_qry_settle_comfirm
  • 查询结算单:acct_qry_settle_info
  • 查询投资者:acct_qry_investor
  • 查询报单:trade_qry_order
  • 查询成交:trade_qry_trade
  • 查询投资者持仓:trade_qry_investor_position
  • 查询投资者交易账户:trade_qry_trading_acct
  • 查询交易通知:trade_qry_trading_notice
  • 查询交易编号:trade_qry_trading_code
  • 查询合约保证金率:trade_qry_instr_margin_rate
  • 查询合约手续费率:trade_qry_instr_comm_rate
  • 查询交易所:trade_qry_exchange
  • 查询产品:trade_qry_product
  • 查询合约:trade_qry_instrument
  • 查询转账银行:trade_qry_transfer_bank
  • 查询投资者持仓明细:trade_qry_inv_pos_detail
  • 查询投资者组合持仓明细:trade_qry_inv_pos_comb_detail
  • 查询仓单折抵信息:trade_qry_ewarrant_offset

16. 用户口令更新:acct_user_pwd_update

  • broker_id
  • user_id:用户代码
  • old_password
  • new_password

17. 资金账户口令更新:acct_trade_pwd_update

  • broker_id
  • account_id:投资者账号
  • old_password
  • new_password

二、CTP交易基本流程和通讯

下面是大致流程图:

1. 通讯模式和数据流

期货交易数据换协议期货交易数据换协议( Futures Trading Data Exchange Protocol,FTD),适用于期货交易系统与其下端交易客户端进行交易所需的数据交换和通讯。

  • 对话通讯模式:客户端发起请求,类似C/S模式。
  • 私有通讯模式:交易系统主动向某个特定的客户端发送信息。例如报单回报。
  • 广播通讯模式:向所有客户端发出相同的信息。例如行情。

需要订阅公有流和私。

  • 公有流:交易所向连接着的客户端发布信息。 比如说合约场上状态公有流:交易所向连接着的客户端发布信息。比如说合约场上状态。
  • 私有流:交易所向特定客户端发送的信息。 如报单回报,成交回报。

一般,CTP系统中对话模式下被返回的消息成为 响应 。而私有模式和广播下被返回的消息称为 回报 。

每个数据流应该对应一种通讯模式,但是一个通讯模式可能有多个数据流。

2.数据交换方式

  • 请求/应答方式:client发出请求,server收到应答。
  • 发布/订阅方式:发布者发布信息至主题,订阅者从主题订阅消息。发布者和订阅者相对独立,低耦合。

其他待续

原文地址:https://www.cnblogs.com/dengchj/p/8442913.html

时间: 2024-08-24 20:30:51

CTP期货期权交易开发的相关文章

CTP综合交易平台-开发后感

断断续续的一年时间,终于把这个对接期货交易平台的工作给做成了产品.以下是个人的吐槽. 1.文档 CTP是有好几个文档,但是作为一个软件开发指导,未免也太简陋了. “综合交易平台API说明”,这个是它的API介绍了.但是缺少接口调用的上下文约定的描述,接口介绍也够简单的. “综合交易平台交易API特别说明”与“综合交易平台API开发常见问题列表”看到这两个文档,总算能从字里行间看到部分的接口使用规范了.可是其中某些描述,比如: “11. 综合交易平台能显示买卖价的深度行情吗? 比如说 10 档买卖

期货系统开发,合约系统开发,杠杆系统开发

什么是期货交易系统? 简单地说,期货交易系统就是由相互关联的交易规则构成的一套完整的交易规则体系.它一般是由行情判断子系统.资金管理子系统和风险管理子系统三部分构成.其中,比较重要的行情判断子系统应该包括两条以上的交易规则,这些规则应具有相互之间的有机联系,并且至少能完成一个完整的交易周期.期货系统开发 Tel: 前面138中间2315后面3201 期货的优势: 1.期货可以双向交易. 现货只能做多,币价涨了才能赚钱.而比特币一直在波动,在下跌的时候投资者错过了赚钱的机会,不平仓还会带来巨大的亏

期货期权交易行情接口

本文将先介绍期货交易所以及行情交易接口相关内容,然后简要介绍CTP接口. 期货交易所 国内目前有三个商品期货交易所,分别是大连商品交易所.上海期货交易所.郑州商品交易所,还有一个中国金融期货交易所. 郑商所(Zhengzhou Commodity Exchange,CZCE) 主要交易合约品种有:农产品(白糖.棉花.苹果等),非农产品(玻璃.甲醇).期权(白糖) 大商所(Dalian Commodity Exchange,DCE)主要交易合约品种有农产品(玉米.大豆.豆粕),非农产品(聚乙烯.聚

虚拟资产交易所币币场外期货交易系统开发

虚拟资产即使在不是很好的情况下,依旧有源源不断的用户在交易.有的交易所已经放弃了,这就等于他们让出了一部分市场,这也正是机会的来临.而目前大部分交易所的模式都有币币.场外,迎着市场需求的增多,许多交易所也上了期货模式. 要开发虚拟资产交易所币币场外期货交易系统,并不是找到开发公司让他们开发就完事了的.前期需要先把功能需求列出,如果都是现成系统,大家都一样,那也没什么竞争的意义了.定制开发才是趋势. 币币交易,是交易对交易,这是监管后马上诞生的新模式.币币撮合就需要高并发系统,采用内存撮合更能满足

虚拟币期货交易系统开发_数字货币交易网站开发

虚拟币市场如火如荼,越来越多传统金融加入其中,这也就会产生把传统金融模式套到虚拟币的市场上来.虚拟币期货交易就是很明显的传统金融转变过来的. 虚拟币期货交易系统的核心功能有:订单处理,交易管理.行情展示.风险管理.基础数据服务.结算.数据中心(资金结算等)服务等.基于这些功能,系统要具备以下特点: 1.高性能:相比于其他管理系统,虚拟币期货交易系统要求更高的性能,包括行情数据的实时刷新,交易订单处理等.? 2.可扩充:数字货币期货交易系统通常要支持大量的并发用户,且随着业务不断的发展,交易所的用

溯源系统开发,区块链系统开发,期货系统开发

溯源能有效追责,对食品行业的自我约束起到了重要意义,随着溯源性能逐渐被认可,其功能不再局限于食品行业,药品.服装.汽配.电子.奢侈品行业都有广泛的应用. 市面上区块链溯源企业的模式是什么? 溯源系统开发 Tel: 前面138中间2315后面3201 主流的模式有两种: 一种是做行业公链,在平台上面又可以做溯源的存证以及商品的资产化.另一种是做应用,也就是本身没有链,而是把应用当作一个重要的商业模式. 一般来说企业直接接触的是应用企业,也就是帮企业客户做开发.集成.接口的一些应用服务商.而我们的未

C#下如何用NPlot绘制期货股票K线图(2):读取数据文件让K线图自动更新

[内容介绍]上一篇介绍了K线图的基本绘制方法,但很不完善,本篇增加了它直接读取数据的功能,这对于金融市场的数据量大且又需要动态刷新功能的实现很重要. [实现方法] 1.需要一个数据文件,这里用的是直接读取由另一个CTP程序从上期交易所接收的期货合约RB1609所写的行情文件日线数据rb1609_d1.txt 文件格式如下: 日期 时间 开盘 最高 最低 收盘 成交量 持仓量 20160810 0.100000 2555.00 2606.00 2540.00 2563.00 3114 6858 2

期货程序化服务器托管-上海张江机房交易延迟0毫秒

我司机房提供了一个开放.快速.稳定.安全的期货交易.结算系统的平台,并直连各个交易所,为个性化托管服务提供了优良的平台. 联系人:刘经理 电话:15901889515 QQ :569412189 公司主用上海电信IDC机房,苏州电信IDC机房,嘉兴IDC机房与上海上期张江行业数据中心,分别拥有了主交易系统所需的所有环境,对等部署的系统实时同步,各自具备1003的承载能力,可在5分钟内实现异地切换运行. 公司另在大交所.深交所.嘉兴联通.香港PCCW等行业数据中心和电信运营商处租用VIP机房和机柜

期货程序化服务器托管首选上海张江机房

我司机房提供了一个开放.快速.稳定.安全的期货交易.结算系统的平台,并直连各个交易所,为个性化托管服务提供了优良的平台.联系人:刘经理 电话:15901889515 QQ :569412189公司主用上海电信IDC机房,苏州电信IDC机房,嘉兴IDC机房与上海上期张江行业数据中心,分别拥有了主交易系统所需的所有环境,对等部署的系统实时同步,各自具备1003的承载能力,可在5分钟内实现异地切换运行.公司另在大交所.深交所.嘉兴联通.香港PCCW等行业数据中心和电信运营商处租用VIP机房和机柜,就近