# northstar
**Repository Path**: llc-930201/northstar
## Basic Information
- **Project Name**: northstar
- **Description**: 这是一个最适合部署在服务器7x24运行的量化交易平台;
这是一个可以对交易策略做回测调试的量化交易平台;
这是一个专为程序员、量化交易操盘手打造的量化交易平台;
已对接国内期货CTP交易系统
- **Primary Language**: Java
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 1932
- **Created**: 2022-07-11
- **Last Updated**: 2022-07-11
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Northstar盈富量化交易平台
**开源声明:**
**本项目归入dromara开源组织运营的初心,是希望可以有更多志同道合的朋友一起参与项目的开发,并且能借其在交易市场上有所收获!**
**借用组织的口号:一个人或许能走的更快,但一群人会走的更远。**
**本项目仅属于技术分享,不构成任何交易建议。使用者自身在交易前,需要清楚其可能面对的交易风险与相关法律规定,并为自身行为负责!**
这是一个用户可以自行编写交易策略程序的量化交易平台。
用户监控台效果(监控台仅用于给用户提供一个可视化窗口,以方便进行程序的监控与管理):






## 产品简介
这是一个面向程序员的开源高频量化交易平台,用于期货、股票、外汇、炒币等多种交易场景,实现自动交易。暂时只对接了国内期货交易所,理论上可以对接任意交易所。
**功能特性:**
- 一站式平台,可适配对接不同的交易所;
- 灵活多变的自动化策略框架,能实现复杂的个性化交易逻辑,如多合约价差交易,算法高频交易,CTA交易,期权期货混合交易等等;
- 支持多账户交易,能实现跨市套利等复杂逻辑;
- 直观易理解的API编程接口,并且提供了多种策略的编写范例,只需要掌握最基本的JAVA编程知识便可以上手编写自己的交易策略;
- 支持高精度历史行情回放,便于操盘手进行回放训练,或用于验证策略模组;
- 自然易操作的自动化模组管理,轻松掌握与管理自动化策略的运行状态;
- 可实现完全自主的风控手段;
- 私有化部署,确保策略安全;
## 适用人群
专业量化操盘手、全栈技术爱好者、小型私募技术团队
**开源不易,感谢点赞关注加收藏!**
**详细文档请参考wiki: https://gitee.com/dromara/northstar/wikis/**
## 实盘注意事项
为了更好地了解实盘用户的使用情况,程序对期货公司做了一定的管理,如需要进行实盘交易,请联系作者咨询。
## 社群支持
**为防止滥发广告的微信号加群,加群需收取100元红包(可抵扣数据服务费用)**

## 运行环境
建议使用Linux云服务器,或者Windows系统(MAC系统没有试过,需自行摸索)
## 程序架构
- B/S架构
- northstar项目为服务端(包含了web网页监控端)
- 交互协议HTTP + websocket
- 数据库、缓存为Redis7(历史行情数据主要依赖数据服务,本地仅保存少量账户配置信息)
- 前端采用node14 + vue2.x
- 服务端采用java17(拥抱新技术) + springboot2.7
项目架构采用事件驱动+插件式开发

## 启动步骤
假设当前环境是全新的服务器
### 环境准备(只需要运行一次)
**Linux环境下**,初始化系统环境。
```
curl https://gitee.com/dromara/northstar/raw/master/env.sh | sh
```
目录结构如下:
~/
|--northstar-dist/ 程序包目录
|--northstar-env/ 环境依赖包目录
**Windows环境下**,初始化系统环境。打开powershell命令行窗口,输入以下命令(部分系统可能报错,需要把脚本下载到本地后右键选择powershell执行)
```
Invoke-WebRequest https://gitee.com/dromara/northstar/raw/master/env.ps1 -OutFile env.ps1; powershell -noexit ".\env.ps1"
```
目录结构如下:
C:\
|--northstar-dist\ 程序包目录
|--northstar-env\ 环境依赖包目录
### 程序包准备
请下载【[最新发布包](https://gitee.com/dromara/northstar/releases)】,并放置到上述提及的 northstar-dist 目录
### 启动程序
**Linux环境下**
```
nohup java -Xmn1g -Xmx1g -jar ~/northstar-dist/northstar.jar >ns.log &
```
注意:启动命令包括了JVM的启动参数,假定服务器配置是2核4G,如有不同应该按实际情况修改
**Windows环境下**
```
Start-Process java "-Xmn1g -Xmx1g -jar c:\northstar-dist\northstar.jar"
```
### 部署验证
在浏览器直接访问部署服务的域名(端口使用了默认的80端口),应该可以看到以下界面,并可以登陆成功

### 查询日志
```
cd ~/logs/
```
### 终止程序
```
kill `pgrep java`
```
## 开发环境配置(Windows环境)
大多数用户开发时都是使用windows环境
### 环境准备
初始化系统环境(只需要运行一次),打开powershell命令行窗口,输入以下命令(部分系统可能报错,需要把脚本下载到本地后右键选择powershell执行)
```
Invoke-WebRequest https://gitee.com/dromara/northstar/raw/master/dev-env.ps1 -OutFile dev-env.ps1; powershell -noexit ".\dev-env.ps1"
```
## 注意事项
- 请勿直接使用master分支的最新代码,应该使用最新的tag来作为开发基线
- 服务器时间校正为北京时间
- 尽量不要在开市期间重启程序
- 编写策略逻辑时如需使用时间属性,务必使用TICK行情自带的时间戳,否则策略回测时会不准确
- 本项目为量化爱好者及JAVA开发者搭建,对交易行为并不负责
- 使用者需要自行开发交易策略并需要一定的JAVA基础
## 特别鸣谢
[redtorch项目](https://github.com/sun0x00/redtorch)作者。本项目演化自redtorch,并保留了小部分其源码,同时感谢redtorch作者的技术分享。