CN113065954A - 基于低延迟复杂事件的做市策略引擎系统 - Google Patents
基于低延迟复杂事件的做市策略引擎系统 Download PDFInfo
- Publication number
- CN113065954A CN113065954A CN202011553325.4A CN202011553325A CN113065954A CN 113065954 A CN113065954 A CN 113065954A CN 202011553325 A CN202011553325 A CN 202011553325A CN 113065954 A CN113065954 A CN 113065954A
- Authority
- CN
- China
- Prior art keywords
- strategy
- low
- thread unit
- instance
- engine
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
- G06F8/315—Object-oriented languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/06—Asset management; Financial planning or analysis
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Development Economics (AREA)
- General Business, Economics & Management (AREA)
- Technology Law (AREA)
- Strategic Management (AREA)
- Marketing (AREA)
- Economics (AREA)
- Entrepreneurship & Innovation (AREA)
- Game Theory and Decision Science (AREA)
- Human Resources & Organizations (AREA)
- Operations Research (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明公开了基于低延迟复杂事件的做市策略引擎系统,确保运行速度的同时极大提升策略编写的便利度,为速度与易用性间的矛盾提供解决方案。其技术方案为:使用基于LLVM的CEP引擎替换传统的C++引擎,CEP引擎提供了一种易于学习的语言接口,同时结合面向过程性语言的顺序、分支、循环结构以及类SQL语言的灵活多变特性,使其能够快速响应规则(即量化策略)的变化,降低二次开发和日常维护成本;同时通过LLVM实现微秒级复杂流数据处理,从而全面解决金融期货行业对流式数据处理低延迟、高灵活性的要求。本发明还提供了自定义的领域特定语言DSL用于策略编写。
Description
技术领域
本发明涉及金融做市商的做市策略引擎系统,具体涉及基于低延迟复杂事件处理技术实现的具备低延迟特点的做市策略引擎系统。
背景技术
复杂事件处理(Complex Event Processing,下文简称CEP)是一种基于动态环境中事件流的分析技术,事件在这里通常是有意义的状态变化,通过分析事件间的关系,利用过滤、关联、聚合等技术,根据事件间的时序关系和聚合关系制定检测规则,持续地从事件流中查询出符合要求的事件序列,最终分析得到更复杂的复合事件。CEP适合的场景包括实时风险管理、实时交易分析、网络诈欺、网络攻击、市场趋势分析等等。
期货市场做市商制度是指在期货市场上,为维持市场的流动性、满足公众投资者的投资需求,由具备一定实力和信誉的期货经营机构作为指定交易商,不断地向市场报出所负责期货(期权)合约的买卖价格,并在该价位上接受投资者的买卖要求,以其自有账户与投资者进行期货交易。
程序化交易是由计算机代替人脑执行操作,将交易员有规律有逻辑的手动操作策略,通过计算机程序实现自动化交易的操作系统。简单来说,就是让计算机代替交易员的主观交易,让系统根据策略对数据的自动统计和判断,自主的执行交易指令。
由于做市商普遍有流动性的要求,因此做市商天然适合快速准确的程序化交易。为了满足程序化要求,做市商通常会构建一套计算机软件系统用于其量化策略的执行与分析。
从速度和易用性的角度,可以将现有的策略引擎大致分为两类
1.以速度见长
此类引擎大多提供C++接口用于编写量化策略,但由于C++本身的难度、学习曲线、调试难度,此类策略的编写往往需要专业的IT人员来进行,对于主要是从事交易业务的做市商来说,这显然是一个不小的负担。
2.以易用性见长
此类引擎大多将底层封装后提供python、matlab之类的接口,对于非计算机出身的基金经理来说,这显然更容易接受一点;但随之而来的就是程序运行速度的降低,而在金融市场,速度就意味着胜率。
因此,目前业界亟待一种技术来克服上述的易用性和速度快慢之间的矛盾,全解解决金融行业尤其是其中的期货行业对流式数据处理低延迟、高灵活性的要求。
发明内容
以下给出一个或多个方面的简要概述以提供对这些方面的基本理解。此概述不是所有构想到的方面的详尽综览,并且既非旨在指认出所有方面的关键性或决定性要素亦非试图界定任何或所有方面的范围。其唯一的目的是要以简化形式给出一个或多个方面的一些概念以为稍后给出的更加详细的描述之序。
本发明的目的在于解决上述问题,提供了一种基于低延迟复杂事件的做市策略引擎系统,确保了运行速度的同时又极大提升了策略编写的便利度,为速度与易用性之间的矛盾提供了很好的解决方案。
本发明的技术方案为:本发明揭示了一种基于低延迟复杂事件的做市策略引擎系统,系统包括:
订阅线程单元,用于订阅定价模块、交易风控模块、上下场服务模块、前置查询模块产生的消息,实时写入异步消息队列中;
发布线程单元,用于向交易风控模块发布报单/报价请求,向前置查询模块发送策略运行状态消息;
应用线程单元,用于处理订阅数据并更新内存数据库,同时驱动策略实例并为策略实例提供数据获取接口,其中在应用线程单元内运行内部的低延迟复杂事件引擎,应用线程单元将从订阅线程单元收到的消息发送给低延迟复杂事件引擎,低延迟复杂事件引擎执行策略逻辑所对应的领域特定语言代码后,将代码执行结果通过发布线程单元发送出去;
实例管理线程单元,用于处理策略实例配置数据,管理策略实例的运行状态;
主线程单元,用于创建业务处理线程并确保程序不会退出;
看门狗单元,用于监控策略实例的运行状态。
根据本发明的基于低延迟复杂事件的做市策略引擎系统的一实施例,订阅线程单元分别与应用线程单元、看门狗单元建立单向传输,应用线程单元分别和发布线程单元、看门狗单元建立单向传输,发布线程单元和看门狗单元建立单向数据传输。
根据本发明的基于低延迟复杂事件的做市策略引擎系统的一实施例,应用线程单元内独立维护一个内存数据库,内存数据库通过实时读取流中的消息来构建,内存数据库用于维护行情、理论价、报单、报价、成交、持仓、参数在内的数据;并提供统一的数据获取接口供策略实例查询。
根据本发明的基于低延迟复杂事件的做市策略引擎系统的一实施例,实例管理线程单元所配置的启动策略实例是采用轮训机制选取应用线程,应用线程单元加载并运行策略实例;实例管理线程单元所配置的暂停策略实例是通知应用线程,暂停目标策略实例的执行。
根据本发明的基于低延迟复杂事件的做市策略引擎系统的一实施例,低延迟复杂事件引擎配置为执行以下的处理:
读取策略实例的脚本文件,将脚本文件加载到内存后,经过词法解析、语法解析、语法检查、类型注册推导、LLVM代码生成的步骤,最后将脚本文件转化为保存在内存中的函数代码段,并持有对应的函数指针待后续执行;
实时接收行情、参数在内的消息,低延迟复杂事件引擎根据消息类型,调用对应的函数指针;
待函数指针处理完消息并产生输出消息后,低延迟复杂事件引擎根据输出消息的类型,调用做市策略引擎系统预先注册好的不同类型的回调函数,完成消息通知。
根据本发明的基于低延迟复杂事件的做市策略引擎系统的一实施例,策略实例的脚本文件由领域特定语言组件来支持类C风格的事件模式定义,包括:支持类C的基础数据类型,支持类C的变量定义、引用、分支、循环、函数,支持无缝调用外部C函数,支持类Java风格的包管理机制。
根据本发明的基于低延迟复杂事件的做市策略引擎系统的一实施例,在实时流事件处理方面,领域特定语言组件支持监听器,每个监听器允许声明私有的成员函数和成员变量,通过lambda表达式实现对指定事件流的监听处理;同时内嵌基于内存数据库的SQL类语句,实现流式数据处理及基于表的批量数据处理的统一;支持消息发送机制,通过消息发送机制向其他计算单元发送实时事件消息;支持一次性/循环触发定时器,领域特定语言组件通过该定时器指定在设定时间后单次/循环触发某一函数。
本发明对比现有技术有如下的有益效果:本发明使用基于LLVM(Low LevelVirtual Machine)的CEP引擎替换传统的C++引擎,该CEP引擎提供了一种易于学习的语言接口,同时结合面向过程性语言的顺序、分支、循环结构以及类SQL语言的灵活多变特性,使其能够快速响应规则(即量化策略)的变化,降低二次开发和日常维护成本;同时通过LLVM实现了微秒级复杂流数据处理,从而全面解决金融期货行业对流式数据处理低延迟、高灵活性的要求。本发明还提供了自定义的领域特定语言DSL(Domain Specific Language)用于策略编写。
在CEP引擎的基础上,本发明的基于CEP的低延迟做市策略引擎,通过将行情、定价、策略创建/启停、参数更新等消息作为事件发送到CEP引擎,触发底层由LLVM编译好的函数,通过LLVM提供的即时编译(JIT,just-in-time compilation)技术,既确保了运行速度,又极大提升了策略编写的便利度。
本发明通过结合CEP技术与LLVM编译器框架,将脚本语言的运行速度提升到了和C/C++语言同一数量级,同时由于是自定义的DSL,在易用性、安全性、功能性等方面,较C/C++都有了长足的提升,为速度和易用性之间的矛盾提供了一个很好的解决方案。
附图说明
在结合以下附图阅读本公开的实施例的详细描述之后,能够更好地理解本发明的上述特征和优点。在附图中,各组件不一定是按比例绘制,并且具有类似的相关特性或特征的组件可能具有相同或相近的附图标记。
图1示出了本发明的做市商平台的整体架构示意图。
图2示出了本发明的基于低延迟复杂事件的做市策略引擎系统的一实施例的运行流程的示意图。
图3示出了本发明的基于低延迟复杂事件的做市策略引擎系统的一实施例的线程模型示意图。
具体实施方式
以下结合附图和具体实施例对本发明作详细描述。注意,以下结合附图和具体实施例描述的诸方面仅是示例性的,而不应被理解为对本发明的保护范围进行任何限制。
图1示出了本发明的做市商平台的整体架构。做市商平台包括行情接入模块、交易接入模块、查询接入模块、定价模块、交易风控模块、查询前置模块、上下场服务模块以及本发明的做市策略引擎系统。
行情接入模块用于从行情柜台接收行情数据,并转发给定价模块。
交易接入模块用于从交易风控模块接收报单撤单查询请求并发送到交易柜台,同时接收交易柜台的应答和确认并转发到交易风控模块。
查询接入模块用于接入交易柜台进行持仓、资金等数据的查询,将查询结果推送至查询前置模块。
定价模块用于从行情接入模块接收期权期货行情,进行理论价的计算,再将计算后的相关行情数据发布给交易风控模块。
交易风控模块用于为从做市策略引擎系统和查询前置模块接收交易指令,进行风控检查后将交易指令转发给交易接入模块;同时从交易接入模块接收报单应答、成交回报等消息,更新持仓数据,并将实时交易数据推送给做市策略引擎系统和查询前置模块。
查询前置模块用于接收和维护定价模块、做市策略引擎系统、交易风控模块的实时行情和交易数据,同时对外提供HTTP接口,前端界面可连接到查询前置模块以查询实时行情和交易数据。
上下场服务模块用于在启动时从数据库中导入配置信息或从客户端接收配置信息,并将这些信息提供给定价模块、交易风控模块和做市策略引擎系统使用,并用于交易风控模块中的交易数据和做市策略引擎系统中的策略数据下场。
对于图1所示的做市商平台中的做市策略引擎系统,也即本发明的基于低延迟复杂事件的做市策略引擎系统,其配置为实现以下功能:用于策略实例的创建、启动、暂停、销毁,从定价模块接收行情数据,从交易风控模块接收交易数据;同时将其生成的报单发送至交易风控模块。
基于低延迟复杂事件的做市策略引擎系统接收的输入数据包括:来自上下场服务模块的策略参数配置上场数据,来自定价模块的期货、期权行情、理论价数据,来自交易风控模块的报单、报价、持仓等信息,来自查询前置模块的策略控制指令。
基于低延迟复杂事件的做市策略引擎系统生成的输出数据包括:发送到交易风控模块的报单、报价数据,发送到上下场服务模块的动态参数数据,发送给到查询前置模块的策略运行状态信息。
做市策略引擎系统所作的处理动作包括:根据接收的上述输入数据,使用基于LLVM的CEP引擎执行用户自定义的策略逻辑,向上述的对应模块抛出输出。
做市策略引擎系统中定义一套领域特定语言组件(DSL,Domain SpecificLanguage)来支持类C风格的事件模式定义,包括:支持类C的int(32)、long(64)、float、double、bool、char、struct、string(char*)等基础数据类型;支持类C风格的变量定义、引用、分支、循环、函数等;支持无缝调用外部C函数(包括C系统函数以及用户通过动态链接库导入的自定义函数库);支持类Java风格的包管理机制,从而实现名字空间和便捷的开发隔离性。
在实时流事件处理方面,领域特定语言组件支持监听器(monitor),每个监听器可允许声明私有的成员函数和成员变量,可通过lambda表达式实现对指定事件流的监听处理;同时内嵌了基于内存数据库的SQL类语句,可实现流式数据处理及基于表的批量数据处理的统一;支持消息发送(route),可以通过消息发送(route)机制向其他计算单元发送实时事件消息。支持一次性/循环触发定时器(timer),通过该定时器,领域特定语言组件DSL可以指定在一定时间后单次/循环触发某个函数。
图2示出了本发明的基于低延迟复杂事件的做市策略引擎系统的运行流程。
首先,做市策略引擎系统通过CEP引擎读取磁盘上指定目录中的脚本文件(该脚本文件是用户使用策略编写模块中的领域特定语言组件所编写的策略实例的脚本文件),将脚本文件加载到内存后,经过词法解析、语法解析、语法检查、类型注册推导、LLVM代码生成的步骤,最后将脚本文件转化为保存在内存中的函数代码段,并持有对应的函数指针待后续执行。这一步相当于业务规则(即策略)的加载过程。
做市策略引擎系统启动后,将行情、参数在内的消息持续发送至CEP引擎,CEP引擎根据消息类型,调用对应的在上一步中编译好的函数指针。这一步相当于处理输入事件的过程。
函数指针的内部处理完消息后,可能会产生输出消息,如报单、报价指令等,此时CEP引擎会根据输出消息的类型,调用做市策略引擎系统预先注册好的不同类型的回调函数,完成消息通知。这一步相当于输出结果流的过程。
图3示出了本发明的基于低延迟复杂事件的做市策略引擎系统的线程模型的示意图。
做市策略引擎系统中包括订阅线程单元、发布线程单元、应用线程单元、实例管理线程单元、主线程单元、看门狗单元(watch dog)。
订阅线程单元分别与应用线程单元、看门狗单元建立单向传输,应用线程单元分别和发布线程单元、看门狗单元建立单向传输,发布线程单元和看门狗单元建立单向数据传输。
订阅线程单元用于订阅定价模块、交易风控模块、上下场服务模块、前置查询模块产生的消息,实时写入异步消息队列中。
发布线程单元用于向交易风控模块发布报单/报价请求;向前置查询模块发送策略运行状态消息。
应用线程单元用于处理订阅数据,更新内存数据库;同时驱动策略实例,为策略实例提供数据获取接口。其中,每个策略实例内自行维护在途订单数据,对于订单、持仓等数据由应用线程单元统一更新。上述的CEP引擎在应用线程单元内运行。CEP引擎内部不存在单独的线程模型,宿主进程(即策略引擎)的应用线程单元用于驱动CEP引擎的运行,应用线程单元将从订阅线程单元收到的消息发送给内部的CEP引擎,CEP引擎执行对应DSL代码(即策略逻辑)后,将执行结果通过发布线程单元发送出去。
CEP引擎内包含了一个LLVM JIT引擎,其内部使用了LLVM提供的接口用于生成特定平台的可执行代码。在CEP引擎启动时,通过LLVM JIT引擎将策略代码(即DSL代码)通过JIT引擎转为以函数指针形式表征的代码段,后续在收到对应消息时,CEP引擎可以直接调用对应函数。
每个应用线程内独立维护一个内存数据库,内存数据库通过实时读取流中的消息来构建,内存数据库内主要维护行情、理论价、报单、报价、成交、持仓、参数等数据;并提供统一的数据获取接口供策略实例查询。
实例管理线程单元用于处理策略实例配置数据,管理策略实例的运行状态,其中启动策略实例是采用轮训机制选取应用线程,应用线程单元加载并运行策略实例,暂停策略实例是通知应用线程,暂停目标策略实例的执行。
主线程单元用于创建上述的业务处理线程,并确保程序不会退出。
看门狗单元用于监控策略实例的运行状态。
尽管为使解释简单化将上述方法图示并描述为一系列动作,但是应理解并领会,这些方法不受动作的次序所限,因为根据一个或多个实施例,一些动作可按不同次序发生和/或与来自本文中图示和描述或本文中未图示和描述但本领域技术人员可以理解的其他动作并发地发生。
本领域技术人员将进一步领会,结合本文中所公开的实施例来描述的各种解说性逻辑板块、模块、电路、和算法步骤可实现为电子硬件、计算机软件、或这两者的组合。为清楚地解说硬件与软件的这一可互换性,各种解说性组件、框、模块、电路、和步骤在上面是以其功能性的形式作一般化描述的。此类功能性是被实现为硬件还是软件取决于具体应用和施加于整体系统的设计约束。技术人员对于每种特定应用可用不同的方式来实现所描述的功能性,但这样的实现决策不应被解读成导致脱离了本发明的范围。
结合本文所公开的实施例描述的各种解说性逻辑板块、模块、和电路可用通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑器件、分立的门或晶体管逻辑、分立的硬件组件、或其设计成执行本文所描述功能的任何组合来实现或执行。通用处理器可以是微处理器,但在替换方案中,该处理器可以是任何常规的处理器、控制器、微控制器、或状态机。处理器还可以被实现为计算设备的组合,例如DSP与微处理器的组合、多个微处理器、与DSP核心协作的一个或多个微处理器、或任何其他此类配置。
结合本文中公开的实施例描述的方法或算法的步骤可直接在硬件中、在由处理器执行的软件模块中、或在这两者的组合中体现。软件模块可驻留在RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动盘、CD-ROM、或本领域中所知的任何其他形式的存储介质中。示例性存储介质耦合到处理器以使得该处理器能从/向该存储介质读取和写入信息。在替换方案中,存储介质可以被整合到处理器。处理器和存储介质可驻留在ASIC中。ASIC可驻留在用户终端中。在替换方案中,处理器和存储介质可作为分立组件驻留在用户终端中。
在一个或多个示例性实施例中,所描述的功能可在硬件、软件、固件或其任何组合中实现。如果在软件中实现为计算机程序产品,则各功能可以作为一条或更多条指令或代码存储在计算机可读介质上或藉其进行传送。计算机可读介质包括计算机存储介质和通信介质两者,其包括促成计算机程序从一地向另一地转移的任何介质。存储介质可以是能被计算机访问的任何可用介质。作为示例而非限定,这样的计算机可读介质可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁存储设备、或能被用来携带或存储指令或数据结构形式的合意程序代码且能被计算机访问的任何其它介质。任何连接也被正当地称为计算机可读介质。例如,如果软件是使用同轴电缆、光纤电缆、双绞线、数字订户线(DSL)、或诸如红外、无线电、以及微波之类的无线技术从web网站、服务器、或其它远程源传送而来,则该同轴电缆、光纤电缆、双绞线、DSL、或诸如红外、无线电、以及微波之类的无线技术就被包括在介质的定义之中。如本文中所使用的盘(disk)和碟(disc)包括压缩碟(CD)、激光碟、光碟、数字多用碟(DVD)、软盘和蓝光碟,其中盘(disk)往往以磁的方式再现数据,而碟(disc)用激光以光学方式再现数据。上述的组合也应被包括在计算机可读介质的范围内。
提供对本公开的先前描述是为使得本领域任何技术人员皆能够制作或使用本公开。对本公开的各种修改对本领域技术人员来说都将是显而易见的,且本文中所定义的普适原理可被应用到其他变体而不会脱离本公开的精神或范围。由此,本公开并非旨在被限定于本文中所描述的示例和设计,而是应被授予与本文中所公开的原理和新颖性特征相一致的最广范围。
Claims (7)
1.一种基于低延迟复杂事件的做市策略引擎系统,其特征在于,系统包括:
订阅线程单元,用于订阅定价模块、交易风控模块、上下场服务模块、前置查询模块产生的消息,实时写入异步消息队列中;
发布线程单元,用于向交易风控模块发布报单/报价请求,向前置查询模块发送策略运行状态消息;
应用线程单元,用于处理订阅数据并更新内存数据库,同时驱动策略实例并为策略实例提供数据获取接口,其中在应用线程单元内运行内部的低延迟复杂事件引擎,应用线程单元将从订阅线程单元收到的消息发送给低延迟复杂事件引擎,低延迟复杂事件引擎执行策略逻辑所对应的领域特定语言代码后,将代码执行结果通过发布线程单元发送出去;
实例管理线程单元,用于处理策略实例配置数据,管理策略实例的运行状态;
主线程单元,用于创建业务处理线程并确保程序不会退出;
看门狗单元,用于监控策略实例的运行状态。
2.根据权利要求1所述的基于低延迟复杂事件的做市策略引擎系统,其特征在于,订阅线程单元分别与应用线程单元、看门狗单元建立单向传输,应用线程单元分别和发布线程单元、看门狗单元建立单向传输,发布线程单元和看门狗单元建立单向数据传输。
3.根据权利要求1所述的基于低延迟复杂事件的做市策略引擎系统,其特征在于,应用线程单元内独立维护一个内存数据库,内存数据库通过实时读取流中的消息来构建,内存数据库用于维护行情、理论价、报单、报价、成交、持仓、参数在内的数据;并提供统一的数据获取接口供策略实例查询。
4.根据权利要求1所述的基于低延迟复杂事件的做市策略引擎系统,其特征在于,实例管理线程单元所配置的启动策略实例是采用轮训机制选取应用线程,应用线程单元加载并运行策略实例;实例管理线程单元所配置的暂停策略实例是通知应用线程,暂停目标策略实例的执行。
5.根据权利要求1所述的基于低延迟复杂事件的做市策略引擎系统,其特征在于,低延迟复杂事件引擎配置为执行以下的处理:
读取策略实例的脚本文件,将脚本文件加载到内存后,经过词法解析、语法解析、语法检查、类型注册推导、LLVM代码生成的步骤,最后将脚本文件转化为保存在内存中的函数代码段,并持有对应的函数指针待后续执行;
实时接收行情、参数在内的消息,低延迟复杂事件引擎根据消息类型,调用对应的函数指针;
待函数指针处理完消息并产生输出消息后,低延迟复杂事件引擎根据输出消息的类型,调用做市策略引擎系统预先注册好的不同类型的回调函数,完成消息通知。
6.根据权利要求5所述的基于低延迟复杂事件的做市策略引擎系统,其特征在于,策略实例的脚本文件由领域特定语言组件来支持类C风格的事件模式定义,包括:支持类C的基础数据类型,支持类C的变量定义、引用、分支、循环、函数,支持无缝调用外部C函数,支持类Java风格的包管理机制。
7.根据权利要求6所述的基于低延迟复杂事件的做市策略引擎系统,其特征在于,在实时流事件处理方面,领域特定语言组件支持监听器,每个监听器允许声明私有的成员函数和成员变量,通过lambda表达式实现对指定事件流的监听处理;同时内嵌基于内存数据库的SQL类语句,实现流式数据处理及基于表的批量数据处理的统一;支持消息发送机制,通过消息发送机制向其他计算单元发送实时事件消息;支持一次性/循环触发定时器,领域特定语言组件通过该定时器指定在设定时间后单次/循环触发某一函数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011553325.4A CN113065954B (zh) | 2020-12-24 | 2020-12-24 | 基于低延迟复杂事件的做市策略引擎系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011553325.4A CN113065954B (zh) | 2020-12-24 | 2020-12-24 | 基于低延迟复杂事件的做市策略引擎系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113065954A true CN113065954A (zh) | 2021-07-02 |
CN113065954B CN113065954B (zh) | 2023-09-29 |
Family
ID=76559015
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011553325.4A Active CN113065954B (zh) | 2020-12-24 | 2020-12-24 | 基于低延迟复杂事件的做市策略引擎系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113065954B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116185495A (zh) * | 2022-12-13 | 2023-05-30 | 易保网络技术(上海)有限公司 | 计算函数构建方法、计算引擎、电子设备及可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110580614A (zh) * | 2019-09-06 | 2019-12-17 | 北京神州同道智能信息技术有限公司 | 一种基于海量策略智能处理平台的全市场多品种金融资管系统 |
CN110610422A (zh) * | 2019-09-06 | 2019-12-24 | 北京神州同道智能信息技术有限公司 | 一种基于智能有效策略平台的全市场多品种金融资管系统 |
CN111311403A (zh) * | 2019-12-03 | 2020-06-19 | 上海金融期货信息技术有限公司 | 一种策略交易引擎系统 |
CN111309752A (zh) * | 2019-11-26 | 2020-06-19 | 上海金融期货信息技术有限公司 | 面向业务流式数据处理的领域特定语言组件及其运作方法 |
CN112116468A (zh) * | 2020-06-24 | 2020-12-22 | 上海金融期货信息技术有限公司 | 一种基于流式计算引擎的结构化风控实现方法和系统 |
-
2020
- 2020-12-24 CN CN202011553325.4A patent/CN113065954B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110580614A (zh) * | 2019-09-06 | 2019-12-17 | 北京神州同道智能信息技术有限公司 | 一种基于海量策略智能处理平台的全市场多品种金融资管系统 |
CN110610422A (zh) * | 2019-09-06 | 2019-12-24 | 北京神州同道智能信息技术有限公司 | 一种基于智能有效策略平台的全市场多品种金融资管系统 |
CN111309752A (zh) * | 2019-11-26 | 2020-06-19 | 上海金融期货信息技术有限公司 | 面向业务流式数据处理的领域特定语言组件及其运作方法 |
CN111311403A (zh) * | 2019-12-03 | 2020-06-19 | 上海金融期货信息技术有限公司 | 一种策略交易引擎系统 |
CN112116468A (zh) * | 2020-06-24 | 2020-12-22 | 上海金融期货信息技术有限公司 | 一种基于流式计算引擎的结构化风控实现方法和系统 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116185495A (zh) * | 2022-12-13 | 2023-05-30 | 易保网络技术(上海)有限公司 | 计算函数构建方法、计算引擎、电子设备及可读存储介质 |
CN116185495B (zh) * | 2022-12-13 | 2023-10-13 | 易保网络技术(上海)有限公司 | 计算函数构建方法、计算引擎、电子设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113065954B (zh) | 2023-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111309752B (zh) | 面向业务流式数据处理的领域特定语言组件及其运作方法 | |
CN108536761B (zh) | 报表数据查询方法及服务器 | |
US9361342B2 (en) | Query to streaming data | |
CN109614413B (zh) | 一种内存流式计算平台系统 | |
CN109345377A (zh) | 一种数据实时处理系统及数据实时处理方法 | |
CN107247811B (zh) | 基于Oracle数据库的SQL语句性能优化方法及装置 | |
US20030074392A1 (en) | Methods for a request-response protocol between a client system and an application server | |
US20210365939A1 (en) | Method and apparatus for processing account of blockchain network, and storage medium | |
US20180121622A1 (en) | Stateless decision support engine | |
US20150341231A1 (en) | Distributed system architecture using event stream processing | |
US11913811B2 (en) | Enhanced meter management solution | |
CN113065954A (zh) | 基于低延迟复杂事件的做市策略引擎系统 | |
CN112116468B (zh) | 一种基于流式计算引擎的结构化风控实现方法和系统 | |
WO2024104241A1 (zh) | 一种基于模型隐式多目标融合的消息推送方法及装置 | |
CN111311403B (zh) | 一种策略交易引擎系统 | |
AU2016231506A1 (en) | Systems and methods for accessing a database management system | |
US20180060366A1 (en) | Exposing database artifacts | |
US20130179363A1 (en) | Functional model for rating events | |
CN111176944A (zh) | 区块链智能合约调用记录解析方法、装置、终端和存储介质 | |
WO2019195321A1 (en) | Methods and systems for order-sensitive computations in loan accounting | |
CN114416064A (zh) | 基于bpmn2.0的分布式服务编排系统及方法 | |
US20110093505A1 (en) | Asynchronous state engine with plug-ins for flexible application development | |
CN111311404B (zh) | 一种基于分布式的流式金融交易风控系统及方法 | |
CN109118151A (zh) | 一种工单事务处理方法及工单事务处理系统 | |
CN112116469A (zh) | 一种基于内存的多交易所全业务清算系统和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |