一种金融产品自动交易系统及自动交易方法
【专利摘要】本发明提供一种金融产品自动交易系统,包括:输入输出模块,用于接收市场行情数据并解析为市场行情信息发送给自动交易模块,以及根据自动交易模块生成的交易信息完成交易;以及自动交易模块,用于接收所述市场行情信息并根据所述市场行情信息生成交易信息;其中,所述输入输出模块和自动交易模块的至少其中之一基于FPGA实现。本发明还提供一种金融产品的自动交易方法。
【专利说明】
-种金融广品自动父易系统及自动父易方法
技术领域
[0001] 本发明设及一种应用于金融领域的自动交易系统,尤其设及一种基于硬件FPGA 的应用于金融产品的自动交易系统。
【背景技术】
[0002] 随着程序化证券交易的日益普及,越来越多的证券交易通过计算机程序自动完 成,运极大的提高了交易完成的效率。与此同时,人们对交易系统的性能要求,尤其是对延 迟性能的要求越来越高,交易机会往往转瞬即逝,延迟超过一定限度会丧失从交易中获利 的机会,甚至会造成亏损。传统的交易系统是基于软件的,也就是说真正决定交易与否、如 何交易的过程是在软件系统中运行的,且软件系统通过主机CPU执行。由于CPU构架和软 件系统的局限性,不管网络流量如何,程序化交易过程中都存在一定的延迟;而且因为单位 时间内CPU能够处理的消息数有限,当需要处理的数据流量出现激增的时候,延迟会突然 变得很大,不能满足程序化交易对处理速度的要求。
[0003] 由于所有的交易系统都需要首先接入市场行情,然后处理行情,进而根据当前行 情信息和交易算法决定交易,再将交易下单发到市场。现有的自动交易系统在运个过程中, 由于市场行情的接收和下单的发送都是通过网络连接完成的,所W数据必须经过网络到 CPU,再通过CPU传回网络,运个过程中必会引入从网卡到CPU传递数据的延迟,而且CPU需 要参与到网络数据的收发处理中,运些处理都会带来很大的延迟。CPU处理网络数据带来的 另外一个缺点是,CPU资源将被大量占用,特别是在网络数据带宽很高时。
【发明内容】
[0004] 为了解决W上问题,本发明提供一种金融产品自动交易系统,包括:输入输出模 块,用于接收市场行情数据并解析为市场行情信息发送给自动交易模块,W及根据自动交 易模块生成的交易信息完成交易;W及自动交易模块,用于接收所述市场行情信息并根据 所述市场行情信息生成交易信息;其中,所述输入输出模块和自动交易模块的至少其中之 一基于FPGA实现。
[0005] 优选地,所述输入输出模块包括第一网络协议处理单元和第二网络协议处理单 元;所述第一网络协议处理单元接收含有市场行情数据的网络数据包,并将所述网络数据 包按照网络协议解析为市场行情数据包发送给所述自动交易模块;所述第二网络协议处理 单元接收所述自动交易模块生成的交易信息,将交易信息封装为网络数据包发送到交易市 场。
[0006] 优选地,还包括:市场行情转换单元,位于所述第一网络协议处理单元与自动交易 模块之间,用于按照市场数据协议从所述第一网络协议处理单元解析出的市场行情数据包 中解析出市场行情数据并发送给所述自动交易模块;W及下单模块,位于所述自动交易模 块与第二网络协议处理单元之间,用于按照所述自动交易模块的交易信息控制下单并将下 单信息发送给所述第二网络协议处理单元。
[0007] 优选地,所述自动交易模块包括逻辑运算单元、条件判决单元和指令集单元;所述 逻辑运算单元能够根据市场行情信息进行逻辑运算,计算出衍生值;所述条件判决单元根 据预存的判决条件判决衍生值得到判决结果;所述指令集单元,预存有判决结果与指令集 的对应关系,根据所述条件判决单元的判决结果执行相应的指令集。
[0008] 优选地,还包括策略配置模块,用于接受用户的指令并据此对所述自动交易模块 的工作进行配置。
[0009] 优选地,所述自动交易模块还包括寄存器单元;所述策略配置模块通过所述寄存 器单元对所述自动交易模块的工作参数进行配置。
[0010] 优选地,所述逻辑运算单元具有多个逻辑运算公式,能够根据市场行情信息计算 出多个衍生值;所述条件判决单元判决与所述多个衍生值相应的多个判决结果的组合;所 述指令集单元预存有判决结果组合与指令集的对应关系,根据所述条件判决单元的判决结 果组合执行相应的指令集。
[0011] 优选地,所述自动交易模块还包括行情格式转换单元,将所述自动交易模块收到 的市场行情信息转换为固定格式的市场行情信息。
[0012] 本发明还提供一种金融产品自动交易方法,包括:信息接收步骤,第一网络协议处 理单元接收含有市场行情数据的网络数据包,并将所述网络数据包按照网络协议解析为市 场行情数据包发送给所述自动交易模块;交易处理步骤,自动交易模块将所述市场行情数 据包进行处理生成交易信息;信息发送步骤,第二网络协议处理单元接收所述信息处理步 骤中生成的交易信息,将交易信息封装为网络数据包发送到交易市场。
[0013] 优选地,还包括:市场行情转换步骤,市场行情转换单元按照市场数据协议从所述 第一网络协议处理单元解析出的市场行情数据包中解析出市场行情数据并发送给所述自 动交易模块。
[0014] 优选地,还包括:下单步骤,下单模块按照所述自动交易模块的交易信息控制下单 并将下单信息发送给所述第二网络协议处理单元。
[0015] 优选地,所述交易处理步骤包括逻辑运算步骤、条件判决步骤和指令集步骤;所述 逻辑运算步骤,逻辑云端单元根据市场行情信息进行逻辑运算,计算出衍生值;所述条件判 决步骤,条件判决单元根据预存的判决条件判决衍生值得到判决结果;所述指令集步骤,指 令集单元预存有判决结果与指令集的对应关系,所述指令集单元根据所述条件判决单元的 判决结果执行相应的指令集。
[0016] 优选地,还包括策略配置步骤,策略配置模块接受用户的指令并据此对所述自动 交易模块的工作进行配置。
[0017] 优选地,所述交易处理步骤还包括存储步骤;寄存器单元能够存储所述策略配置 模块对所述自动交易模块的工作参数进行配置的数据信息。
[0018] 优选地,在所述逻辑运算步骤中,所述逻辑运算单元具有多个逻辑运算公式,能够 根据市场行情信息计算出多个衍生值;在所述条件判决步骤中,所述条件判决单元判决与 所述多个衍生值相应的多个判决结果的组合;在所述指令集步骤中,所述指令集单元预存 有判决结果组合与指令集的对应关系,根据所述条件判决单元的判决结果组合执行相应的 指令集。
[0019] 优选地,还包括行情格式转换步骤,行情格式转换单元将所述自动交易模块收到 的市场行情信息转换为固定格式的市场行情信息。
[0020] 本发明采用一种全新的架构,即将交易逻辑运行在硬件(FPGA)中,并且通过硬件 本身完成网络协议和市场协议的处理,从而避免数据从网络到CPU,再从CPU到网络所造成 的延迟,同时也避免使用CPU处理网络数据,从而解决CPU占用和延迟性能不稳定等问题。 通过将交易算法所需的运算公式集成到硬件,可W利用硬件高速并行的特点,多个运算公 式并行处理,实现极高的运算速度,并且通过映射的方式将运算结果和需要执行的指令对 应,也是利用硬件的特性,实现极低延迟的触发。
【附图说明】
[0021] 图1为本发明实施方式设及的金融产品自动交易系统的结构示意图; 图2为本发明实施方式设及的金融产品自动交易系统的自动交易模块的结构示意图; 图3为本发明实施方式设及的金融产品自动交易的系统处理流程图。
【具体实施方式】
[0022] 下面根据附图所示实施方式阐述本发明。此次公开的实施方式可W认为在所有方 面均为例示,不具限制性。本发明的范围不受W下实施方式的说明所限,仅由权利要求书的 范围所示,而且包括与权利要求范围具有同样意思及权利要求范围内的所有变形。
[0023] 图1为本发明所设及的金融产品自动交易系统的结构示意图。所述金融产品自动 交易系统能够接收市场信息端1~Μ的网络数据包,并对接收到的市场行情数据进行分析, 分析出交易信息后根据分析的交易信息进行下单,并将下单信息发送至市场交易端1~Ν。 所述的自动交易系统包括网络协议处理模块1、市场行情转换模块2、自动交易模块3 W及 下单模块4。所述网络协议处理模块1能够按照网络传输协议对接收到的网络数据包进行 解析或者对相关的数据进行组包。所述市场行情转换模块2能够按照特定的市场数据协议 对网络协议处理模块1解析出的数据包进行解析。所述自动交易模块3能够对市场行情数 据进行处理,得到交易指令或指令集,并通过下单模块4进行下单。
[0024] 所述网络协议处理模块1具有第一网络协议处理模块11和第二网络协议处理模 块12,主要处理MAC层(数据链路层)和TCP/IP层(网络层)的协议,实现网络数据包的解析 或相关数据的组包。所述第一网络协议处理模块11包含多个第一网络协议处理单元111, 分别连接市场信息端1~Μ和市场行情转换模块2,该模块主要将市场端输入的含有市场行 情数据的网络数据包按照网络层的传输协议进行解析,解析出含有市场行情数据的市场行 情数据包,并将解析出的数据包发送至市场行情转换模块2。第二网络协议处理模块12包 含多个第二网络协议处理单元121,分别连接市场交易端1~Ν和下单模块4,该模块主要 将下单模块4的下单消息按照相应的网络协议进行组包,并将组包后的网络数据包通过网 络发送至市场交易端1~Ν。
[0025] 所述市场行情转换模块2内部存储有特定的市场数据协议,能够按照存储的市场 数据协议对接收到的第一网络协议处理模块11发送的市场行情数据包进行解析,解析出 具体的市场行情数据,并将解析出的市场行情数据发送至自动交易模块3中;该模块具有 与多个第一网络协议处理单元对应的多个市场行情转换单元21。
[0026] 所述自动交易模块3能够按照一定的交易算法对接收的市场行情数据进行处理, 获取具有一定规则的交易指令或指令集。图2为本发明实施方式设及的金融产品自动交易 系统的自动交易模块的结构示意图。如图2所示,所述自动交易模块3包括数据格式转换单 元31、逻辑运算单元32、条件判决单元33、指令集单元34 W及寄存器单元35。其中,数据 格式转换单元31内部自定义有特定的数据结构,能够将不同格式的市场行情数据按照该 数据格式转换单元31内部存储的特定数据结构进行转换并进行存储,该单元还能够根据 实时行情更新当前存储的数据;同时该数据格式转换单元31能够按照策略配置模块5内的 配置协议对市场行情数据进行过滤,过滤出符合配置协议的市场行情数据名单。逻辑运算 单元32为由公式集(公式1~P)组成的单元,公式的运算逻辑是事先写入FPGA硬件中的, 该单元能够将输入的市场行情数据按照公式集进行相应的逻辑运算,并将运算结果发送至 条件判决单元33 ;其中所述的公式集中的参数W及运算所需的数据可W通过用户策略配 置获得,也可W从数据格式转换单元31中读取。条件判决单元33中可存储判决值和判决 条件,该单元能够将判决值与逻辑运算单元32运算的结果按照一定的判决条件进行对比 得到判决结果,将该判决结果映射成一个二进制代码(即二进制代码的各个比特值对应判 决条件的结果),并将该二进制代码发送至指令集单元34中;在该过程中所述判决条件为 〉、=或者 <,判决的结果为0或者1 (表示条件满足与否),在该过程中使用的判决值可W是 实时配置的,也可W是事先配置好的。指令集单元34中存储有一个指令集表,该指令集表 中存储有多个下单指令集(指令集1~X),每个下单指令集对应一个二进制代码,该指令集 单元34将接收到的条件判决单元33发送的二进制代码与存储的下单指令集进行匹配,当 接收的二进制代码与某一个下单指令集完全匹配时,那么触发该下单指令集对应的下单指 令(指令1~Q),并将该触发的下单指令集信息发送至下单模块4 ;所述的每个下单指令集 对应一个或者多个下单指令,当某个下单指令集被触发后,该下单指令集所对应的下单指 令将被执行(指令的功能是事先写入FPGA系统中的),如该被执行的下单指令可W是对某种 金融产品进行买或者卖、买卖方向、价格、数量等指令。寄存器单元35分别与数据格式转换 单元31、逻辑运算单元32、条件判决单元33、指令集单元34 W及所述自动交易系统的外设 部件(策略配置模块5)相连接,该寄存器单元35能够存储策略配置模块5所配置的参数等 数据,并将存储的参数等数据配置到与其相连接的单元中。
[0027] 下单模块4包括多个与第二网络协议处理单元相对应的下单单元41,用户可根据 指令集单元34触发的下单指令集的指令进行下单,每个下单单元将用户输入的下单指令 按照对应的市场数据协议生成正确的下单消息,并通过网络发送至市场交易端1~N。在金 融产品交易过程中下单设及的具体信息包括:标的、价格和数量。
[0028] 所述的自动交易系统的网络协议处理模块1、市场行情转换模块2、自动交易模块 3 W及下单模块4基于FPGA硬件,所述的网络协议处理模块1、市场行情转换模块2、自动交 易模块3 W及下单模块4的功能全部由FPGA硬件逻辑电路实现,如网络协议解析、市场数 据协议处理W及交易逻辑等,运样能够使系统获得极低的延迟。操作人员通过FPGA控制部 件(未图示)将上述的各模块的功能对应的代码等巧日网络协议解析、市场数据协议处理W 及交易逻辑)烧写入FPGA硬件逻辑电路的相应部分,用于实现上述的功能。此外,操作人员 还可W通过策略配置模块5对FPGA硬件电路的功能进行改写,通过所述FPGA控制部件(未 图示)重新烧写入所需实现的功能对应的代码。
[0029] 本发明设及的金融产品自动交易系统还包括策略配置模块5,所述策略配置模块 5具有输入输出单元51和信息计算单元52,该模块内部存储有一定的配置协议,操作人员 可W通过输入输出单元51查看或监视系统内部数据的处理结果,操作人员还可W通过该 单元手动输入硬件系统各单元或模块所需的公式参数、指令参数等信息对硬件部分进行参 数等策略配置,策略配置按照该模块内存储的配置协议去配置的。信息计算单元52能够计 算硬件系统所需的参数等信息。同时硬件系统能够将按照策略配置模块5配置的状态反馈 给策略配置模块5,使操作者能够查看系统状态。图3为本发明所设及的金融产品自动交易 系统的处理流程图。
[0030] 首先,市场交易端1~N将市场行情数据经过网络发送至网络协议处理模块1,网 络协议处理模块1接收到含有市场行情数据的网络数据包后按照一定的网络协议进行解 析,解析为市场行情数据包W及其他的信息,并将解析出的市场行情数据包发送至市场行 情转换模块2 (步骤S1)。市场行情转换模块2将接收到的市场行情数据包按照特定的市 场数据协议解析出具体的市场行情数据,并将该市场行情数据发送至自动交易模块3 (步骤 S2)。
[0031] 自动交易模块3下的数据格式转换单元31按照数据格式转换单元31内部存储的 既定的数据结构将接收到的市场行情数据进行转换,将不同格式的市场行情数据转换为相 同格式的市场行情数据,同时该数据格式转换单元31按照操作人员通过策略配置模块5的 配置协议配置的策略过滤出符合要求的市场行情数据的名单,W提高自动交易模块3访问 市场行情数据的效率(步骤S3)。具体的,数据格式转换单元31按照存储的数据结构将市 场行情数据转换固定的格式的数据,例如可W转换为Typel和Type2两种结构的行情信息, Typel包括levell (当前市场上最佳的买/卖价格,W及对应的委托量等)、level2 (包括 多档行情,比如上海证券交易所的level2支持10档行情,包括买卖队列,每一档的买/卖 价格,委托量,委托总量,加权价格等数据)W及timesale (timesale数据是指最新的成交 信息,比如某只股票最新的成交价格、成交量等信息)的行情信息;Type2包括金融产品代 码(symbol),交易所,金融产品类型,channel id, marketmaker id等信息,W及一些内部数 据结构,可W用来存储时间戳和交易所特有的某些数据信息;同时数据格式转换单元31将 上述转换格式后的市场行情数据存储于该单元内部的存储部件(未图示)中,并将上述的市 场行情数据反馈至策略配置模块5的输入输出单元51,W便操作人员能够及时了解市场行 情。
[0032] 市场行情数据格式转换后,逻辑运算单元32进行公式运算,计算衍生值,然后将 逻辑运算的衍生值发送至条件判决单元33中,所述的公式的逻辑运算是事先写入FPGA硬 件中的(步骤S4)。具体的,逻辑运算单元32内部含有多个运算公式(公式1~P),所述运 算公式为关于市场行情指令的公式,每一个运算公式结果对应一个衍生值。根据市场行情 数据的不同所述衍生值的计算及其公式的参数等数据的输入也不同:根据市场行情数据的 类型的不同,衍生值的计算可分为Basket类型计算方式和非Basket类型计算方式;由于 操作人员可W通过策略配置模块5实时的监控市场行情数据,操作人员可W根据监控到的 市场行情数据对所述运算公式的参数和数据进行策略配置(例如该配置数据可W为Types 类型,Type3类型包括金融产品代码、交易所W及价格等信息);所述运算公式的参数和数据 也可W由逻辑运算单元32在数据格式转换单元31中直接读取(例如可W读取Typel或者 Type2类型的数据)。当公式的逻辑运算结束得到对应衍生值,逻辑运算单元32将该运算的 衍生值发送至条件判决单元33。
[0033] 条件判决单元33接收到逻辑运算单元32的衍生值,将衍生值与条件判决单元33 内部存储的判决值进行对比(每一个衍生值对应条件判决单元33中的一个判断条件),得到 判决结果,并将判决结果映射为二进制代码发送至指令集单元34(步骤S5)。衍生值根据设 定的判决条件(判决条件为〉、< 或=)与判决值进行对比,判决的结果为是否满足判决条件, 如可W将满足判决条件的判决结果设置为1,不满足判决条件的判决结果设置为0,最终每 一个衍生值对应一个二进制码的判决结果,多个衍生值对应多个二进制码的判决结果,将 上述多个判决结果(0或者1)组成为二进制代码,并将该二进制代码发送至指令集单元34 中。
[0034] 指令集单元34将接收到的二进制代码与指令集单元34中存储的每个下单指令集 对应的二进制代码进行对比,如果所述接收的二进制代码与某个下单指令集中的二进制代 码完全相同,则系统触发该下单指令集,并执行该下单指令集对应的下单指令;如果所述接 收的二进制代码与某个下单指令集中的二进制代码不同,则不执行任何指令(步骤S6)。指 令集单元34中存储有指令集表,指令集表中存储有多个下单指令集(每个指令集对应一组 二进制代码),每个下单指令集中存储有多个指令巧日每个下单指令集中包括16个下单指 令,其中可W包括8个Basket类型的指令和8个非Basket类型(单标)的指令);所述指令 的功能是事先烧写入FPGA硬件中的,该下单指令可W是对某金融产品进行买或者卖、买卖 方向、买卖价格、买卖数量等。当指令集单元34接收到的二进制代码与指令集表中某个下 单指令集对应的二进制代码相同时,就触发该指令集表中的下单指令集,将该执行指令集 表中对应的下单指令发送至下单模块4 ;所述的上述指令集可W根据市场行情数据决定, 也可W由操作人员通过策略配置模块5进行配置决定。
[0035] 下单指令发出后,下单模块4接收到该下单指令,该模块会按照特定的市场数据 协议生成正确的下单消息,并将该下单消息发送至第二网络协议处理模块12中(步骤S7)。 第二网络协议处理模块12按照对应的网络协议将上述正确的下单消息组包为网络数据 包,并将组包后的网络数据包由网络发送至市场信息端1~Μ (步骤S8)。
[0036] 所述基于FPGA的应用于金融产品自动交易系统还包括计数器(未图示),在所述系 统的指令集单元34上设置计数器,使用计数器控制下单次数,计数器的值由操作人员通过 策略配置模块5配置。当一个所需条件组合中的条件满足时,通过映射关系找到一个指令 集,该指令集会有一个下单计数器,如果计数器的值大于1就去执行下单指令,并将计数器 的值递减。当该指令集的计数器为零的时候,该指令集的所有下单指令都不执行。
[0037] 本发明所例示的每个下单指令集中包括16个下单指令,其中可W包括8个Basket 类型的指令和8个非Basket类型(单标)的指令,但不仅限于此。下单指令集中的下单指令 数可W多于或少于16个,其中Basket类型的指令和非Basket类型的指令也不分别限定于 8个。
[0038] 本发明所设及的条件判决单元将逻辑运算单元得到的衍生值在判决条件下与判 决值进行对比,并将判决结果映射为二进制代码,但不仅限于此。可W采用其他的判决方 式。
[0039] 本发明所述的自动交易系统的网络协议处理模块1、市场行情转换模块2、自动交 易模块3 W及下单模块4都基于FPGA的硬件系统,但不仅限于此。可W仅将自动交易模块 3设置为基于FPGA硬件,网络协议处理模块1、市场行情转换模块2 W及下单模块4中的全 部或者部分可W不是基于FPGA硬件而是基于软件设计的。同样,自动交易模块3也可W基 于软件设计,其他模块中的部分或全部基于FPGA硬件。
[0040] 下面举例说明本发明设及的自动交易系统的处理的过程。
[00川例1 :Basket类型的金融产品的处理的举例说明 如果数据格式转换单元31接收到的市场行情数据为一揽子的Basket类型行情数据 时,需要计算Basket类型的衍生值。例如实现期现套利时,如沪深300股指期现全复制套 利,需要计算Basket类型的衍生值。具体过程如下。
[0042] Basket类型衍生值的计算公式可W为:
,该公式被事先烧写 入硬件中。
[0043] 在计算期现套利的Basket类型的衍生值时,设置两个阔值分别计算Basket衍生 值,每个Basket -共有302个单项式累加,序号303之后的项的权重值需置零;两阔值下的 两个衍生值沁Κι和沁K2的计算公式可分别设置为:
[0044] 1配置协议和过滤名单 1. 1过滤出沪深两市的300只股票的levell、level2和timesale行情数据(Typel); 1. 2过滤出股指期货主力合约IF1406 (IF1406是14年6月到期,该合约已经过期,该 处只是用作示例)的levell和timesale行情数据(Typel); 1. 3操作人员通过策略配置模块5会提供的一个全局变量(Type3)放在寄存器单元35 内,参与Basket衍生值计算。
[0045] 2计算两个Basket类型衍生值沁Κι和沁Κ2(分别为两个不同阔值下的期现价差) 2. 1确定X 2. 1. 1 xi到Χ3。。为300只股票的行情价格,股票价格的取值分为Ξ类:第一类的股票取 timesale价格,第二类的股票取levell bid价格,第Ξ类的股票取levell ask价格; 2. 1. 2 X301 为 IF1406 的 ask 1 的价格; 2. 1. 3 X3e2为操作人员通过策略配置模块5配置的存储于寄存器单元35中的基础值; 2. 2 端]配置 2. 2. 1股票的偏移量到o//sei3。。)分为两类,上证所的股票offset为3个该 股票最小价格变动单位,深证所的股票为2个该股票最小价格变动单位; 2. 2. 2 为IF1406的价格的偏移值,为-1个股指期货的最小价格表动单位; 2. 2. 3 口/&6与。2是寄存器单元35中存储的基础值对应的偏移量,配为零; 2. 3祕]配置 2.3. 1股票的权重(ri到巧。。)均为负值,是策略计算好的每个股票对应的权重; 2. 3. 2巧。1是IF1406的权重,配为1 ; 2. 3. 3巧。2是寄存器单元35中存储的基础值的权重,配为1 ; 沁常数C的配置:20,沁^^的常数寮'为:30 (常数C是为了方便将沁唯与ο进行 比觀; 2. 4计算衍生值沁Κι与沁Κ2。
[004引 3配置判断条件:条件1 :沁^1〉0、条件2 :沁岭0。
[0047] 4配置映射和下单指令 4. 1逻辑条件到下单指令集的映射配置:有两个不同下单指令集InstructionSetA和 InstructionSetB,建立映射关系:满足条件1且不满足条件2时映射到InstructionSetA, 两个条件都满足时映射到InstructionSetB,其它情况不执行下单; 4. 2下单指令的配置: 4. 2. 1 InstructionSetA中有一个Basket下单指令,一个Basket最大下单次数配置为 1,硬件记录该策略在该指令集中的一个Basket上的下单次数。配置该Basket下单指令: 4. 2. 1. 1标的:完全由策略配置确定,卖出期货IF1406,买入沪深两市300只股票; 4. 2. 1. 2下单价格:期货W当前bidl价格减去1个股指期货最小价格变动单位 (0. 2),股票每只股票的当前askl价格; 4. 2. 1. 3数量:期货是固定值1时,每只股票的数量由信息计算单元53计算,并W Type3的消息提供给硬件; 4. 2. 2 Inst;ructionSe1:B 与 InstructionSetA 的配置上有两点不同: 4. 2. 2. 1股票的下单价格更积极一些,W股票当前askl的价格加1个股票的最小价格 变动单位; 4. 2. 2. 2 Basket的最大下单次数配置为2,需注意:两个指令集中篮子的标的都相同, 但最大下单次数不同,下单次数的标记不能只依据标的来记录; 用户可W自己定义使用一个衍生值沁域者多个衍生值沁^^",针对basket类型的公式, 可W支持8个衍生值沁K,用户自己根据需要定义运1-8个值分别要满足什么条件,才能触 发后面的指令。
[004引例2 :非Basket类型的金融产品的处理的举例说明 如果数据格式转换单元31接收到的市场行情数据仅为一股股票的行情数据,那么需 要计算非Basket类型的衍生值,可W计算同一金融产品代码(symbol)的16个非Basket衍 生值(分别是沁1^1~沁%)。非basket类型的情况,使用的公式和basket类型不太一样, 支持16个ofeHl计算,其中公式中的参数和数据也同样可W从typel,type2消息获取,或 者通过type3消息由用户配置。
[004引具体过程如下。
[0050] 非Basket类型衍生值的计算公式可W为公式1~公式3 :
字符串比较:〇feKy=st;rcmp (stringl, strings) 公式 3。
[0051] 1配置协议和过滤名单: 1· 1获得所有纳斯达克和纽交所的股票的levell、level2和timesale行情数据 (Typel); 1. 2获得所有纳斯达克的股票转换为内部消息(Type2)。
[0052] 2配置衍生值计算:衍生值都是同一个金融产品代码(symbol)的市场行情数据 转换的Type2的内部消息: 施Ki=(i32_valuel) - 92800 dev^- (i32_valuel) - 92935 dev^^ (i32_value2) - 69 dev^ (i32_value3) - 88 施Ks=(i32_value4) - 30000 施Ke=(i64_valuel) - 5000000 施K尸(i32_value巧-66 施K8=(i32_value6) - 50 施 K9=(i32_value7) - 100 施KiQ=(i32_value8) - 1000 ^Kii=250*abs(i32_value9-i32_valuel0) ^Ki2=150*abs(i32_value9-i32_valuel0) 施Ki3=5*(i32_valuell)- (i32_valuel2) 施Ki4=abs (i32_valuel5-i32_valuel0) - 5本abs (i32_valuel6-i32_valuel0) 二strncmp(string_valuel, "AD民",3) ^Ki6=strncmp(string_value2,"ACW",3)D
[0053] 3配置判断条件: 施 Κι〉二 0 dev2 < 0 施]? 二二 0 施 二 0 施 Ks〉二 0 施 Ke〈二 0 dev]〉二 Q 施 Ks !二 0 施 Kg〉二 0 施 KiQ〉二 0 施 〈二 0 施 Κ?2〈二 0 施 Κ?3〈二 0 施 Κ?4〉二 0 施 Κ?5 二 0 施 VlQ 二二 0。
[0054] 4配置映射和下单指令: 4. 1当16个衍生值条件都满足判断条件时,执行该指令集,指令集中只有一个金融产 品代码(symbol)指令,在一个金融产品代码(symbol)上的最大下单次数为1 ; 4. 2该指令的配置为: 4. 2. 1标的:当转换的Type2内部消息的金融产品代码(symbol)域根据一个int32的 域得出交易方向(买入或卖出); 4. 2. 2价格:根据不同交易所分别计算,计算数据来源于Type2内部消息和通过策略 配置模块 5 配置的参数:in1:32_value7+ int32_value8*weighti+in1:32_value*weight2,然 后转换成实际浮点数的价格;(硬件计算价格的公式
4. 2. 3数量:由信息计算单元53计算,通过策略配置模块5提供给硬件。
[00巧]例3 :选择期权平价(put-call parity)的金融产品的处理的举例说明 一个call option和put option期权配对讨目同到期日,相同执行价、相同标的),由期 权行情对应标的行情所计算的一个衍生值,运种对应关系可W不用硬件去查询获取,而是 由策略配置模块5配置好具体的对应关系的期权。
[0056] 该期权平价类型的衍生值的计算公式可W为:
[0057] 1配置协议和过滤名单: 1. 1获取所关注的Λ对期权合约的levell和timesale行情数据(Typel); 1. 2获取期权合约所对应的标的股票的levell和timesale行情数据(Typel)。
[0058] 2配置衍生值计算:(衍生值计算设及配对的两个期权合约的行情价) 乂1为标的股票的timesale价格; ^"2为 put option 的 timesale 价格; ^^为call和put的相同执行价; call option 的 timasale 价格; 巧由信息计算单元53计算出来的值配置,其它权重值配置为1 ; C是一个价差阔值,配置为5。
[0059] 3配置判断条件:条件1沁Κι〉0。
[0060] 4配置映射和下单指令: 4. 1下单指令集只有一个,条件1满足时执行,指令集中有1个Basket指令,在一个 Basket上的最大下单次数为1 ; 4. 2 Basket配置为当前处理的配对的期权和对应的股票标的; 数量是通过策略配置模块5配置的,价格由硬件取各个标的的行情加偏移确定。
[0061] 本发明设及的实例说明中,例1中Basket类型市场行情数据需计算2个的衍生 值,对应2个具体的下单指令;例2中非Basket类型的市场行情数据需计算16个衍生值, 对应16个具体的下单指令;例3中期权的市场行情数据只计算1个衍生值,对应1个具体 的下单指令,但不仅限于此。上述的不同类型的市场行情数据计算的衍生值数量可W由操 作人员设定,不仅限于上述的2个、16个和1个。
【主权项】
1. 一种金融产品自动交易系统,包括: 输入输出模块,用于接收市场行情数据并解析为市场行情信息发送给自动交易模块, 以及根据自动交易模块生成的交易信息完成交易;以及 自动交易模块,用于接收所述市场行情信息并根据所述市场行情信息生成交易信息; 其中,所述输入输出模块和自动交易模块的至少其中之一基于FPGA逻辑电路实现。2. 根据权利要求1所述的自动交易系统,其特征在于: 所述输入输出模块包括第一网络协议处理单元和第二网络协议处理单元; 所述第一网络协议处理单元接收含有市场行情数据的网络数据包,并将所述网络数据 包按照网络协议解析为市场行情数据包发送给所述自动交易模块; 所述第二网络协议处理单元接收所述自动交易模块生成的交易信息,将交易信息封装 为网络数据包发送到交易市场。3. 根据权利要求2所述的自动交易系统,还包括: 市场行情转换单元,位于所述第一网络协议处理单元与自动交易模块之间,用于按照 市场数据协议从所述第一网络协议处理单元解析出的市场行情数据包中解析出市场行情 数据并发送给所述自动交易模块;以及 下单模块,位于所述自动交易模块与第二网络协议处理单元之间,用于按照所述自动 交易模块的交易信息控制下单并将下单信息发送给所述第二网络协议处理单元。4. 根据权利要求1~3中任一项所述的自动交易系统,其特征在于: 所述自动交易模块包括逻辑运算单元、条件判决单元和指令集单元; 所述逻辑运算单元能够根据市场行情信息进行逻辑运算,计算出衍生值; 所述条件判决单元根据预存的判决条件判决衍生值得到判决结果; 所述指令集单元,预存有判决结果与指令集的对应关系,根据所述条件判决单元的判 决结果执行相应的指令集。5. 根据权利要求4所述的自动交易系统,其特征在于: 还包括策略配置模块,用于接受用户的指令并据此对所述自动交易模块的工作进行配 置。6. 根据权利要求5所述的自动交易系统,其特征在于: 所述自动交易模块还包括寄存器单元; 所述策略配置模块通过所述寄存器单元对所述自动交易模块的工作参数进行配置。7. 根据权利要求4所述的自动交易系统,其特征在于: 所述逻辑运算单元具有多个逻辑运算公式,能够根据市场行情信息计算出多个衍生 值; 所述条件判决单元判决与所述多个衍生值相应的多个判决结果的组合; 所述指令集单元预存有判决结果组合与指令集的对应关系,根据所述条件判决单元的 判决结果组合执行相应的指令集。8. 根据权利要求4所述的自动交易系统,其特征在于: 所述自动交易模块还包括行情格式转换单元,将所述自动交易模块收到的市场行情信 息转换为固定格式的市场行情信息。9. 一种金融产品自动交易方法,包括: 输入输出步骤,接收市场行情数据并解析为市场行情信息供自动交易步骤使用,以及 根据自动交易步骤生成的交易信息完成交易;以及 自动交易步骤,用于接收所述市场行情信息并根据所述市场行情信息生成交易信息; 其中,所述输入输出步骤和自动交易步骤的至少其中之一基于FPGA逻辑电路实现。10. 根据权利要求9所述的自动交易方法,其特征在于: 所述输入输出步骤包括第一网络协议处理步骤和第二网络协议处理步骤; 所述第一网络协议处理步骤接收含有市场行情数据的网络数据包,并将所述网络数据 包按照网络协议解析为市场行情数据包; 所述第二网络协议处理步骤接收所述自动交易步骤生成的交易信息,将交易信息封装 为网络数据包发送到交易市场。11. 根据权利要求10所述的自动交易方法,还包括: 市场行情转换步骤,用于按照市场数据协议从所述第一网络协议处理步骤解析出的市 场行情数据包中解析出市场行情数据;以及 下单步骤,用于按照所述自动交易步骤生成的交易信息控制下单,所述下单信息在所 述第二网络协议处理步骤中被发送到交易市场。12. 根据权利要求9~11中任一项所述的自动交易方法,其特征在于: 所述自动交易步骤包括逻辑运算步骤、条件判决步骤和指令生成步骤; 在所述逻辑运算步骤中,根据市场行情信息进行逻辑运算,计算出衍生值; 在所述条件判决步骤中,根据预存的判决条件判决衍生值得到判决结果; 在所述指令生成步骤中,根据预存的判决结果与指令集的对应关系执行相应的指令 集。13. 根据权利要求12所述的自动交易方法,其特征在于: 还包括策略配置步骤,用于接受用户的指令并据此对所述自动交易步骤的工作进行配 置。14. 根据权利要求13所述的自动交易方法,其特征在于: 在所述策略配置步骤中,通过寄存器对所述自动交易步骤的工作参数进行配置。15. 根据权利要求12所述的自动交易方法,其特征在于: 在所述逻辑运算步骤中,使用多个逻辑运算公式根据市场行情信息计算出多个衍生 值; 在所述条件判决步骤中,判决与所述多个衍生值相应的多个判决结果的组合; 在所述指令生成步骤中,根据预存的判决结果组合与指令集的对应关系执行相应的指 令集。16. 根据权利要求12所述的自动交易方法,其特征在于: 所述自动交易步骤还包括行情格式转换步骤,在所述行情格式转换步骤中将收到的市 场行情信息转换为固定格式的市场行情信息。
【文档编号】G06Q40/04GK105989538SQ201510448704
【公开日】2016年10月5日
【申请日】2015年7月28日
【发明人】柳峰
【申请人】盛立金融软件开发(杭州)有限公司