finarthur是C++实现的轻量级开源量化金融框架

finarthur是C++实现的轻量级开源量化金融框架,包括交易系统、数据系统、回测工具、研究分析系统、运维工具以及可视化平台

C/C++ 其它杂项

访问GitHub主页

共99Star

详细介绍

finarthur

finarthur是一个C++实现的轻量级开源量化金融框架,包括交易系统、数据系统、回测工具、研究分析系统、运维工具以及可视化平台。本项目采用C++实现,保证了执行性能和可扩展性,能够便捷地进行本地部署,确保投研分析全过程的安全可控。

代码和文档还在不断完善中...

概览

finarthur是项目集合,子文件夹分别对应子项目。

文件夹 名称 用途
archer_trade 量化交易系统 策略执行、算法交易、风险控制、持仓管理
rider_data 数据服务系统 实时数据、历史数据
lancer_backtest 策略回测工具 策略回测、生成报告
saber_analysis 投研分析系统 pnl分析、成交和滑点分析、风险分析、brinson分析
caster_vision 前端可视化平台 综合展示交易、数据、分析、回测的web页面
assassin_tool 客户端api 连接交易系统和数据系统的api
berserker_operation 运维工具 监控各系统运行状况、日志收集、issue处理

没错!这些命名来自动漫fate系列,各子项目分别对应了七个被master召唤出来servant,他们的功能跟各位servant的技能也很对应哦~

安装

支持linux和windows(mac暂未测试)

本项目中archer_traderider_datalancer_backtestsaber_analysisberserker_operation都是C++编写的,支持跨平台编译使用。 环境要求:

  • 支持C++11的编译器
  • cmake2.8 以上

linux

测试环境:ubuntu14.04,gcc4.8

git clone https://github.com/tashaxing/finarthur
cd finarthur
mkdir build
cd build
cmake ..
make

全部项目编译完成,会生成二进制可执行文件到build文件里对应子项目文件夹下,启动时需要把依赖的配置文件夹拷贝到该目录,再启动执行。

archer_trade项目为例: 将根目录的finarthur/archer_trade内的etcdb文件夹拷贝到执行目录build/archer_trade,并创建一个file目录(如果需要重定向log,还需创建log目录),然后在etc/archer_trade.json中配置好各项信息,最后

./archer_trade

启动运行

windows

测试环境:win7,vs2015

1 打开cmake-gui,配置source目录为代码根目录,设置好build目录
2 点击configure,选vs2015 x64
3 点击generate,生成vs2015项目sln
4 打开vs2015,编译所有项目

启动运行同理

需要注意的是,本项目集成了很多第三方项目,在编译时也会联合编译,并且所有lib都采用静态链接,避免环境变化导致编译问题。

本项目中assassin_tool是分别用C++、python、javascript实现的api库,需要集成到客户端使用。

其中,python2和python3都支持,需要安装以下依赖包:

  • zmq
  • pandas

本项目中caster_vision是javascript实现的web前端项目,应用了reactmaterial-ui框架,对于前端来说是非常熟悉的。

cd caster_vision
npm install
npm start // dev
npm run build // prod

使用

参看各子项目文档