Hikyuu高性能量化研究框架助力探索

Hikyuu Quant Framework 是一款基于C++/Python的开源量化交易分析与研究工具,主要用于A股市场的交易策略分析与回测,目前不支持期货等,需要自行改造。

Hikyuu的目标

Hikyuu的最初目的是为了快速对A股全市场股票进行策略回测和验证,而不是“乌龟拖车”式的漫长等待。为了达成这个目标,Hikyuu除了使用 C++ 来实现快速的计算引擎外,还同时将交易概念进行了抽象和分割,可以自行根据需要进行构建、组合,既能快速重用也避免了复杂代码容易出错的问题。另外,因为部件策略都是统一的命名规则,还带来了一个额外的好处,也就是理论上可以方便进行策略部件级别的组合和探索,更加专注于某一方面策略的性能和影响,甚至使用AI去进行策略部件级别的挖掘,而不是仅仅用来挖掘因子,当然目前还没有实现,仍然需要继续前行与探索。

Hikyuu的性能和缺点

作者本人没有和其他回测框架进行过比较,但之前在知乎上有人做过对比,这里借用一下,大家有兴趣也可以自行搜索下“不同回测框架的比较”:
在这里插入图片描述
在这里插入图片描述

让作者汗颜,虽然个人其实觉得文档其实是有的,只不过更多的是API形式,而没有按使用场景去组织也没有提供更多的示例。另外,Hikyuu是对交易概念的抽象,要想真正用好 hikyuu,需要对“交易是如何赚钱”的有所了解,而不是仅仅只是低买高卖,这也是初入门时的门槛。所以,现在开始补文档,感觉任重道远,也欢迎大家加入星球共建。

即然提到了缺点,这里也说一下 Hikyuu 的缺点(虽然我很想只说优点)供大家更好的进行决策选择:

  • 目前只支持国内A股市场,不支持期货等,但可以自行改造,hikyuu的核心计算引擎和数据存储是分离的
  • 以探索性编程为主,并未提供相关的GUI,需要有一定的编程基础
  • 回测是 onBar 且类向量化的方式,不是事件驱动型的。这是为了进行快速在全市场中进行探索而生的,虽然后续会加入事件驱动级别的回测进行,但目前尚未提供,只是列入计划。向量化的方式也决定了在回测时,通常不能使用前向复权进行测试(原理以后再说)。

Hikyuu的概念架构

这里并不会对Hikyuu进行价格进行详细的介绍,以后再逐一介绍,仅是让大家先有个初步了解,因为后面的示例中会经常出现一些缩写,这里主要让大家了解熟悉Hikyuu中常用缩写代表的含义。

Hikyuu的概念架构如下图所示,其核心计算引擎包含了2个策略框架:单标的系统交易策略(SYS),投资组合策略(PF);9个策略部件:市场环境判断策略(EV)、系统有效条件(CN)、信号指示器(SG)、止损/止盈策略(ST/TP)、资金管理策略(MM)、盈利目标策略(PG)、移滑价差算法(SP)、交易对象选择策略(SE)。

在这里插入图片描述

Hikyuu项目地址

诚邀大家使劲点赞:

国内:https://gitee.com/fasiondog/hikyuu

国外:https://github.com/fasiondog/hikyuu

Hikyuu策略部件与示例公共仓库:

国内:https://gitee.com/fasiondog/hikyuu_hub

国外:https://github.com/fasiondog/hikyuu_hub

在这里插入图片描述

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

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

相关文章

【C++11】列表初始化、右值引用的详细讲解(上)

前言 在一开始学C之前我们就简单的了解了一下C的发展历史。 相比较而言,C11能更好地用于系统开发和库开发、语法更加泛华和简单化、更加稳定和安全,不仅功能更强大,而且能提升程序员的开发效率加了许多特性,约140个新特性。使得C…

《A data independent approach to generate adversarial patches》论文分享(侵删)

原文链接:A data independent approach to generate adversarial patches | Machine Vision and Applications author{Xingyu Zhou and Zhisong Pan and Yexin Duan and Jin Zhang and Shuaihui Wang}, 一、介绍 在图像识别领域,与数字域中的攻击相比…

【C++杂货铺铺】AVL树

目录 🌈前言🌈 📁 概念 📁 节点的定义 📁 插入 📁 旋转 1 . 新节点插入较高左子树的左侧---左左:右单旋 2. 新节点插入较高右子树的右侧---右右:左单旋 3. 新节点插入较高左…

工业级路由器的穿透力是不是更强(原创科普)

今天我想和大家聊聊工业级路由器的一个重要特性——穿透力。作为一名从事工业网络通信的工程师,我发现很多用户在选择工业级路由器时,都会问到一个问题:"工业级路由器的穿透力是不是更强?"下面就让我来为大家解答这个疑问。当然如果有通信产品需要也可以关注星创易联…

Kafka效率篇-提升效率三板斧

kafka在效率上做了很多的努力。最初的一个使用场景是处理网页上活跃的数据,它往往有非常大的体量,每个页面都能产生数十条写入。而且我们假设每条消息都会被至少一个消费者消费(通常是多个),因此,我们努力让…

二维费用背包分组背包

二维费用背包&分组背包 一定要做的

真要这么卷?某国产大模型定价下调90%,百万 tokens 只需 1 元!

