首页> 中国专利> 金融衍生品交易系统

金融衍生品交易系统

摘要

本发明涉及金融衍生品交易系统,其交易数据库,存储客户的委托信息、成交信息、资金持仓库信息以及基本数据;交易服务器,处理客户的交易、查询请求指令,接受来自网关的请求,交易请求发送至报盘服务器,查询请求从交易数据库获取,策略请求发送至策略服务器;网关,提供客户验证、指令转发和行情订阅推送,网关接受来自交易客户端的指令;报盘服务器,与第三方交易平台通讯;策略服务器,接受来自交易服务器的策略指令控制策略的运行,接受来自行情服务器的行情数据提供给策略使用;管理服务器,是管理端管理交易数据库的中间件;交易客户端,提供期现套利、跨期套利、现货构建、现货趋势交易、期货趋势交易、策略交易、交易信息查询功能。

著录项

  • 公开/公告号CN102663649A

    专利类型发明专利

  • 公开/公告日2012-09-12

    原文格式PDF

  • 申请/专利权人 苏州工业园区凌志软件有限公司;

    申请/专利号CN201210154311.4

  • 发明设计人 张宝泉;王鹏;

    申请日2012-05-18

  • 分类号G06Q40/04(20120101);

  • 代理机构32102 南京苏科专利代理有限责任公司;

  • 代理人王玉国;陈忠辉

  • 地址 215123 江苏省苏州市工业园区星湖街328号创意产业园

  • 入库时间 2023-12-18 06:28:50

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-06-16

    专利权人的姓名或者名称、地址的变更 IPC(主分类):G06Q40/04 变更前: 变更后: 申请日:20120518

    专利权人的姓名或者名称、地址的变更

  • 2015-02-25

    专利权人的姓名或者名称、地址的变更 IPC(主分类):G06Q40/04 变更前: 变更后: 申请日:20120518

    专利权人的姓名或者名称、地址的变更

  • 2014-11-26

    授权

    授权

  • 2012-11-07

    实质审查的生效 IPC(主分类):G06Q40/04 申请日:20120518

    实质审查的生效

  • 2012-09-12

    公开

    公开

说明书

技术领域

本发明涉及一种金融衍生品交易系统,应用于金融衍生品交易范围,交易品种涵盖证券、期货、基金及其他衍生品,提供各种衍生品的基本交易、套利交易、及策略交易,并集对冲交易、程序化交易、风险控制、清算、二级帐户管理等业务。

背景技术

近年来,随着金融衍生品交易品种的不断增加,投资方式的不断更新,投资者面对的选择越来越多。并且,随着金融市场的交易量不断创下新高,投资者的观念也经历了从保守投资走向风险投资、稳健投资的过程。现在的投资者,经过几十年金融市场的历练,投资方式已经从当初最基本的银行存款,转向多种投资方式齐头并进,满足自身短、中、长期的不同投资需求。

同样,随着投资者的观念更新及金融市场的日趋完善、成熟化,投资者的观念也由原来的冲动型慢慢转向理性投资,在金融市场成立初期,投资者往往出现蜂拥而上,盲目追高的心理。但,随着市场的成熟化程度加大,投资者也开始转向理性投资。例如采用多种数量化投资手段进行前期分析,中期追踪及盈利监控、止损控制。采用金融工程的相关知识进行投资组合构建,例如保守的追踪指数投资组合方式及分散投资组合方式,以期规避非系统风险,获取更大的利润。

因此,高端用户亟需一款能够满足他们需求的,智能化程度高的系统。

发明内容

本发明的目的是克服现有技术存在的不足,提供一种金融衍生品交易系统。

本发明的目的通过以下技术方案来实现:

金融衍生品交易系统,特点是:包括交易数据库、交易服务器、网关、报盘服务器、策略服务器、管理服务器、交易客户端、管理客户端、行情数据库、行情服务器和行情采集器;

所述交易数据库,存储客户的委托信息、成交信息、资金持仓库信息以及基本数据,客户所有的委托、查询请求经过交易数据库;

所述交易服务器,处理客户的交易、查询请求指令,接受来自网关的请求,区分不同的请求分别处理,交易请求发送至报盘服务器,查询请求直接从交易数据库获取,策略请求发送至策略服务器;

所述网关,提供客户验证、指令转发和行情订阅推送,网关接受来自交易客户端的指令,转发给交易服务器处理;网关接受来自行情服务器推送来的数据,根据交易客户端的订阅信息推送到交易客户端;

