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

news2024/11/28 10:34:07

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.coloradmin.cn/o/1668487.html

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

相关文章

windows窗口消息队列与消息过程处理函数

在Windows窗口应用程序中,消息队列和窗口过程函数是实现消息驱动机制的核心组件。 消息队列(Message Queue): 消息队列是用于存储窗口消息的缓冲区。当用户与应用程序交互时,系统会将生成的消息插入到消息队列中&…

C++11:常用语法汇总

目录 🍁统一的列表初始化 { }initializer_list 🍁decltype 推导表达式类型🍁可变参数模板解析可变参数包方法一方法二 🍁lambda 表达式捕捉列表的使用运用场景举例lambda表达式 与 函数对象 🍁统一的列表初始化 { } 在…

电商购物系统首页的商品分类

如上图对商品的一个分类实际上和省市区的分类十分类似 , 都是通过自关联的方法来实现 , 但是这里不同的是 , 涉及到外键来获取数据 首先让我们来看一下最后通过后端返回数据的形式是什么样子的 """{1:{channels:[{id:1 , name:手机 , url:},{}{}],sub_cats:[{…

苍穹外卖面试总结

项目介绍 我完成了一个外卖项目,名叫苍穹外卖,是跟着黑马程序员的课程来自己动手写的。 项目基本实现了外卖客户端、商家端的后端完整业务。 商家端分为员工管理、文件上传、菜品管理、分类管理、套餐管理、店铺营业状态、订单下单派送等的管理、数据…

考研数学|强化阶段怎么刷《660》《880》《1000》?

强化阶段想要刷好题,首先要选一本适合自己的题集! 一般在强化阶段,大家用多个最多的题集就是660题,880题还有1000题 660题的特点是只训练客观题,虽然题目的质量很高,但是训练面还是比较窄 880题是综合训…

【SpringBoot】 什么是springboot(二)?springboot操作mybatisPlus、swagger、thymeleaf模板

文章目录 SpringBoot第三章1、整合mybatsPlus1-234-67-10问题2、整合pageHelper分页3、MP代码生成器1、编写yml文件2、导入依赖3、创建mp代码生成器4、生成代码5、编写配置类扫描mapper类6、编写控制器类4、swagger1、什么是swagger2、作用3、发展历程4、一个简单的swagger项目…

ADC模-数转换原理与实现

1. 今日摸鱼计划 今天来学习一下ADC的原理,然后把ADC给实现 ADC芯片:ADC128S102 视频: 18A_基于SPI接口的ADC芯片功能和接口时序介绍_哔哩哔哩_bilibili 18B_使用线性序列机思路分析SPI接口的ADC芯片接口时序_哔哩哔哩_bilibili 18C_基于线性序列机的S…

MFC的句柄概念以及句柄类型

在MFC(Microsoft Foundation Class)桌面应用程序中,窗口是通过句柄(Handle)来进行管理和操作的。 句柄是一个标识符,用于唯一标识和引用窗口、控件、设备上下文等对象。在MFC桌面应用程序中,常…

mac -- Navicat premium for mac 12的安装破解过程

下载准备好dmg文件,接下来开始安装破解。 镜像在官网下载,复制打开链接可以直接下载,可以直接下载中文版,不需要汉化:(下载包不能用,留言我发给你) 英文64位: http://dow…

【0003day】VOSviewer分析

这个软件也可以用知网,也可以用web of science。 首先,需要创建数据。这个数据如何创建,需要参考对应的教程。(本文以web of science为平台来做分析。) 首先,创建对应的数据库。 一直下一步 让后选择完…

Linux重定向及缓冲区理解

重定向: 在上一期虚拟文件系统中讲到了每个进程在打开后,都会默认打开3个文件,如下: stdin 标准输入(键盘) 文件描述符:0 stdout 标准输出(显示器)文件描述符&a…

Boss让你设计架构图,你懵逼了,解救你的参考图来啦。

架构图是指用于描述系统或软件的结构和组成部分之间关系的图形表示。 它是一种高层次的图示,用于展示系统的组件、模块、接口和数据流等,以及它们之间的相互作用和依赖关系。架构图通常被用于可视化系统的整体设计和组织结构,帮助人们理解系…

分享10类正规的网上赚钱平台,让你摆脱单一收入

在这个互联网飞速发展的时代,你是否还在为单一的收入来源而焦虑?别担心,今天带你解锁10种网上赚钱的新姿势,让你的收入不再单一,甚至可能翻倍! 1. 文库类:知识的变现 你知道吗?你的…

利用IP地址查询解决被“薅羊毛”的方法

在互联网时代,随着各种网络诈骗手段的不断更新和演变,“薅羊毛”成为了一种常见的网络犯罪行为。其中,利用查询IP地址进行欺诈活动已经成为一种普遍的手段。当个人或组织的IP地址被不法分子查询后,可能会面临虚假注册、盗取个人信…

三. TensorRT基础入门-剖析ONNX架构并理解ProtoBuf

目录 前言0. 简述1. 执行一下我们的python程序2. ONNX是什么?3. onnx中的各类Proto3.1 理解onnx中的ValueInfoProto3.2 理解onnx中的TensorProto3.3 理解onnx中的NodeProto3.4 理解onnx中的AttributeProto3.5 理解onnx中的GraphProto3.6 理解onnx中的ModelProto 4. …

Google与哈佛大学的科学家团队共同创造了一张人脑中一个极小部分的精细地图

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

Python悬置动刚度模拟及复数绘制

Python悬置动刚度模拟及复数绘制 1、复数绘制极坐标图2、动刚度的计算公式3、悬置动刚度的影响因素4、 AVL Excite 悬置动刚度的模拟 1、复数绘制极坐标图 # _*_ coding:UTF-8 _*_import matplotlib.pyplot as plt import numpy as np# 定义复数数组 complexNums [1.5 1.2j,…

Python网络爬虫原理及实践

1 网络爬虫 网络爬虫:是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。 网络爬虫相关技术和框架繁多,针对场景的不同可以选择不同的网络爬虫技术。 2 Scrapy框架(Python) 2.1. Scrapy架构 2.1.1. 系统…

io_uring的使用示例及其解释

io_uring的使用示例及其解释 1 io_uring机制1.1 io_uring机制1.2 io_uring系统调用接口功能介绍1.2.1 io_uring_setup():1.2.2 io_uring_enter():1.2.3 io_uring_register(): 2 liburing2.1 liburing简介2.2 liburing编译2.2.1 liburing的代码…

如何快速展示专业:掌握类的基本概念-类/方法/关键字/变量/数据类型/注释

在李笑来的《财富自由之路》中提到一种初学者快速入门的学习方法:快速掌握最小必要知识。 关于Java的类,最少必要知识就是本文提到的基本概念,掌握了这些基本概念,就对类有了基本的了解,为后续的深入学习和沟通奠定了基…