一文带你了解 全新版本升级!

本次更新后,3.00.0版本将成为 的最新版,2.00.12版本变更为稳定版,此前发布的1.30.23版本将成为1.30系列的最后一个版本。接下来,带大家一起看看 V2.00.12 & V3.00.0 都做了哪些更新与优化~

光看文字不过瘾?我们还为大家准备了线上直播!4月10日晚上七点半, 研发副总监胡津铭将为大家详细介绍3.00.0版本发布的新功能,以及2.00.12版本的重要更新。即刻扫码预约直播,我们直播间见!

3.00.0 大版本全新发布

技术的价值不在于技术本身,而在于其为业务服务的能力。 的 3.00版本将深入用户需求的深水区,进一步完善其作为基础开发底座的能力,释放用户的创造力,为业务二次开发带来更多可能性。

3.00版本中, 处理风控、交易等场景的能力得到了大幅提升:新增了交易型内存存储引擎,流数据架构中新增 CEP 引擎、订单簿引擎。同时, 推出了嵌入式版本 “”,用户可以将 作为基础组件嵌入到交易和实时风控等对时延有苛刻要求的场景中。

强大的数据分析能力,一直以来是 备受关注的亮点之一。3.00版本中, 引入了 脚本引擎,支持原生 语法、 库以及所有 内置的功能。 也完成了对 Class 类的支持、更新了基于宏变量的元编程方法,帮助用户提升数据分析体验。此处划重点:新版本还发布了全新的基于 CPU-GPU 异构计算和遗传算法的因子挖掘平台—— Shark 。

除了上述内容,插件市场、 和 AI 等重要功能也将在3.00版本中正式发布。下面我们一起看看详细内容!

插件市场新装修

首先为大家介绍一个插件市场的更新。

java委托_委托人是本人还是别人_委托书范本个人委托他人代办

的插件市场提供了例如行情插件、数据存取、机器学习、云存储、可视化等多个类别的插件工具。用户在 中通过 和 函数,就可以快速地安装并加载所需的插件,轻松扩展系统功能。

本次更新,我们将在插件市场中发布为企业版用户打造的高频回测、模拟撮合等专业插件,更好地匹配用户深入的业务需求。此外,插件市场上线了用户和评价系统,该系统将与 ASK 社区打通,打造完整的用户生态。未来,用户将在 生态中拥有自由开发、上传作品、交易、即时问答和专业内容输出等完整体验,享受到高质量专业生态带来的助力。

满足低延时高并发强事务需求:

交易型内存存储引擎

银行转账交易系统、火车票销售系统等应用场景,并发度高、吞吐量大、对实时响应和事务的一致性要求较高,是典型的在线事务处理(OLTP)场景。传统存储引擎架构会将数据存储在磁盘上,而在面对上述场景要求时,软硬件层面将面临巨大挑战。基于这类情况, 设计并实现了交易型内存存储引擎 ,将所有数据都维护在内存中,从而省去磁盘 I/O 的开销;以行存的形式来组织数据,支持创建 B+ 树索引 (主键索引和二级索引) ,来应对低时延、高并发的增删改查操作。

引擎可以在建库时指定,与 OLAP 和 TSDB 的配置方式相同。通过一个简单的建库建表案例,我们可以了解 的用法:

// 建库db = database(directory="oltp://testdb", partitionType=VALUE,             partitionScheme=2024.01.01..2024.01.02, engine="IMOLTP")// 建表dummy = table(1:0, ["time", "id", "price", "vol"], [DATETIME, INT, DOUBLE, LONG])pt = createIMOLTPTable(    dbHandle=db,    table=dummy,    tableName="pt",    primaryKey=`id)pt=loadTable("oltp://testdb", "pt")// 写入数据insert into pt values(2024.03.05T09:00:00, 1, 1.2, 11)insert into pt values(2024.03.05T09:00:01, 2, 1.3, 12)insert into pt values(2024.03.05T09:00:01, 3, 1.4, 16)// 查询数据select * from pt

赋能系统底层架构:嵌入式产品

许多用户在体验了 之后,提出希望能将 作为基础组件嵌入到已有的风控或交易平台上,为已有系统的底层架构赋能。为此,我们推出了嵌入式版本—— ,其支持功能与 的3.00.0版本一致。

