Python Parser 因子计算性能简单测试

一直以来,Python 都在量化金融领域扮演着至关重要的角色。得益于 Python 强大的库和工具,用户在处理金融数据、进行数学建模和机器学习时变得更加便捷。但作为一种解释性语言,相对较慢的执行速度也限制了 Python 在一些需要即时响应的场景中的应用。

同时,由于 GIL(Global Interpreter Lock)的存在,在应对多线程和 CPU 密集型任务时,Python 始终无法充分发挥出硬件性能和并行执行任务的优势。

历时2年,DolphinDB 开发了可以识别 Python 语言的全新脚本引擎 Python Parser,它让用户可以用自己最熟悉的 Python 语法实现计算逻辑,并在 DolphinDB 的计算框架上高效运行,享受到 DolphinDB 高性能和分布式的计算能力。想要体验“高性能+分布式 python ”的朋友,欢迎扫描下方二维码试用。

在这里,我们挑选了6个具有代表性的因子,用 Python Parser 进行了实现,并对比DolphinDB Script 和 Python 的实现进行了简单性能测试,为大家提供一些参考。 

测试环境 

测试数据 

  • 2023 年单个交易所某日的 level-2 全天数据

    • 快照数据:24,313,086 行 × 62 列 [约 20.6 GB]

    • 逐笔成交:108,307,125 行 × 19 列 [约 11.0 GB]

    • 逐笔委托:141,182,534 行 × 16 列 [约 11.6 GB]

 性能测试结果

以下为各因子计算逻辑描述,点击链接可获取详细脚本。 

双均线因子

双均线是根据两条周期不一样的均线的相对位置来跟踪趋势的一种方法,本测试中我们使用双均线交叉的方式来判断买卖方向:

  • 短周期均线从下向上突破长周期均线时,意味着当前时间段具有上涨趋势,突破点就是常说的金叉,是股票的买入信号,在代码里,使用前一短均值小于前一长均值且当前短均值大于当前长均值的方式来判断金叉,赋予信号值为 1;

  • 短周期均线从上向下跌破长周期均线时,意味着当前时间段具有下跌趋势,跌破点就是常说的死叉,是股票的卖出信号,在代码里,使用前一短均值大于前一长均值且当前短均值小于当前长均值的方式来判断金叉,赋予信号值为 -1。

在这里我们使用简单移动平均(Simple Moving Average),其中 n 为窗口大小:

图片

因子计算示例代码请点击链接获取!

十档净委买增额

十档净委买增额因子指的是在有效十档范围内买方资金总体增加量,即所有买价变化量的总和,计算公式如下:

图片

其中 level10_Difft 表示 t 时刻的十档净委买增额;bidi,t 表示 t 时刻的第 i 档买方报价;bidQtyi,t 表示 t 时刻的第 i 档买方挂单数量;指示函数 I 表示报价是否在有效释放范围内。

有效十档范围内表示不考虑已不在十档范围内的档位,即表示只考虑以下区间的档位:

图片

最后,对过去 n 时间窗口内的十档净委买增额求和。

价格变动与一档量差的回归系数 

回归模型:

图片

其中,

  • ΔPt 表示 t 时刻的价格变动;lastPricet 表示 t 时刻的最新价格;

  • NVOLt 表示 t 时刻的买卖一档量差;bidQty1,t 表示 t 时刻的买方一档挂单笔数;askQty1,t 表示 t 时刻的卖方一档挂单笔数;

  • α 表示截距;λ 表示斜率;εt 表示 t 时刻的残差。

其中回归系数 λ 为目标因子值。

主动成交量占比

主动成交占比即主动成交量占总成交量的比例,其计算公式如下:

图片

其中 tradeQtyi 表示 i 时刻的成交量;actVolumet 表示 t 时刻起的前 lag 笔订单的主动成交量之和;totalVolumet 表示 t 时刻起的前 lag 笔订单的总成交量;指示函数 I 含义如下:

图片

早盘买卖单大小比 

早盘买卖单大小比即早盘时间段买入订单平均委托量占卖出订单平均委托量的比例的对数,其计算公式如下:

图片

其中 openBidVol 表示早盘时间段买入订单平均委托量;openAskVol 表示早盘时间段卖出订单平均委托量;orderQtyt 表示 t 时刻的委托量;

