Skip to main content

Quant1X量化研究

Project description

Quant1X 量化交易实验室

License C++ Go Rust Python CMake

Quant1X 是一个多语言量化交易框架,支持 C++、Go、Rust、Python,提供完整的量化交易解决方案,包括数据处理、策略开发、回测引擎、实时交易等功能。

✨ 特性

  • 多语言支持:C++20、Go 1.25、Rust 1.88+、Python 3.12+
  • 高性能:优化的算法和数据结构,支持 SIMD 指令集
  • 模块化设计:可插拔的组件架构,易于扩展
  • 实时数据:支持 Level1/Level2 市场数据
  • 策略框架:内置多种技术指标和策略模板
  • 回测引擎:高效的回测系统,支持多资产组合
  • 网络通信:内置 HTTP/WebSocket 客户端,支持多种协议

📋 环境要求

系统要求

  • 64位操作系统 (Windows/Linux/macOS)
  • 至少 8GB RAM,推荐 16GB+
  • 支持 AVX2 指令集的 CPU

语言版本

语言 版本要求 推荐版本
Python 3.12+ 3.12.x
Go 1.25+ 1.25.x
Rust 1.88+ 1.88+ (2024)
C++ C++20 GCC 14.3+/Clang 18+/MSVC 14.3+

🚀 快速开始

1. 环境配置

1.1 默认均为64位操作系统

python golang rust c++
3.12.x 1.25.x 1.88+/2024 gcc14.3+/clang18+/msvc14.3+

1.2 环境安装推荐使用brew

安装brew时需要注意避免使用root权限

2. python

python的运行环境可能存在多个版本冲突的问题,那么怎么来解决多版本的共存的问题呢?使用pyenv。

2.1 安装pyenv

brew install pyenv

2.1.1 查看已安装的版本

pyenv versions

我的电脑返回以下版本信息

  system
  3.8.16
* 3.10.10 (set by /Users/${USERNAME}/.pyenv/version)

2.1.2 查看可安装的版本

pyenv install -l

2.1.3 安装指定版本的python, 本文指定3.12.9或3.12.x更新版本

pyenv install 3.12.9

2.1.4 pip类库管理工具

安装python完成之后, python类库管理工具pip已经默认安装完成了

2.1.5 python基础工具

工具 功能
pip 类似maven、gradle、go mod的类库管理工具
pip-autoremove 自动删除类库所有依赖库
pipreqs 项目/类库交叉依赖检测

2.1.6 pip 源配置

windows

cd ~\AppData\Roaming\pip
notepad.exe pip.ini

*nix

cd ~/.pip
vim pip.conf

输入以下内容

[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host = https://pypi.tuna.tsinghua.edu.cn

2.2 依赖库

python环境中依赖管理的配置文件为requirements.txt,类似java的maven pom.xml、golang的go.mod。

2.2.1 安装项目依赖的库

pip install -r requirements.txt

2.2.2 检测项目依赖输出到requirements.txt

pip freeze > requirements.txt

2.2.3 交叉依赖

pip install pipreqs
pipreqs ./ --encoding utf8

2.3 上传package到PyPi

2.3.1 安装或更新setuptools、wheel、twine

pip install --upgrade setuptools wheel twine

2.3.2 打包并生成tar.gz和whl文件

python setup.py sdist bdist_wheel

2.3.3 上传package到PyPi的测试环境

twine upload --repository testpypi dist/*

2.3.4 上传package到PyPi的正式环境

twine upload dist/*

2.4 Matplotlib中文乱码问题解决方案

2.4.1 编写如下代码,获取matplotlib包所在的配置文件的路径

import matplotlib
matplotlib.matplotlib_fname() #输出matplotlib包所在的配置文件的路径

2.4.2 根据上面的路径打开文件夹(根据自己实际的输出路径去操作)

我选择了SimHei中文字体, 复制到fonts/ttf/目录下

cp -r /Users/${USERNAME}/Library/Fonts/SimHei.ttf fonts/ttf/

2.4.3 编辑2.4.1获得路径matplotlibrc文件

2.4.3.1 找到 #font.sans-serif,去掉前面的#,并在:后面写上在准备工作加入的中文字体的名称SimHei

2.4.3.2 找到#axes.unicode_minus,去掉前面的#,并在:改为False

2.4.4 控制台切换到~/.matplotlib目录, 删除tex.cache文件和fontList.json文件

cd ~/.matplotlib
rm -rf *

3. golang 开发环境

环境设定

go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct
go env -w GOPRIVATE=gitee.com

4. Rust 开发环境

# 安装 Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

# 更新到最新版本
rustup update

5. c/c++ 开发环境

🤝 贡献

欢迎贡献代码!请遵循以下步骤:

  1. Fork 本项目
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 创建 Pull Request

开发规范

  • 遵循各语言的编码规范
  • 添加单元测试
  • 更新文档
  • 确保所有测试通过

📄 许可证

本项目采用 Apache 2.0 许可证 - 查看 LICENSE 文件了解详情。

📚 相关链接


注意: 本项目仅用于学习和研究目的,不构成投资建议。在实际交易前,请充分了解风险并咨询专业人士。

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

quant1x-0.6.70.tar.gz (38.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

quant1x-0.6.70-py3-none-any.whl (40.3 kB view details)

Uploaded Python 3

File details

Details for the file quant1x-0.6.70.tar.gz.

File metadata

  • Download URL: quant1x-0.6.70.tar.gz
  • Upload date:
  • Size: 38.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for quant1x-0.6.70.tar.gz
Algorithm Hash digest
SHA256 02f78cfbaf3f25c86052f3c29c10279128b7b45789dc7f6bea8950df38b67e3b
MD5 45aad9f1a546c73ef307dc850e73bece
BLAKE2b-256 db27efd2b3267e263db4a69411d7e3edcce3d749d73901e452de6906ca899b9f

See more details on using hashes here.

File details

Details for the file quant1x-0.6.70-py3-none-any.whl.

File metadata

  • Download URL: quant1x-0.6.70-py3-none-any.whl
  • Upload date:
  • Size: 40.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for quant1x-0.6.70-py3-none-any.whl
Algorithm Hash digest
SHA256 a4de11e195c0e8cd68811b820bf64c709833595251229866a9697eb6b82fcb59
MD5 d668ce164485e789508b535e032f8854
BLAKE2b-256 ed13622ce48de501a52410dcad4b106fbcd653cdf01f507946552fa4e6257679

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page