将 核心计算能力进行封装,以动态库的方式提供给用户。内存计算方面, 内置了 1500+函数与流计算框架,支持 和 两个脚本引擎java委托,展现出高并发、低延时的数据读写和计算能力。在交易与风控系统等极速场景中,用户可以使用 直接在当前进程内处理实时数据,省去进程间通信的开销。存储方面, 中内置了 OLAP 存储引擎、TSDB 存储引擎、以及全新设计的交易型内存存储引擎,支持到个位微秒级的数据读写、事务操作与持久化日志。同时, 还支持加载插件扩展功能,有助于降低开发工作量。

洞察实时流数据价值:

CEP 复杂事件处理引擎

为了更好地满足交易策略、交易风控、传感器采集等场景下复杂的数据处理需求, 在流数据框架中增加了复杂事件处理(CEP)引擎。CEP 引擎的核心功能包括事件定义、事件捕捉和过滤、事件模式匹配、事件发送、事件处理等,通过从大量的实时事件流中提取重要的事件和关联关系,从而实现实时监控、异常检测和决策支持。

下例应用 CEP 引擎,定义股票逐笔成交事件、成交回报事件、下单事件、撤单事件、创建 监视器,实现了基于股票逐笔成交数据的事件驱动策略,即根据每支股票的最新的成交价涨幅和累计成交量判断是否执行下单操作。

委托人是本人还是别人_java委托_委托书范本个人委托他人代办

自动因子挖掘:Shark 引擎

为了满足用户不断增长的因子挖掘需求, 在新版本中推出了 Shark 高性能因子挖掘平台。相比传统依赖于人工设计和选择特征工程的因子挖掘方法,Shark 平台可以直接从数据库中读取数据,调用遗传算法进行自动因子挖掘,同时利用 GPU 加速遗传算法的适应度计算,提升因子挖掘效率。

Shark CPU-GPU 异构计算平台的优势主要体现在如下方面:

下面这段脚本介绍了 Shark 平台自动挖掘因子的流程:

// 生成测试数据def prepareData(num){    total = num    data=table(total:total, `a`b`c`d,[FLOAT,FLOAT,FLOAT,FLOAT])    data[`a]=rand(1.0, total)       data[`b]=rand(1.0, total)       data[`c]=rand(1.0, total)       data[`d]=rand(1.0, total)       return data}def f(x){    return x * x *x *x / (x * x *x *x + 1)}num = 1000000source = prepareData(num)predVec = (select f(a) + f(b) + f(c) + f(d) as predVec from source)[`predVec]
// 创建GPLearnEngineengine = createGPLearnEngine(source, predVec, populationSize=1000,generations=10, initDepth = [2,6], constRange=0, fitness=`mae, functionSet=['add', 'sub', 'mul', 'div'])
// 进行挖掘,得到因子trainRes=engine.gpFit(programNum=5, printCorr=true)

全新脚本引擎:

是数据分析常用工具,用于数据清洗、计算、分析等场景,然而在应对多线程和 CPU 密集型任务时,其始终无法充分发挥出硬件性能和并行执行任务的优势。

此次 为习惯用 的用户提供了一个更优的替代方案—— 。脚本引擎 不但支持解析 语法编写的脚本,也支持调用 原生的内置函数和库表对象, 还提供了 接口库,将库表与 的数据结构相结合,从而帮助用户轻松地用 语言,在 计算框架上高效完成计算。

与 脚本语言( )共享对象系统和运行环境,使用时,用户只需在脚本编辑器切换解析语言为 ,即可用 编写脚本。

委托人是本人还是别人_java委托_委托书范本个人委托他人代办

VS Code 配置

委托书范本个人委托他人代办_委托人是本人还是别人_java委托

GUI 配置

实现面向对象编程:支持类

新版本中, 在 的基础上引入了类(Class),从而实现了面向对象的编程(- , OOP)。面向对象编程是一种重要的编程范式,通过将数据和方法封装在类中,实现了数据多态、抽象、继承等特性,有效提高了代码的可读性和可维护性,降低了复杂业务逻辑的代码维护成本。特别地,利用 Class 带有状态的特性,用户可以更方便地开发自定义状态函数,用于 CEP 引擎以及响应式状态引擎( State )。

更便捷的数据工程化管理:

数据目录()功能

先前 使用 加载库表的方式,与标准 SQL 的访问方式有所差异。为了给用户提供更便捷、更标准、兼容性更好的数据库访问体验,同时更方便地与第三方软件进行集成, 为新版本引入了 功能,支持以下述标准方式访问库表,更有利于数据的工程化管理。