就在刚刚,国内明星AI公司——智谱AI官宣重磅炸弹: 将能力对标GPT3.5-Turbo的GLM-3的大模型API调用价格最高下调90%,价格仅为原来的十分之一! 废话不多说,直接上图: 官网地址:https://open.big…

机器视觉技术精准测量点胶高度与宽度:提升生产质量的新利器

在现代化生产线中,点胶工艺是许多产品制造过程中的重要环节。点胶的高度和宽度直接影响到产品的质量和性能。传统的测量方法往往效率低下、精度不高,而机器视觉技术的引入,为点胶高度和宽度的测量带来了革命性的变革。本文将探讨机器视觉如何…

Linux 操作系统MySQL 数据库1

1.MySQL 数据库 数据库是“按照数据结构来组织、 存储和管理数据的仓库”。 是一个长期存储在计算机内的、 有组织的、 可共享的、 统一管理的大量数据的集合。 它的存储空间很大, 可以存放百万条、 千万条、 上亿条数据。 但是数据库并不是随意地将数据进行…

【Qt 学习笔记】Qt常用控件 | 容器类控件 | Group Box的使用及说明

博客主页:Duck Bro 博客主页系列专栏:Qt 专栏关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞👍收藏⭐评论✍ Qt常用控件 | 容器类控件 | Group Box的使用及说明 文章编号&#xff…

测试萌新三天速通python基础(二)列表,字符串,元组,字典,遍历,容器,集合,函数

python基础 字符串下标(索引)切片字符串的替换 replace()字符串拆分 split()字符串的连接 join列表 list列表的增删改查列表的反转 reverse()排序列表嵌套元组 tuple 排序 升序降序交换变量字典 dict查询遍历容器集合函数参数函数的嵌套调⽤函数的返回值模块导⼊的⽅法____name…

【FFmpeg】Filter 过滤器 ② ( 裁剪过滤器 Crop Filter | 裁剪过滤器语法 | 裁剪过滤器内置变量 | 裁剪过滤器常用用法 )

文章目录 一、裁剪过滤器1、裁剪过滤器简介2、裁剪过滤器语法3、裁剪过滤器内置变量4、裁剪过滤器示例5、裁剪过滤器应用6、裁剪过滤器图示 二、裁剪过滤器常用用法1、裁剪指定像素的视频区域2、裁剪视频区域中心正方形 - 默认裁剪3、裁剪视频区域中心正方形 - 手动计算4、裁剪…

【Linux】轻量级应用服务器如何开放端口 -- 详解

一、测试端口是否开放 1、测试程序 TCP demo 程序(可参考:【Linux 网络】网络编程套接字 -- 详解-CSDN博客) 2、测试工具 Windows - cmd 窗口 输入命令:telnet [云服务器的公网ip] [port] 二、腾讯云安全组开放端口 1、安全组设…

【C++】——string类

前言 在C语言里面我们用的字符串都是以\0结尾的字符合集,为了操作方便所以在c中推出了stirng类 一 string介绍 1.string是表示字符串的字符串类 2.因为是类,所以他会有一些常用的接口,同时也添加了专门用来操作string的常规操作 3.string…

揭秘高效引流获客的艺术:转化技巧大公开

在数字化营销的海洋中,每个企业都如同一艘努力航行的船,而流量便是推动船只前行的风帆。如何有效吸引并获取潜在客户,即所谓的“引流获客”,已成为企业市场营销策略中不可或缺的一环。本文将详细探讨几种实用且高效的引流获客技巧…

Ardupilot开源代码之Rover上路 - 后续1

Ardupilot开源代码之Rover上路 - 后续1 1. 源由2. 问题汇总2.1 问题1:飞控选择2.2 问题2:飞控安装位置和固定2.3 问题3:各种插头、插座配套2.4 问题4:分电板缺陷2.5 问题5:电机编码器接线及正反向问题2.6 问题6&#x…

【C++】stack和queue 适配器

🔥个人主页:北辰水墨 🔥专栏:C学习仓 本节内容我们来讲解栈和队列的模拟实现,文末会赋上模拟实现的代码 一、stack的使用和模拟实现 stack适配器的介绍: 1. stack是一种容器适配器,专门用在具…

基于openEuler22.03 LTS环境的容器项目实训——分布式微服务项目部署

一、说明 本文配置环境为VMware虚拟机(4核CPU,4 GB内存,40GB磁盘),OS为openEuler 22.03 LTS ,虚拟机要求能联网。 二、安装docker环境 2.1 安装docker相关软件包 [rootnode01 ~]# dnf -y install docker…

Windows环境下VSCode加MinGw-W64搭建C/C++开发环境

前言: 本文记录了自己在配置 Windows环境下 VSCode,并安装MinGW-W64来搭建windows操作系统下下的C/C开发环境。本文重点参考了如下链接中知乎上的文章里介绍的方法,在windows上安装 MinGW-W64。 vscode c/c环境配置(MinGW&…

深度学习中的一些概念

训练术语 欠拟合 欠拟合是指模型没有很好地捕获到数据特性,不能完整地表示数据的全部信息,也就是模型的复杂度低于应有的水平。例如,假设一个数据集实际上服从二阶多项式分布,但我们使用一阶线性模型去拟合它,这样的…