所述报盘服务器,与第三方期货交易平台和第三方现货交易平台通讯,由报盘服务器将委托交易请求转发到第三方期货交易平台和第三方现货交易平台,继而由第三方期货交易平台和第三方现货交易平台转发到相应的交易所;

所述策略服务器,运行交易策略的服务器,接受来自交易服务器的策略指令控制策略的运行,接受来自行情服务器的行情数据提供给策略使用,连接交易服务器供策略调用资金、持仓、委托、成交交易数据; 

所述管理服务器,是管理端管理交易数据库的中间件;

所述交易客户端,提供期现套利、跨期套利、现货构建、现货趋势交易、期货趋势交易、策略交易、交易信息查询功能,提供给客户使用的程序;

所述管理客户端,提供清算对帐、策略导入、风险监控、帐户管理、基础资料维护、交易初始化功能;

所述行情数据库,提供分时行情的数据库,由行情采集器将行情数据写入至行情数据库;

所述行情服务器,对行情数据采样并推送,证券行情数据来自交易所的行情,期货行情来自交易平台的推送数据,每次采样到新的行情后,行情服务器将行情推送到网关、策略服务器、行情采集器,行情服务器连接行情数据库,提供给需要的客户端;

所述行情采集器,将行情按时间频度写入至行情数据库,供交易客户端使用。

进一步地,上述的金融衍生品交易系统,所述系统构建于.NET Framework之上,分为三层,即通用库、业务层和展示层;所述通用库包含:

对象契约模块,定义并实现业务数据和消息的规范,业务数据是业务处理的基本单元,定义良好的业务数据具备以下的条件:实现IBizData接口,该接口表明当前对象是一个业务数据;声明ByteHelperAttribute特性,该特性声明业务数据将要使用的编码帮助类;编码帮助类继承自ByteHelper<T>这一泛型抽象类,编码帮助类将业务数据与编码/解码功能解耦;消息是通信传输的基本单元,定义良好的消息实现ITransferData接口,系统内置提供两个实现类,分别是:RequestData<T>,表示一个业务请求;ResponseData<T>,表示一个业务请求的响应;此外,该组件中也定义业务处理、消息编码的功能; 

数据定义模块,包含一组预定义的业务数据及相应的编码帮助类;

网络通信模块,提供自定义的通信功能,模块之间的通信使用自定义的通信框架,框架基于Socket实现,通过异步Socket事件参数,框架利用IO完成端口提供的异步读写功能,通过异步事件通知,将通信状态及时反馈给上层组件;通信服务端包括连接控制:通过配置,指定服务端允许的最大连接数,每当接受一个连接后,查找到可用的空闲连接槽,将连接和连接槽建立关联;连接清理:通信服务端监控每个连接的使用情况,并定期清理长时间处于空闲状态的连接,释放资源;对象容器:每个连接都对应着两个异步Socket事件参数对象及一个接收缓存,通过对象池,创建一个大的容器将小对象集中在一起;

数据传输模块,提供业务化的通信功能,在网络通信的基础上,数据传输组件提供业务化的面向对象的通信功能,包括处理接收数据:解决Socket传输过程中的数据粘连现象,将接收到的数据转换成消息,实现解码功能;添加超时处理:在发出的请求长时间未收到回应时,抛出异常;添加请求上下文信息:在发送数据之前,写入一个RequestID值,接收数据之后,通过RequestID值,在请求和响应之间建立关联;添加同步发送/接收功能:包装底层事件:将通信层的事件包装成易于理解的事件;

配置管理模块,实现自定义的配置管理功能,配置管理组件对.NET Framework内置的配置管理功能进行扩展,包括泛型支持:添加泛型配置元素集合类ConfigElementCollection<T>,免去定义各种配置元素集合的需要;多态性支持:结合ConfigPolymorphicElementCollection<T>类和ConfigElementTypeAttribute特性提供支持;统一访问支持:通过ConfigHelper帮助类,提供对配置信息统一的访问方式;

数据访问模块,提供数据库的访问功能;

日志记录模块,提供日志记录功能,预置一组实现类,直接使用,记录日志通过LogHelper帮助类完成,帮助类提供同步和异步两种方式;