select * from catalog.schema.table

新版本中, 的三级概念与原有数据库和表的概念映射关系如下表:

java委托_委托书范本个人委托他人代办_委托人是本人还是别人

基于逐笔数据生成订单簿:订单簿引擎

订单簿是研究市场微观结构的重要工具。订单簿快照对量化金融的交易决策、交易执行、风险管理和市场分析等方面具有重要意义。新版本中, 推出了经过正确性校验的高性能订单簿合成引擎。用户只需要通过 函数即可定义该引擎,再通过向引擎输入符合约定的逐笔成交和逐笔委托数据,便可触发计算。

在业务上,订单簿合成引擎支持多个交易所的多种证券类型,支持任意档位和任意频率的订单簿,支持成交明细、委托明细、撤单明细等丰富的衍生指标,支持用户自定义指标等。在实时技术上,订单簿合成引擎支持流批一体、多种时间概念、灵活的触发机制等。

下述代码展示了如何合成1秒频率的订单簿,脚本中名为“demo”的合成引擎的功能为每1s计算输出深交所股票20档买卖盘口。

/* *  功能:创建订单簿引擎 */// 创建引擎参数outputTable,即指定输出表suffix = string(1..10)colNames = `SecurityID`timestamp`lastAppSeqNum`tradingPhaseCode`modified`turnover`volume`tradeNum`totalTurnover`totalVolume`totalTradeNum`lastPx`highPx`lowPx`ask`bid`askVol`bidVol`preClosePx`invalid  join ("bids" + suffix) join ("bidVolumes" + suffix) join ("bidOrderNums" + suffix) join ("asks" + suffix)  join ("askVolumes" + suffix) join ("askOrderNums" + suffix) colTypes = [SYMBOL,TIMESTAMP,LONG,INT,BOOL,DOUBLE,LONG,INT,DOUBLE,LONG,INT,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,LONG,LONG,DOUBLE,BOOL] join take(DOUBLE, 10) join take(LONG, 10) join take(INT, 10) join take(DOUBLE, 10) join take(LONG, 10) join take(INT, 10) outTable = table(1:0, colNames, colTypes)// 创建引擎参数dummyTable,即指定输入表的表结构colNames = `SecurityID`Date`Time`SourceType`Type`Price`Qty`BSFlag`BuyNo`SellNo`ApplSeqNum`ChannelNocolTypes = [SYMBOL, DATE, TIME, INT, INT, LONG, LONG, INT, LONG, LONG, LONG, INT]dummyOrderTrans = table(1:0, colNames, colTypes)// 创建引擎参数inputColMap,即指定输入表各字段的含义inputColMap = dict(`codeColumn`timeColumn`typeColumn`priceColumn`qtyColumn`buyOrderColumn`sellOrderColumn`sideColumn`msgTypeColumn`seqColumn, `SecurityID`Time`Type`Price`Qty`BuyNo`SellNo`BSFlag`SourceType`ApplSeqNum)// 创建引擎参数prevClose,即昨日收盘价,prevClose不影响最终的输出结果中除昨日收盘价以外的其他字段prevClose = dict(`000400.SZ`300274.SZ`300288.SZ`300122.SZ`300918.SZ, [1.1, 2.2, 3.3, 4.4, 5.5])// 定义引擎,每1s计算输出深交所股票20档买卖盘口engine = createOrderBookSnapshotEngine(name="demo", exchange="XSHE", orderbookDepth=20, intervalInMilli=1000, date=2022.01.10, startTime=09:15:00.000, prevClose=prevClose, dummyTable=dummyOrderTrans, inputColMap=inputColMap, outputTable=outTable)

深度学习的数据高速通道:AI

深度学习模型是现代广泛应用的人工智能模型,主要应用包括量化投资、模式识别、自然语言处理、计算机视觉等等,随着 等大模型的出现,深度学习正逐渐改变人类社会。

在量化投资领域,深度学习有能力自动发现变量之间的关系,为量化投资策略提供更多可能性。在传统的量化策略开发流程中,通常会使用 或第三方工具生成因子,并将其存储为文件,这些因子是构建深度学习模型的基础输入。随着证券交易规模不断扩大以及因子数据量的激增,以传统的文件形式存储因子,进而作为深度学习模型的输入,会面临内存带宽与存储空间的瓶颈,以及因子数据与深度学习模型集成的工程化和成本问题。