Ibid 是指示函数,当订单为买方委托单时值为 1,否则为 0;Iask 是指示函数,当订单为卖方委托单时值为 1,否则为 0。

委托量加权平均委托价格

委托量加权平均委托价格是将多笔委托单的委托价格按各自的委托量加权而算出的平均价格,其计算公式如下:

图片

其中 vwapt 表示 t 时刻起的前 lag 笔委托单的委托量加权平均委托价格;orderQtyi 表示 i 时刻委托单的委托量;orderPricei 表示 i 时刻委托单的委托价格。

获取以上6个因子及性能测试的详细脚本,请点击链接查看详情。

想要试用 Python Parser 的朋友,欢迎扫描下方二维码抢先体验。

图片

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/98807.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

读取 yaml 文件

一、引入依赖 <dependency><groupId>org.yaml</groupId><artifactId>snakeyaml</artifactId><version>1.32</version> </dependency> 二、读取yaml内容工作代码 &#xff08;1&#xff09;上传yaml文件 读取yaml文件并校验…

知识图谱系列3:读论文-《中国鸟类领域知识图谱构建与应用研究》-面向知识图谱的智能服务研究(需求、管理、查询、推理)

5.1鸟类领域知识服务需求研究 本部分根据不同人群&#xff0c;对其需求进行了研究。 并总结需求类型如下。 知识型服务需求指用户学习鸟类相关知识&#xff0c;包括知识内容、知识学习等。知识内容 需求为构建鸟类领域知识库作为知识的来源&#xff1b;知识学习需求为用户通过…

gici-open示例数据运行(ground_truth坐标的转换)

1. 坐标系转换说明 涉及的两个坐标转换&#xff1a; nmea_pose_to_pose &#xff1a;激光IMU中心到数据集IMU中心&#xff0c;主要是杆臂误差&#xff0c;转换关系为&#xff1a; //坐标转换的主要步骤(若发现有错误的地方&#xff0c;请评论指出) //定义激光IMU和数据集IMU之…

好看的机制示意图绘制教程汇总

好看的机制示意图绘制教程汇总 蛋白翻译过程示意图&#xff0c;特别是其中的核糖体&#xff0c;需要很多绘制技巧。主要使用椭圆工具绘制两个椭圆&#xff0c;二者组合后使外形接近核糖体。接着通过路径查找器的合并功能&#xff08;并集&#xff09;将两个椭圆合并在一起。使…

使用HHDBCS管理MongoDB

1 连接MongoDB 打开HHDBCS&#xff0c;在数据库类型中选择mongodb&#xff0c;填入相关信息&#xff0c;点击“登陆”即可。 也可以使用SSH通道进行登陆。 2 命令窗口 点击命令窗口&#xff0c;可以对数据库发出指令。 可以根据个人习惯&#xff0c;对命令窗口进行设置…

矩阵的相似性度量的常用方法

矩阵的相似性度量的常用方法 1&#xff0c;欧氏距离 欧式距离是最易于理解的一种距离计算方法&#xff0c;源自欧式空间中两点间的距离公式。 (1)二维平面上的点 a ( x 1 , y 1 ) a(x_1,y_1) a(x1​,y1​)和点 b ( x 2 , y 2 ) b(x_2,y_2) b(x2​,y2​)的欧式距离为 d ( x …

uni-app:引入echarts(使用renderjs)

