项目:德波量化(DealBot)

news2024/11/26 10:39:50

== 概述 ==

德波量化(DEALBOT)项目研发始于2015年,初衷是建立一个可以自己编写交易策略,又可以自动化交易的小软件。为了这个目的,广泛搜寻了现有的开源量化交易软件,包括国外的Backtrader、zipline、Pysystemtrade,国内的Vnpy、海风CTP等。反复比较,最终选择了VNPY做为主要参照,原因是架构简明、概念清晰,变量命名也符合中国人的思维习惯。

但在深入使用后仍发现诸多难以逾越的障碍,例如:

1. 事件机制导致无法使用向量计算,参数空间稍大一点,计算效率太低

2. 行情数据主要依赖第三方平台,长时间全市场回测缺乏高质量数据

3. 回测引擎撮合机制存在漏洞,长时间跑策略可能导致仓位计算不一致

4. 可视化分析太弱,分析指标太少,无法满足深度评估模型效果需要。

鉴于此,不得不自己想办法开发一套满足如下需求的软件:

1. 拟涵盖行情、指标、策略、回测(优化)、可视化和交易六大板块

2. 充分整合已有优秀成果,比如vnpy封装的交易通道,BackTrader的回测系统构思,pyfolio的图表分析等

3. 多机多核多进程高并发的回测优化引擎,支持多模型、多参数、多合约、多周期进行回测分析,并且能保存结果

4. 支持多种交易环境参数设置,部分参数可并入回测参数中,方便做比较分析。

== 目前已完成: ==

一、行情板块

1. 目前已实现从sina、jsy、tdx、csv、h5、parquet、sqlite、postgresql等获取和整合历史数据

2. 日盘15分钟间隔处理,夜盘日期偏移处理

3. 分钟Bar在任意频度级别上的聚合, 如N分钟,N小时,N日,N周等

4. 支持增量更新和备份,采用存取效率都很高的Parquet格式

5. 支持主力合约连续,并且可自定义复权方式(不复权,前复权,后复权,复权又分按比例和按价差两种)

6. 支持价差合约和投资组合定义,可分别给不同合约设定不同的权重,包括多空方向

二、指标板块

1. 参照通达信、文华函数库,构建了一套先对人性化的公式系统

2. 保留向量计算的时间索引,方便后续做更高级别的聚合(有别于Vnpy的ArrayManager)

三、策略板块

1. 从策略模型中分拆出交易信号,方便日后转换为多因子

2. 交易信号支持向量级回测,可以配套自研的高并发多进程回测引擎

3. 以单个壳策略文件嵌入VNPY环境运行,通过配置参数来使用不同的信号模型

4. 改造vnpy的回测引擎以及策略引擎,使支持本地数据无缝接入

5. 支持主力合约连续交易以及移月换约操作

四、回测(优化)板块

1. 多机多核多进程高并发分布式计算引擎(原打算用Ray替换,发现涉及到中间产生Pandas就会报错)

2. 回测结果自动存储云端数据库,方便做进一步的统计分析比较

3. 更加丰富的回测指标,包括:资金/成本/回撤、逐笔盈亏、持仓周期、多空对比、盈亏对比、前瞻分析等

五、可视化板块

1. 参数高原三维图分析

2. K线叠图分析

3. 资金/成本/回撤曲线

4. pyfolio图表分析

六、交易板块

1. 目前仍然主要依托Vnpy进行交易

2. 增加了丰富的交易环境参数,包括:止盈止损、信号过滤、仓位策略、成交价策略、时点策略、费率等等

3. 支持冲击成本价计算

4. 支持移月换约

5. 支持动态补充最新K线

6. 支持动态保存和恢复策略参数 7. 支持交易记录导出

== 未来计划: ==

1. 构建在线版策略编排和回测,同时增加在线可视化分析功能

2. 多因子研究和利用平台

3. 支持机器学习模型

欢迎量化同行交流!微信号:wakeblade(顽刀)

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

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

相关文章

SSM整合01:

1.1原始方式整合 11.编写相应配置文件 Spring配置文件:applicationContext..xml SprngMVCi配置文件:spring-mvc.xml MyBatis映射文件:AccountMapper..xml .MyBatis核心文件:sqlMapConfig.xml 数据库连接信息文件:idbc.…

[C++数据结构](34)B树

文章目录B 树概念与性质B 树基本操作与实现框架查找插入遍历B 树性能分析及其优势B 树概念与性质 1970 年,R.Bayer 和 E.mccreight 提出了一种适用于外查找的树,它是一种平衡的多叉树,称为 B 树(或 B-树、B_树)。 一…

数字先锋 | 主机、硬盘、CPU统统没有? 这个电教室有点“潮”!

百年大计,教育为本。在数字中国建设整体布局和推进下,教育新基建为教育高质量发展构筑了数字底座,更为教育创新变革提供了强大的技术基础和应用环境。近年来,教育部门紧抓新一代信息技术发展机遇,赋能学校高质量发展&a…

使用YOLOV5训练口罩检测模型

一、YOLOV5源码和口罩数据集的下载与导入 我是在github上下载的,地址是GitHub - ultralytics/yolov5 at v7.0,下载之后,我将其导入pycharm环境中, 数据集在roboflow上面下载的,地址是Computer Vision Datasets&#…

Linux基础-压缩与打包

该文章主要为完成实训任务,详细实现过程及结果见【参考文章】 参考文章:https://howard2005.blog.csdn.net/article/details/127129580 文章目录一、压缩与打包1.1 压缩1.2 打包1.3 压缩或打包文件常见拓展名二、gzip命令2.1 命令作用2.2 选项参数2.3 实…

python中pandas进行数据分析与可视化(1)

1.创建数据源 matplotlib库是用于数据可视化,pandas则是用于数据分析,在导入这两个包之后,我们可以手工创建两个数据,其表示的是在某一年里,不同名称的新生儿数量,比如被叫做Bob的新生儿有968位 import m…

基于模型预测算法的混合储能微电网双层能量管理系统研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

动态规划之01背包问题

背包练习网址https://www.luogu.com.cn/contest/92872 想要做题的话可以到这里面来进行完成(邀请码:r36l)。注:要输入邀请码才可以进入。 满篇都是干货,有详细的注释和代码,请放心观看。 这就是传说中的 0…

[附源码]Python计算机毕业设计二手交易平台管理系统Django(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等…

数据生态第四弹 | OpenMLDB Hive Connector,架构起数据仓库到特征工程的生态桥梁

导读 近日,OpenMLDB 实现了与开源数据仓库软件 Hive 的连接,继完成与 Kafka、Pulsar、RocketMQ 等实时数据源生态整合后,持续构建离线数据生态,期待建设一个更加全面一体的上下游生态圈,在吸引更多用户的同时也能降低…

【能效管理】AcrelEMS-UT综合管廊能效管理平台解决方案应用分析

平台概述 AcrelEMS-UT综合管廊能效管理平台集电力监控、能源管理、电气安全、照明控制、环境监测于一体,为建立可靠、安全、高效的综合管廊管理体系提供数据支持,从数据采集、通信网络、系统架构、联动控制和综合数据服务等方面的设计,解决了…

DC-4靶场教程

探测目标靶机,获取到ip arp-scan -l扫描开放的端口 masscan -p1-65535 192.168.250.213 --rate10000使用nmap获取端口、服务版本、系统等详细信息 nmap -sC -sV -p- -A -T4 192.168.250.213查看使用的中间件 whatweb http://192.168.250.213/访问80端口 没有其…

NLP 模型“解语如神”的诀窍:在文本分类模型中注入外部词典

一. 引言 现实世界的文本表述如恒河沙数,以惊人的速度变换着,人工智能(AI)在快速识别形形色色的文本之前,必须经过充足的训练数据洗礼。然而,面对复杂多变的文本表述,NLP 模型往往无法从有限的…

架构设计(一):从单服务器模式到负载均衡设计

架构设计(一):从单服务器模式到负载均衡设计 作者:Grey 原文地址: 博客园:架构设计(一):从单服务器模式到负载均衡设计 CSDN:架构设计(一&…

latex设置citation显示作者+年份

如果是bib文件分开放,并且每个引用都明确写了author和year,那么直接\citep 就可以,就能产生(abc et al., 2015) 这种格式, 如果你不想要圆括号,可以使用\usepackage[square]{natbib}, 也可以使用\setcitestyle{authoryear,open{(}…

java计算机毕业设计基于安卓Android的论坛App

项目介绍 首先,论文一开始便是清楚的论述了系统的研究内容。其次,剖析系统需求分析,弄明白“做什么”,分析包括业务分析和业务流程的分析以及用例分析,更进一步明确系统的需求。然后在明白了系统的需求基础上需要进一步地设计系统,主要包罗软件架构模式、整体功能模块、数据库设…

【Kubernetes】Pod数据存储

kubernetes,是一个全新的基于容器技术的分布式架构领先方案,是谷歌严格保密十几年的秘密武器----Borg系统的一个开源版本,于2014年9月发布第一个版本,2015年7月发布第一个正式版本。 kubernetes的本质是一组服务器集群&#xff0…

时间序列异常检测(adtk)

1. 获取时间序列数据 未安装adtk的先安装:pip install adtk 2.阈值检测 adtk.detector.ThresholdAD(lowNone, highNone) 参数: low:下限,小于此值,视为异常 high:上限,大于此值,视为…

基于java+springboot+mybatis+vue+mysql的4S店车辆管理系统

项目介绍 任何系统都要遵循系统设计的基本流程,本系统也不例外,同样需要经过市场调研,需求分析,概要设计,详细设计,编码,测试这些步骤,基于java语言设计并实现了4S店车辆系统&#…

回溯3-----BFS(一石激起千层浪)

文章目录广度优先搜索力扣429-----N叉树的层序遍历力扣994-----腐烂的橘子力扣127 -------单词接龙力扣725------打开转盘锁广度优先搜索 需要借助 队列 来解决问题 例如二叉树的层序遍历 : 1, 将根节点入队 2, 队列出队的时候, …