通用核心模块,提供常用功能的封装,对经常使用的基础功能进行归拢,包括:提供一组针对不同类型Object,String,IEnumerable<T>扩展方法、封装部分常用的Windows API、实现弱引用事件、集合类;

文件存取模块,提供业务对象存取到文件功能;

异常处理模块,提供异常处理功能,用于统一处理系统运行过程中发生的异常,通过对不同异常类型建立处理策略,处理不同严重级别的异常。

更进一步地,上述的金融衍生品交易系统,所述交易数据库为Oracle核心数据库。

更进一步地,上述的金融衍生品交易系统,所述管理服务器为WCF服务器。

再进一步地,上述的金融衍生品交易系统,所述行情数据库为Oracle数据库或SQL Server数据库。

本发明技术方案突出的实质性特点和显著的进步主要体现在:

系统基于.NET 4.0平台,采用多层C/S架构,数据库设计上使用ORACLE,采用存储过程嵌套技术,加快了系统后台处理速度。系统摒弃了系统默认的序列化机制,而采用自定义的编码方式,直接将业务数据和Byte数组相互转换,对新的业务数据类型扩展需求提供了灵活的支持;本系统直接使用Socket,在底层以异步的方式进行数据的传输,整个系统支持使用“异步+事件通知”的方式进行业务的处理,以提高整体的吞吐量;而客户端为了简化操作,在这个基础上进行了封装,同时支持以同步的方式进行调用,根据不同的业务需求,自由的选择这两种方式之一或者混合使用。在业务处理方面,系统使用一致的处理模式来应对所有的请求,即“异步+分发”。系统采用并发的方式处理所有的业务请求,调用方发起一个请求后,无须等待响应,系统将在响应可用时以事件来通知调用方,整个过程非阻塞。采取并行的设计策略,系统中所有的业务请求都是并行的,彼此之间不会相互影响,大大提高了系统的整体稳定性。

附图说明

下面结合附图对本发明技术方案作进一步说明:

图1:本发明系统的架构示意图;

图2:系统的技术分层结构示意图。

具体实施方式

如图1所示,金融衍生品交易系统,包括交易数据库5、交易服务器9、网关10、报盘服务器11、策略服务器8、管理服务器6、交易客户端7、管理客户端4、行情数据库2、行情服务器3和行情采集器1;

交易数据库5,为Oracle核心数据库,存储客户的委托信息、成交信息、资金持仓库信息以及基本数据,客户所有的委托、查询请求经过交易数据库5;

交易服务器9,处理客户的交易、查询请求指令,接受来自网关10的请求,区分不同的请求分别处理,交易请求发送至报盘服务器11,查询请求直接从交易数据库5获取,策略请求发送至策略服务器8;

网关10,提供客户验证、指令转发和行情订阅推送,网关10接受来自交易客户端7的指令,转发给交易服务器9处理;网关10接受来自行情服务器3推送来的数据,根据交易客户端7的订阅信息推送到交易客户端7;

报盘服务器11,与第三方期货交易平台12和第三方现货交易平台14通讯,由报盘服务器11将委托交易请求转发到第三方期货交易平台12和第三方现货交易平台14,继而由第三方期货交易平台12转发到第三方期货交易所13,第三方现货交易平台14转发到第三方现货交易所15;

策略服务器8,运行交易策略的服务器,接受来自交易服务器9的策略指令控制策略的运行,接受来自行情服务器3的行情数据提供给策略使用,连接交易服务器9供策略调用资金、持仓、委托、成交交易数据;

管理服务器6,为WCF服务器,是管理端管理交易数据库5的中间件;

交易客户端7,提供期现套利、跨期套利、现货构建、现货趋势交易、期货趋势交易、策略交易、交易信息查询功能,提供给客户使用的程序;

管理客户端4,提供清算对帐、策略导入、风险监控、帐户管理、基础资料维护、交易初始化功能;

行情数据库2,为Oracle数据库或SQL Server数据库,提供分时行情的数据库,由行情采集器1将行情数据写入至行情数据库2;

行情服务器3,对行情数据采样并推送,证券行情数据来自第三方期货交易所13和第三方现货交易所15的DBF卫星行情,期货行情来自交易平台的推送数据,每次采样到新的行情后,行情服务器3将行情推送到网关10、策略服务器8、行情采集器1,行情服务器3连接行情数据库2,提供给需要的客户端;

行情采集器1,将行情按时间频度写入至行情数据库2,供交易客户端7使用。