为了应对这些挑战, 将数据库与深度学习相结合,开发了数据加载工具 AI 。

AI 可以将存储于 中的因子数据一步到位转换成 、 等深度学习框架需要的 格式,减少中间过程;同时支持以流水线作业的方式java委托,增量读取和转换数据,控制 客户端内存使用量,用户无需为数据转换和内存管控耗费时间精力,能够更好地聚焦业务优化。用 AI 实现因子数据管理和深度学习模型集成的总体架构如下:

java委托_委托书范本个人委托他人代办_委托人是本人还是别人

高效的多播通信:UDP 可靠组播模式

UDP 组播是一种基于 UDP 协议的通信方式。与 TCP 通过建立连接一对一传输不同,UDP 不建立连接,利用专用组播地址将数据同时传输给多个接收者,因此具有时延较低、带宽占用较少等特点。但也因为 UDP 无连接协议的特点,在 UDP 模式下,数据传输过程中可能会出现丢包、乱序等问题。

新版本中, 为流计算的发布订阅新增了对 UDP 组播模式的支持,在多订阅端共同订阅单一发布端的情况下,大大提升了发布和订阅数据的效率。 还采取了一系列措施进行数据安全封装,保证 UDP 组播订阅时数据的完整性和顺序一致性:在共享内存中维护 log ,同时利用 NAK 机制来保证传输失败时的重传;在 log 中维护数据包的 seq ,来保证接收时可以通过该 重建顺序。

订阅者可指定 =true 启用 UDP 模式订阅。

subscribeTable(...,udpMulticast=true)

将在3.00.0的修订版中支持 UDP 可靠组播模式,提升流数据多路订阅发布的性能,敬请期待!

2.00.12版本与3.00.0版本将同步支持 AI 与订单簿引擎功能。

2.00.12 升级功能清单

本次版本发布,除了带来上述重磅新功能以外,还兼顾了产品性能与易用性、数据分析能力、流数据功能、运维管理功能等方面的优化与提升。

下列升级功能皆适用于2.00.12版本与3.00.0版本。

易用性增强

t = table(`a`a`b as sym, 1 2 3 as val1, 2 3 4 as val2, 3 4 5 as val3)
names=["val1", "val2", "val3"]<select _$$names from t>.eval()
alias = "rs_val"<select rowSum(_$$names) as _$alias from t>.eval()

此外,新版本还新增了字段序列表达式,应对宽表多字段查询场景,帮助用户更高效地书写 SQL 脚本:

select fac001...fac999 from t // 表示查询出 fac001, fac002, ..., fac998, fac999 列

数据库使用体验优化

新版本对 TSDB 引擎的功能与使用体验均进行了优化。

create table "dfs://test"."pt"(        id INT[compress="zstd"], //指定使用zstd压缩算法        deviceId SYMBOL[compress="zstd"],        date DATE[compress="zstd"],        value DOUBLE[compress="zstd"],        isFin BOOL[compress="zstd"]    )

数据分析能力更强大

新版本加强了数据类型以及函数方面的支持。在数据类型方面,支持了通过 配置项来指定全局的 舍入模式;拓展了对数学统计函数的支持,包括:

新版本还专门针对金融和物联网场景,增加了如下函数:

物联网:新增函数 ,用于判断点是否在多边形中,便于地理位置的判断,可用于车辆警戒区域判断,区域车辆统计等场景。

此外值得一提的是,在上一个版本中, 对 SQL 开窗函数功能进行了支持,兼容标准 SQL,方便用户迁移。此次新版本进一步完善了开窗函数的功能,主要体现在:

流数据功能拓展

在流数据计算方面,新版本拓展了已有流计算框架以及引擎的功能,例如:

响应式状态引擎:状态函数 prev 和 move 支持对数组向量的计算。

横截面引擎:参数 支持指定多个分组列。

异常检测引擎:支持自定义输出的异常指标信息。

性能再提升

运维管理功能强化

新版本从故障修复、负载平衡、权限管理、数据库审计等方面对数据库进行了升级,确保业务稳定运行。

Web 端功能优化与扩展

委托人是本人还是别人_java委托_委托书范本个人委托他人代办

委托人是本人还是别人_委托书范本个人委托他人代办_java委托

未完待续……

接下来的几个版本中, 将会推出的重点功能如下:

使用说明

试用过程中遇到任何问题,欢迎添加小助手提交反馈,我们期待听到你们的声音~

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注