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,一经查实,立即删除!

相关文章

国内镜像地址 Docker、Conda、Node

国内主要系统、软件、开发框架镜像地址,包括 NPM、Centos、Ubuntu、Docker、PIP、Homebrew等。 Conda镜像 conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ conda config --add channels https://mirrors.tuna.tsinghua.e…

【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. 新节点插入较高左…

BM5 合并k个已排序的链表

描述 合并 k 个升序的链表并将结果作为一个升序的链表返回其头节点。 数据范围&#xff1a;节点总数 0≤&#x1d45b;≤50000≤n≤5000&#xff0c;每个节点的val满足 ∣&#x1d463;&#x1d44e;&#x1d459;∣<1000∣val∣<1000 要求&#xff1a;时间复杂度 &am…

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

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

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

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

二维费用背包分组背包

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

基于Python的简单自动聊天机器人的设计与实现

基于Python的简单自动聊天机器人的设计与实现 Design and Implementation of a Simple Chatbot using Python 完整下载链接:基于Python的简单自动聊天机器人的设计与实现 文章目录 基于Python的简单自动聊天机器人的设计与实现摘要第一章 引言1.1 研究背景1.2 研究目的1.3 研…

WPF之页的使用

1,Page介绍。 Page直接从FrameworkElement中派生出来&#xff0c;WIndow从ContentControl中派生。 [Localizability(LocalizationCategory.Ignore)]public class Window : ContentControl, IWindowService{....} [ContentProperty("Content")]public class Page : Fr…

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

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

java 数组和ArrayList类

Java中的数组和ArrayList类都是用于存储一组元素的数据结构,但它们之间有一些重要的区别。 Java中的数组和ArrayList类 类似于c++中的std::array和std::vector. 数组: 数组是一种固定大小的数据结构,一旦创建,其大小不能改变。数组可以存储基本数据类型(如int、double等…

Java实战:递归查找指定后缀名的文件

在日常的软件开发中&#xff0c;经常需要处理文件操作。假设我们有一个需求&#xff1a;从一个包含大量JSON文件的文件夹中提取出所有的JSON文件以进行进一步处理。本文将介绍如何利用Java编写一个高效的方法来递归查找指定后缀名的文件。 代码实现&#xff1a; import java.i…

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

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

Linux 操作系统MySQL 数据库1

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

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

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

static关键字作用

1. 静态局部变量 在函数内部定义的静态局部变量在函数调用结束后不会被销毁&#xff0c;而是保留其值&#xff0c;直到程序结束。在下次函数调用时&#xff0c;该变量的值仍然保留。这使得静态局部变量具有跨越函数调用的“记忆”功能。 2. 静态全局变量 在全局作用域中定义的…

测试萌新三天速通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 程序&#xff08;可参考&#xff1a;【Linux 网络】网络编程套接字 -- 详解-CSDN博客&#xff09; 2、测试工具 Windows - cmd 窗口 输入命令&#xff1a;telnet [云服务器的公网ip] [port] 二、腾讯云安全组开放端口 1、安全组设…