虚拟货币套利软件
这是一个面向程序员的量化交易软件,用于期货、股票、外汇、炒币等多种交易场景,实现自动交易。已对接了CTP接口(国内期货)、老虎证券接口(美股港股)。
它的设计初衷是为了解决商业付费软件扩展性不强、以及对入门级投资者而言费用门槛过高的问题。对于入门级的量化投资者而言,动辄每年过万元的软件使用成本,把本来就不多的投资盈余消耗掉,甚至是加重了入门级选手的成本负担,导致辛苦了一年下来发现没有盈利的可能。作者也是过来人之一,深知量化入门的痛点。
功能特性
- 一站式平台,可适配对接不同的交易所
- 灵活多变的自动化策略框架,能实现复杂的个性化交易逻辑,如多合约价差交易,算法高频交易,CTA交易,期权期货混合交易等等
- 支持多账户交易,能实现跨市套利等复杂逻辑
- 直观易理解的API编程接口,并且提供了多种策略的编写范例,只需要掌握最基本的JAVA编程知识便可以上手编写自己的交易策略
- 支持高精度历史行情回放,便于操盘手进行回放训练,或用于验证策略模组
- 自然易操作的自动化模组管理,轻松掌握与管理自动化策略的运行状态
- 可实现完全自主的风控手段
- 私有化部署,确保策略安全
程序架构
- B/S架构
- northstar项目为服务端(包含了web网页监控端)
- 交互协议HTTP + websocket
- 数据库、缓存为Redis(历史行情数据主要依赖数据服务,本地仅保存少量账户配置信息)
- 前端采用node14 + vue2.x
- 服务端采用java17(拥抱新技术) + springboot2
业务场景分析
架构方案说明
UI界面
用户UI界面是量化交易软件的监控台。由于程序化策略是自动化运行的,监控台只是提供一个可以监控程序与策略运行状态的可视化界面。
监控台是否打开,并不影响程序化策略的运行。
登陆页
- LOGO后面的小字体是程序的版本号
- 默认的用户名/密码:admin / 123456
行情管理
行情管理界面是用于管理行情网关,目前可用的网关类型有以下几种:
- CTP: 是国内期货CTP网关,对接的是实盘数据,主要用于实际交易
- SIM: 是本地随机行情网关,随机生成模拟数据,主要用于程序试运行
- PLAYBACK: 是历史行情回放网关,对接的是实盘的历史行情数据,主要用于策略回测
- TIGER: 是老虎证券行情网关,主要用于接收外盘股票行情
- 网关类型,表示当前网关的类型。其中PLAYBACK 行情网关可以有多个,其他行情网关只能有一个
- 连接状态,表示当前网关的连线状态
- 行情反馈,表示当前网关是否有接收到新行情数据。以 CTP 为例,停盘时段行情反馈为 -;开盘时段行情反馈为 活跃
- 操作区,用于网关的增删改查、连线与断开
账户管理
账户管理界面是用于管理交易账户,目前可用的账户类型有以下几种:
- CTP: 是国内期货CTP账户,对接的是实盘账户,主要用于实际交易
- SIM: 是本地实现的模拟账户,对交易操作进行模拟撮合,主要用于验证交易策略与验证程序
- TIGER: 是老虎证券交易网关,主要用于外盘股票交易
模组管理
模组管理界面是用于管理程序化交易模组。
所谓模组,就是一个程序化策略运行单元。它定义了采用哪个 程序化策略 在哪个 交易账户 上交易哪个 合约。
手工期货交易
手工期货交易界面是用于对行情数据、模拟账户、交易接口进行手工验证的界面,同时也可以作为人工应急干预的手段。
日志跟踪
日志跟踪界面是为了方便用户查看服务日志而设,它实际上是读取服务器的日志文件内容。 日志跟踪界面设定了两种模式:
- 系统日志模式:系统日志指除策略模组外的系统日志;在Tabs标签页直接点击,则进入该模式
- 模组日志模式:指以模组名为标识的日志文件;在模组管理页的模组中点击【日志跟踪】,则进入该模式
邮件通知设置
在任意页面点击右上角的【邮件通知设置】,可以设置相关的事件订阅,并以邮件的方式发送通知。以便于在不打开监控台的情况下收到事件推送。
快速开始
- 环境要求
硬件最低配置
CPU: 2核
内存: 4G
磁盘: 10G
网络: 100Mbps
软件包依赖
JDK 17
redis 7
- 环境脚本安装
执行对应的环境安装脚本,自动安装环境依赖。
Linux环境:
curl https://gitee.com/dromara/northstar/raw/master/env.sh | sh
Windows环境:
Invoke-WebRequest https://gitee.com/dromara/northstar/raw/master/env.ps1 -OutFile env.ps1; powershell -noexit ".\env.ps1"
假如执行报错,需要把脚本下载到本地后右键选择powershell执行。
程序启动:
使用 java -jar 便可以启动程序(注意:要加上环境参数 -Denv=prod):
java -jar -Denv=prod northstar.jar
日志查询:
可以在以下路径找到程序运行日志:
├─ northstar-dist 程序包目录| ├─ logs 程序日志目录└─ northstar-env 环境依赖包目录
桌面监控端下载:
https://gitee.com/dromara/northstar/releases
-END-
开源协议:GPL3.0
开源地址:https://gitee.com/dromara/northstar