效果 代码 <template><view click"echarts.onClick" :prop"option" :change:prop"echarts.updateEcharts" id"echarts" class"echarts"></view> </template><script>export default {data()…

旅游网站HTML

代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>旅游网</title> </head> <body><!--采用table编辑--> <!--最晚曾table,用于整个页面那布局--><table width&q…

Linux Ftrace介绍

文章目录 一、简介二、内核函数调用跟踪参考链接&#xff1a; 一、简介 Ftrace 是 Linux 官方提供的跟踪工具&#xff0c;在 Linux 2.6.27 版本中引入。Ftrace 可在不引入任何前端工具的情况下使用&#xff0c;让其可以适合在任何系统环境中使用。 Ftrace 可用来快速排查以下相…

0基础学习VR全景平台篇 第105篇:调色原理和色彩分析

“我心藏瑰宝灿烂如歌&#xff0c;唯有画作可为我吟唱。” 绘画、摄影、音乐等一切艺术&#xff0c;皆如是&#xff0c;敬梵高。 本节教程邀请李小岩老师讲授&#xff0c;大家欢迎&#xff01; 大家好&#xff01;欢迎收看我们这一节的课程&#xff0c;我们这一节呢主要讲的是…

川西旅游网系统-前后端分离(前台vue 后台element UI,后端servlet)

前台&#xff1a;tour_forword: 川西旅游网前端----前台 (gitee.com) 后台&#xff1a;tour_back: 川西旅游网-------后台 (gitee.com) 后端 &#xff1a;tour: 川西旅游网------后端 (gitee.com)

python对excel数据表进行数据清洗

当拿到excel表&#xff0c;使用python对excel操作前&#xff0c;第一件事情是对excel表的数据进行数据清洗。 数值是否有空值&#xff0c;是否有重复的数据&#xff0c;把以上2个问题解决完成以后&#xff0c;才是对数据真正操作的开始。 1、使用pandans读取数据 2、判断exce…

基于Springboot实现房屋租赁租房平台系统项目【项目源码+论文说明】分享

基于Springboot实现房屋租赁租房平台系统演示 摘要 在网络高速发展的时代&#xff0c;众多的软件被开发出来&#xff0c;给用户带来了很大的选择余地&#xff0c;而且人们越来越追求更个性的需求。在这种时代背景下&#xff0c;房东只能以用户为导向&#xff0c;所以开发租房网…

RabbitMQ中basic**方法汇总与参数解释

当使用RabbitMQ进行消息传递时&#xff0c;Channel对象提供了一组称为"basic方法"的方法&#xff0c;用于执行最基本的消息传递操作。在本篇博客中&#xff0c;我们将详细介绍这些方法&#xff0c;包括示例和参数解释。 1. basicPublish 方法 basicPublish 方法用于…

商业智能系统的主要功能包括数据仓库、数据ETL、数据统计输出、分析功能

ETL服务内容包含&#xff1a; 数据迁移数据合并数据同步数据交换数据联邦数据仓库

C#WPF使转换器Converter使用实例

一、概述 Binding机制给程序的开发带来极大方便,但有时源数据和绑定对象之间需要进行一定的逻辑转换,直接的简单绑定不能满足使用要求,WPF当然考虑了这一点,在Binding中我们可以添加自定义的转换逻辑,即转换器Converter。WPF中的转换器是一个非常好的数据类型转换解决方案…

程序员之友:注释的重要性与最佳实践(InsCode AI 创作助手)

文章目录 1. 为什么程序员不写注释&#xff1f;1.1 时间压力1.2 自信过高1.3 懒惰1.4 认为代码足够简单1.5 不清楚注释的价值1.6 担心注释过多1.7 不懂如何写好的注释 2. 注释的重要性2.1 代码解释和文档化2.2 错误预防2.3 提高团队协作2.4 代码维护 3. 如何写出漂亮的注释3.1 …

c++面试题汇总(不定期更新...)

文章目录 0 引言1 c基础1.1 c和c的区别1.2 结构体struct和类class的区别1.3 结构体struct和共同体union的区别1.4 c指针pointer和引用reference的区别1.5 c中new和delete是如何实现的1.6 c中#define和const的区别1.7 c中关键字static的作用1.8 堆Heap和栈Stack的区别1.9 定义De…

Redis高可用技术 二:主从复制、哨兵、Cluster集群

文章目录 1. 主从复制1.1 简介1.2 主从复制的作用1.3 主从复制的特性1.4 主从复制的工作原理1.4.1 全量复制1.4.2 增量复制 1.5 Redis主从同步策略 2. 搭建Redis主从复制2.1 前置准备2.2 配置master节点2.3 配置slave1-2节点2.4 主从复制结果验证 3. 哨兵模式3.1 简介3.2 哨兵的…

小程序关键词排名:优化你的应用在搜索中的地位

曾经&#xff0c;我们沉浸在应用商店的浩瀚海洋中&#xff0c;寻找着那个能够满足我们需求的小程序。而今&#xff0c;作为开发者&#xff0c;你的小程序究竟能否在这个无边的数字海洋中引起更多涟漪呢&#xff1f;故事的开始&#xff0c;恰巧就在这个问题的探寻中。让我们携手…