金融衍生品交易系统,系统构建于.NET Framework之上,分为三层,如图2所示,即通用库(Common Libraries)A、业务层(Business Layer)B和展示层(Presentation Layer)C;通用库A由各个模块之间共享,业务层B和展示层C由各个模块分别独有;通用库包含:

对象契约模块A3,定义并实现了业务数据和消息的规范。业务数据是业务处理的基本单元。一个定义良好的业务数据应该具备以下的条件:实现IBizData接口:该接口表明当前对象是一个业务数据;声明ByteHelperAttribute特性:该特性声明业务数据将要使用的编码帮助类。编码帮助类继承自ByteHelper<T>这一泛型抽象类。编码帮助类存在的意义在于将业务数据与它的编码/解码功能解耦。消息是通信传输的基本单元。一个定义良好的消息必须实现ITransferData接口。系统内置提供两个实现类,分别是:RequestData<T>:表示一个业务请求;ResponseData<T>:表示一个业务请求的响应。此外,该组件中也定义了业务处理、消息编码等相关的功能。对象契约为整个系统的数据通信和处理打下坚实的基础。因为对象契约的存在,使得业务处理的过程更加对象化(无须再面对诸如Byte数组之类的基本结构),对于提高系统开发效率是非常有益的。 

数据定义模块A4,包含一组预定义的业务数据及相应的编码帮助类;

网络通信模块A10,实现自定义的通信功能。为了追求更高的通信效率,本系统各个模块之间的通信使用自定义的通信框架。该框架基于Socket实现,其核心思想是“异步+事件通知”。通过SocketAsyncEventArgs(异步Socket事件参数),该框架充分利用IO完成端口提供的异步读写功能,在此基础上,通过异步事件通知,将通信状态及时反馈给上层组件。通信服务端由于需要同时应对多个通信客户端,增加了更多与性能相关的设计,包括:连接控制:通过配置,指定服务端允许的最大连接数,避免连接数急剧膨胀可能导致服务器崩溃的现象发生。每当接受一个连接后,会查找到可用的空闲连接槽,将连接和连接槽建立关联(此时,连接槽将变成被占用的状态);连接清理:通信服务端会监控每个连接的使用情况,并定期清理那些长时间处于空闲状态的连接,释放相关的资源;对象容器:每个连接都对应着两个SocketAsyncEventArgs对象(一个用于发送数据,一个用于接收数据)及一个接收缓存,通过对象池技术,创建一个大的容器将这些小对象集中在一起(分配一整块连续的内存空间),以提高内存使用效率。

数据传输模块A5,实现业务化的通信功能。在网络通信的基础上,数据传输组件提供了业务化的,面向对象的通信功能。该组件对应用开发人员隐藏了通信的底层细节,使其可以专注于业务的处理,主要包括: 处理接收数据:解决Socket传输过程中的“数据粘连”现象,将接收到的数据转换成消息,实现解码功能;   添加超时处理:在发出的请求长时间未收到回应时,抛出异常(TimeoutException);添加请求上下文信息:在发送数据之前,写入一个RequestID值,接收数据之后,通过RequestID值,在请求和响应之间建立关联;添加同步发送/接收功能:由于网络通信层整体采用异步方式,对开发的体验不好,因此,这里利用请求上下文信息,将异步过程转换成同步过程,免除了应用开发直接面对异步操作的苦恼,简化代码流程。当然,也仍然可以直接使用“异步发送+事件通知”的编程方式;包装底层事件:将通信层的事件包装成更加易于理解的事件。

配置管理模块A9,实现自定义的配置管理功能。配置管理组件对.NET Framework内置的配置管理功能进行了扩展,包括:泛型支持:添加泛型配置元素集合类ConfigElementCollection<T>,免去定义各种配置元素集合的需要;多态性支持:由于内置的配置管理功能并不支持配置元素的多态性,这里结合ConfigPolymorphicElementCollection<T>类和ConfigElementTypeAttribute特性以提供支持;统一访问支持:通过ConfigHelper帮助类,提供对配置信息更加统一便捷的访问方式。

数据访问模块A1,提供数据库的访问功能。

日志记录模块A2,实现日志记录功能。该组件已经预置了一组实现类,可以直接使用。记录日志通过LogHelper帮助类来完成。该帮助类提供同步和异步两种方式,可以根据业务特点灵活采用。

