Skip to content
/ quant4s Public
forked from quant4s/quant4s

一个用scala 实现的交易平台系统,支持多语言编写策略,支持回测,支持实盘

Notifications You must be signed in to change notification settings

qutz/quant4s

 
 

Repository files navigation

quant4s

一个用scala 实现的交易平台系统,支持多语言(C#, PYTHON, JAVA, R, MATLAB)编写策略,支持实盘

简介

引擎采用Scala 语言,基于Akka 架构编写,并完全采用开源化管理方案。系统可以构建在桌面系统和云服务器上。 设计目标是采用Actor模型,提供一种大数据下,高并发计算的股票算法交易方案。系统采用JDK1.8,支持LINUX, WINDOWS, MAC OS等平台。 引擎分为服务器端和客户端两个部分组成。客户端请参见quant4s-sdk

服务器端的主要功能接收数据,高并发的指标计算。 客户端的主要功能,根据服务器提供计算好的数据判断买卖点,下单交易。

quant4s 可以胜任绝大多数的策略应用场合,但是对ns级别的高频力不从心,除此之外的策略,quant4s 都游刃有余。

更详细的内容参见WIKI

项目定位

一个策略的实盘分为 3个部分。

  1. 数据源采集
  2. 数据的分析和计算,为策略快速提供计算后的数据
  3. 根据 数据 判断买卖点,下单交易。

1 方便的接入各种数据源;2 高效提供指标数据计算、模式匹配,是本项目的核心价值。项目提供了交易功能,同时也让用户可以选择使用其他各种语言编写的交易通道。

技术架构

参见知乎

技术特点

  1. 采用了分布式部署,将策略和引擎从物理层上分离。引擎部署在服务器端,策略部署在客户端,使得执行多个策略成为可能。
  2. 采用Actor模型,实现了高并发的计算,让多指标、大数据量计算不在成为性能的瓶颈
  3. 将指标的计算从客户端转移到服务器端,在应用层实现了指标的共享,降低了策略开发的难度
  4. 优雅的实现了跨周期策略的直接支持, 可以直接指定技术指标的数据推送的周期,参见SDK
  5. 完美的提供了多语言的支持。只要语言可以访问http,可以支持zeromq,那么这种语言就可以用来编写策略
  6. 优美的指标框架,可以很方便的扩展自己的技术指标
  7. 提供了作业机制,可用于定期作业。比如(每天早上 9:00 推送历史数据分钟线,保证当天计算技术指标的连续性

后续的目标

  1. 集成选股框架,让策略选股更容易
  2. 完善系统监控界面

部署方法

  1. 安装zeroMQ, 参见 http://zeromq.org/ ,
  2. 克隆,编译,运行项目
git clone https://github.com/quant4s/quant4s
mvn compile
sh run.sh [linux]

扩展方法

交易接口

  1. 从Brokerage派生之类
  2. 修改TradeRouteActor._init, 增加支持

数据接口

  1. 参照 SinaL1Actor, 构建Actor
  2. 修改配置文件application.conf, 可同时支持多个数据源(不同的数据, 如果数据相同,在Tick级别时可能会报错)。

About

一个用scala 实现的交易平台系统,支持多语言编写策略,支持回测,支持实盘

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 39.0%
  • Scala 29.7%
  • HTML 17.9%
  • CSS 12.9%
  • ActionScript 0.5%
  • Ruby 0.0%