1 Star 0 Fork 9

侯松 / quanthub

forked from jiangtiantu / quanthub 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

,

报告问题 · 功能需求

一个轻量清晰,容易上手的,数据/投研/交易集成框架

🐼QuantHub简介

首先 QuantHub 是个圈地自萌的小社区,里面的人个个是人才,长得好看(❤´艸`❤),说话又好听。

其次 quanthub 是个体验感很好的量化集成框架,目前开源的是实际生产环境的一个简化版本,几乎涵盖了(数据/投研/组合/交易/分析)所有环节。

它足够简单,足够自由,你可以像搭积木一样,搭配自己喜欢的技术栈,让它成为最适合你的开发利器!

它的架构肯定是没有问题的,几乎可以说是很标准了,搭配合适的技术栈,是可以成为一个企业级的框架的;

最后,感谢这两年多来,不断支持 QuantHub项目成长,给予帮助和建议的朋友🍑🍑🍑~

✨ 工具特性

  • 自由,自由,还是***D 自由,你可以随心所欲的魔改 DIY,可扩展,可升级;

  • 简单,简单,足够轻松上手的简单,这是一整套完整的体系,来源于实际的各生产环节;

💻 项目结构

quanthub包含以下几个部分(请原谅我是个取名废材,o(////▽////)q):

datahub

  • 这是一个落地数据库,你可以直接把你想要的数据放到本地,并通过data_sync进行每日同步更新。
  • 储存形式任意,你可以按照自己的喜好进行选择,目前我实际生产环境用的clickhouse+parquet+duckdb;
  • 该数据库包含:股票,期货,期权,基金的历史行情数据,以及相应的实时数据;
  • 数据的ETL相关代码,请查阅plutus.data 模块
  • 该数据库还包含,各种另类数据和基本面数据,具体内容,请查看datahub 文档;

factorhub

  • 这是落地一个因子数据库,可以是你喜欢的任意形式,为方便上传,该项目采用的parquet文件存储;
  • 也是一个因子回测框架,包含截面因子回测和时序因子回测两大类;
    • 投研环境下,相关回测逻辑,请阅读plutus.research模块
    • 生产环境下,批量计算因子,请查看plutus.factor模块
  • 因子面板(更新中);
  • 一个因子交换和交流平台(目前是以微信群的方式),有想加入的小伙伴,请私下联系;
  • 具体内容说明,请查看factorhub文档;

signalhub

  • 这是落地一个信号数据库,是对因子数据的进一步处理,可以是你喜欢的任意形式,为方便上传,该项目采用的parquet文件存储;
  • 生产环境下,批量计算信号,请查看plutus.signal 模块
  • 交易信号面板(更新中);
  • 大部分人可能用不到这个模块,如果不需要篮子交易的话;
  • 具体内容说明,请查看signalhub文档;

positionhub

  • 这是落地一个账户持仓数据库,是对信号数据的进一步处理,可以是你喜欢的任意形式;
  • 生产环境下,批量计算信号,请查看plutus.position模块
  • 大部分人可能用不到这个模块,如果不需要篮子交易,或者需要多账户交易的话;
  • 具体内容说明,请查看positionhub文档;

researhub

  • 投研平台,本质是jupyter lab;
  • 我对该模块的定义是存放,我们数据分析的各类notebook文件,以及各种测试代码;
  • 具体内容说明,请查看researhub文档;

paperhub

  • 一个放资料的地方,包含各类视频和各种PDF等等文件,几乎你能在互联网上找到的所有可能有点用的学习资料
  • 资料总大小大概200g 左右,分类如下:
    • 股票
    • 基金
    • 期货
    • 期权
    • 资产配置
    • 高频
    • 债券
  • 具体内容说明,请查看paperhub文档;

tradehub

  • 关于交易,我们的理念是,不同标的,不同策略,可能需要的交易框架是不一样的。你喜欢的,适合的就是最好的;
  • 所以,我们直接集成了一些优秀的开源交易框架:
    • wondertrader
    • ctpbee
    • fk_ctp
    • tqsdk
    • 期待能与更多的开源框架作者建立联系,感谢你们为开源社区做出的贡献~
  • 具体内容说明,请查看tradehub文档;

jobhub

  • 一个方便同行进行招聘与求职的板块
  • 目前是和以下金融ip小伙伴,同步更新,微信公众号,知乎等等自媒体;
    • FOF小菜鸟;
    • 期待能与更多的金融自媒体和IP建立联系
  • 具体内容说明,请查看jobhub文档;

gamehub

  • 一个业内朋友一起打游戏的板块;
  • 具体内容说明,请查看gamehub文档;

lovehub

  • 一个征婚交友的地方;
  • 具体内容说明,请查看lovehub文档;

plutus(核心)

  • plutus是另外一个小伙伴给起的名字,翻译为财神爷,哈哈,是不是凭这个就该关注下了呢
  • 后台框架,该项目核心,分为以下模块和文件:
├─data
│  │  data_base.py
│  │  __init__.py
│  │
│  ├─data_backup
│  │      backup_data.py
│  │      __init__.py
│  │
│  ├─data_download
│  │      download_base.py
│  │      download_from_bs.py
│  │      download_from_ctp.py
│  │      download_from_sge.py
│  │      __init__.py
│  │
│  ├─data_prepare
│  │      prepare_base.py
│  │      prepare_center_data.py
│  │      prepare_his_parquet.py
│  │      prepare_rt_redis.py
│  │      preppare_his_redis.py
│  │      __init__.py
│  │
│  ├─data_pretreat
│  │      pretreat_base.py
│  │      pretreat_from_bs.py
│  │      pretreat_from_diy.py
│  │      __init__.py
│  │
│  ├─data_process
│  │      process_base.py
│  │      process_cn_future_index.py
│  │      process_cn_future_md.py
│  │      process_cn_future_master.py
│  │      process_cn_future_trade.py
│  │      process_cn_stock_master.py
│  │      process_cn_stock_trade.py
│  │      process_sg_future_md.py
│  │      __init__.py
│  │
│  ├─data_sync
│  │      __init__.py
│  │      sync_base.py
│  │      sync_data.py
│  │
│  ├─data_update
│  │      update_base.py
│  │      update_data.py
│  │      __init__.py
│  │
│  └─data_wrangle
│          resample_data.py
│          standard_data.py
│          __init__.py

├─execution
│      cal_factor.bat
│      cal_signal.bat
│      run_prepare_data.bat
│      run_update_data.bat

├─factor
│  │  factor_base.py
│  │  __init__.py
│  │
│  ├─factor_calculate
│  │      cal_cn_future_cs_1d.py
│  │      cal_cn_future_ts_1d.py
│  │      cal_factor_base.py
│  │      __init__.py
│  │
│  ├─factor_define
│  │      cn_future_cs_1d_mom.py
│  │      cn_future_ts_1d_mom.py
│  │      __init__.py
│  │
│  ├─factor_operator
│  │      cs_operator.py
│  │      ts_operator.py
│  │      __init__.py
│  │
│  └─factor_process
│          __init__.py

├─position
│  │  position_base.py
│  │  __init__.py
│  │
│  ├─position_calculate
│  │      cal_cn_future_cs_1d.py
│  │      cal_position_base.py
│  │      __init__.py
│  │
│  └─position_process
│          process_position.py
│          __init__.py

├─research
│  │  __init__.py
│  │
│  ├─backtest
│  │  │  backtest.py
│  │  │  statistics.py
│  │  │  __init__.py
│  │
│  ├─models
│  │      predict_model.py
│  │      train_model.py
│  │      __init__.py

├─signal
│  │  signal_base.py
│  │  __init__.py
│  │
│  ├─signal_calculate
│  │      cal_cn_future_cs_1d.py
│  │      cal_signal_base.py
│  │      __init__.py
│  │
│  ├─signal_portfolio
│  │      cal_portfolio_weight.py
│  │      __init__.py
│  │
│  └─signal_process
│          process_signal.py
│          __init__.py

├─trader
│      __init__.py

├─utils
│  │  __init__.py
│  │
│  ├─database
│  │      ck_control.py
│  │      dk_control.py
│  │      __init__.py
│  │
│  ├─exception
│  │      error.py
│  │      __init__.py
│  │
│  ├─tool
│  │      add_sys_path.py
│  │      configer.py
│  │      datetime_wrangle.py
│  │      decorator.py
│  │      email.py
│  │      freeze_requirement.py
│  │      logger.py
│  │      requirements.txt
│  │      __init__.py
│  │
│  ├─visualization
│  │  │  plot.py

🚀 使用说明

第一步:克隆仓库

确保服务器安装了 Git,否则需要先 安装 git 命令安装软件:

git clone https://github.com/jiangtiantu/quanthub.git

如果因为网络问题无法连接,可以使用国内镜像仓库,但是镜像仓库会有 30 分钟的延迟:

git clone https://gitee.com/jiangtiantu/quanthub.git

或者直接点击项目右上角下载;

第二步:构建你的想法

根据你的经验,你的猜测,提出一个可能的投研思路,一个研究和交易的方向。 如果你没有任何想法,可以先看看paperhub中的资料,找找灵感

第三步:获取数据

  • 查看datahub面板数据,根据你的思路,选取你需要的数据。

第四步:打开投研DEMO,享受你的量化之旅

  • 在researhub里有为你准备好的大量投研demo,请查看reasearhub

第五步:将数据转化为因子

  • 正常情况下,先做单因子分析
  • 如果已经有很成熟的因子库了,走factor,signal 批量生成和转化,将数据存放到factorhub,signalhub

第六步:将因子转化为实际交易的仓位

  • 这里会涉及到因子组合和信号组合两个问题,确定自己需要怎样的组合方式,将结果输出到positionhub

第七步:选择喜欢的合适的交易框架

  • 看看tradehub 中有没有你喜欢的交易框架,尽量少造轮子呀
  • 当然,非常欢迎大佬提交自己的框架,多多宜善

第八步:评估分析,优化提高

  • 一个循环...

📝 升级打怪之路

ok,走过了上面的流程,你已经掌握了量化投资的基本套路了。
接下来,或自己,或和小伙伴,开启新的升级打怪之路了!!!!
这个行业真的是太jer卷了,例如期货市场,本质上就是一个零和博弈的市场。
在这个赌场里,如果你不能跟随市场成长和进化,那么你就是那只被抓的🐟🐋🐳🐬;
如果你不知道怎么避免成为一个韭菜,那么你就是那个韭菜!
所以,做好一直卷下去的准备吧;
如果你准备好了,那就去尝试吧,每次失败的经验,都将帮助你逼近那些正确的方向!

但一定一定,切记,投资有风险,入市需谨慎;活下来,比什么都重要!
# 生活不易,猫猫叹气,加油(ง •_•)ง!

🤝 参与共建

  • 要做的东西太多了,本项目应该会处于长期快速迭代更新;
  • 我们欢迎所有的贡献者,也期待能结识更多金融圈开源小伙伴,你可以将任何想法作为 pull requests 或 GitHub issues 提交。关于代码如果有任何疑惑的地方,可以先看下,name_rule是否能解决问题。顺颂商祺 :)
MIT License Copyright (c) 2022 jiangtiantu Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

首先 QuantHub 是个圈地自萌的小社区,里面的人个个是人才,长得好看(❤´艸`❤),说话又好听。 其次 quanthub 是个体验感很好的量化集成框架,目前开源的是实际生产环境的一个简化版本,几乎涵盖了(数据/投研/组合/交易/分析)所有环节。 它足够简单,足够自由,你可以像搭积木一样,搭配自己喜欢的技术栈,让它成为最适合你的开发利器! 展开 收起
Python
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Python
1
https://gitee.com/songhou/quanthub.git
git@gitee.com:songhou/quanthub.git
songhou
quanthub
quanthub
master

搜索帮助