通用核心模块A6,实现常用功能的封装。对经常使用的基础功能进行归拢,主要包括:提供一组针对不同类型(Object,String,IEnumerable<T>等等)的扩展方法、封装部分常用的Windows API、实现弱引用事件、一些集合类,如CachePool(缓存池)。

文件存取模块A8,提供业务对象存取到文件功能。

异常处理模块A7,实现异常处理功能。用于统一处理系统运行过程中发生的异常。由于本系统广泛使用了异步、并行等多线程技术,而在多线程环境下,异常的捕获并不是件容易的事件(经常被.NET运行时忽略),因此,有必须对异常处理过程进行统一的规范。通过对不同异常类型建立一套处理策略(忽略、重新抛出、退出系统),系统可以灵活处理不同严重级别的异常,从而达到正确性、健壮性、可靠性等的平衡。

本发明通讯数据处理流程为:从客户端发起业务请求起,依次经过编码、传输到服务器端,再解码、分发、处理、编码、传输回到客户端,再解码获取响应结果。整个过程中,除了客户端发起请求可以选择同步或者异步方式,其它都是以异步方式完成。有三点需要说明:1)客户接收过程是异步还是同步,是由发送请求的方式决定的(同步发送则同步接收,异步发送则利用事件来通知;2)服务器端接收到请求后,会有一个分发的过程,即真正处理请求的是各个已经注册的业务处理类来完成,这样就非常有利于业务类型的扩展(只需定义新的业务处理类型,再注册到服务器即可);3)编码、解码、传输等基础功能由框架统一提供,业务功能实现者无须参与,而是纯粹以面向对象的方式编写业务逻辑。

系统基于.NET 4.0平台,采用多层C/S架构,数据库设计上使用ORACLE,采用存储过程嵌套技术,加快了系统后台处理速度。为了减少编码后的内容长度,提高编码及解码的速度,本系统摒弃了系统默认的序列化机制,而采用自定义的编码方式,直接将业务数据和Byte数组相互转换(由IBizData接口定义)。本方式对新的业务数据类型扩展需求提供了灵活的支持(只要实现IBizData接口,并在配置文件中进行类型注册即可)。为了提高传输效率,本系统直接使用Socket,在底层以异步的方式进行数据的传输。整个系统支持使用“异步+事件通知”的方式(这是服务器端的默认行为)进行业务的处理,以提高整体的吞吐量。而客户端为了简化操作,在这个基础上进行了封装,同时支持以同步的方式进行调用,根据不同的业务需求,可以自由的选择这两种方式之一或者混合使用。在业务处理方面,系统使用一致的处理模式来应对所有的请求,即“异步+分发”。为了提高系统的吞吐量和系统运作效率,系统(包括服务器端和客户端)采用并发的方式处理所有的业务请求。调用方发起一个请求后,无须等待响应,系统将在响应可用时以事件来通知调用方,整个过程是非阻塞的。这对于服务器端而言十分重要,是提高整体吞吐量的关键。为了提高系统的稳定性,采取了并行的设计策略。系统中所有的业务请求都是并行的,彼此之间不会相互影响,这就大大提高了系统的整体稳定性。

与现有的交易平台系统相比较,本发明系统凸显以下优点:

①快速稳定的通讯框架:传输速度比.NET通用的WCF框架快3倍以上,并可对数据进行压缩和加密处理,经过严格的压力测试能稳定运行500个以上的客户端。

②行情采用订阅、推送方式:全部行情从采样到推送至客户端在0.3秒内即可完成,股指期货行情更是能在0.1秒以内到达客户端;

③ 稳定高效的报盘服务:报盘服务器能与各柜台系统进行稳定对接、快速报单,并且能够同时连接多个期货和现货柜台;

④异步处理:系统采用异步处理方式,减少处理的排队等待时间,业务请求不需要等待前面的处理结束,而是通过启动一个异步过程执行,提高了系统处理效率;

⑤序列化处理方式:序列化处理参考了.NET本身提供的通用对象序列化方式(XmlSerializer、DataContractSerializer等),通过合理的需求分析和大量数据分析,针对市场需求开发了自定义的序列化处理,省略了中间格式(例如XML)的转换步骤,而是按照业务数据类型直接分配空间,加快了编码解码的效率,从而提升了网络传输性能;极大地提高了交易速度。

需要理解到的是:以上所述仅是本发明的优选实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号