开源声明:
本项目归入dromara开源组织运营的初心,是希望可以有更多志同道合的朋友一起参与项目的开发,并且能借其在交易市场上有所收获!
借用组织的口号:一个人或许能走的更快,但一群人会走的更远。
本项目仅属于技术分享,不构成任何交易建议。使用者自身在交易前,需要清楚其可能面对的交易风险与相关法律规定,并为自身行为负责!
这是一个面向程序员的开源高频量化交易平台,尤其适用于高频交易例如炒单、做市商交易、套利等交易模式,也可以用于基于趋势指标的交易模式。用于期货、股票、外汇、炒币等多种投机场景,实现程序化投机。暂时只对接了国内期货交易所,理论上可以对接任意交易所。
通过JAVA后台来编写程序化的交易策略,并提供页面监控界面。详细请参考监控端项目https://gitee.com/dromara/northstar-monitor
开源不易,感谢点赞关注加收藏!
详细文档请参考wiki: https://gitee.com/dromara/northstar/wikis/
全栈技术爱好者、小型私募技术团队
为了更好地了解实盘用户的使用情况,程序对期货公司做了一定的管理,如需要进行实盘交易,请联系作者咨询。
建议使用Linux云服务器
- B/S架构
- northstar项目为服务端
- northstar-monitor项目为web网页监控端
- 交互协议HTTP + websocket
- 数据库为MongoDB
- 前端采用nodejs + vue
- 服务端采用java + springboot
假设当前环境是全新的服务器
初始化系统环境(只需要运行一次)
curl https://gitee.com/dromara/northstar/raw/master/env.sh | sh
初始化数据库(如果使用外部数据库的可以忽略)
curl -o mongo.repo https://gitee.com/dromara/northstar/raw/master/mongo.repo
curl https://gitee.com/dromara/northstar/raw/master/mongo.sh | sh
安装成功后验证mongoDB 是否安装成功(如果使用外部数据库的可以忽略)
systemctl status mongod
如果成功的话,屏幕输出如下,注意第三行Active的状态是active(running):
● mongod.service - MongoDB Database Server
Loaded: loaded (/usr/lib/systemd/system/mongod.service; enabled; vendor preset: disabled)
Active: active (running) since Sun 2021-06-27 17:30:14 CST; 56s ago
Docs: https://docs.mongodb.org/manual
Process: 5932 ExecStart=/usr/bin/mongod $OPTIONS (code=exited, status=0/SUCCESS)
Process: 5929 ExecStartPre=/usr/bin/chmod 0755 /var/run/mongodb (code=exited, status=0/SUCCESS)
Process: 5926 ExecStartPre=/usr/bin/chown mongod:mongod /var/run/mongodb (code=exited, status=0>
Process: 5923 ExecStartPre=/usr/bin/mkdir -p /var/run/mongodb (code=exited, status=0/SUCCESS)
Main PID: 5934 (mongod)
Memory: 53.2M
CGroup: /system.slice/mongod.service
└─5934 /usr/bin/mongod -f /etc/mongod.conf
下载最新版项目,然后解压。注意:把解压后的文件夹重命名为northstar https://gitee.com/dromara/northstar/releases
在.bashrc中加入以上启动参数(这样做能隐藏启动参数)
vim ~/.bashrc
在文末加入以下设置
...
export NSUSER=<登陆用户名>
export NSPWD=<登陆密码>
export SMTP_HOST=<邮箱SMTP,例如smtp.126.com>
export SMTP_SECRET=<邮箱认证码,在邮箱设置中生成的认证码>
export EMAIL=<代理邮箱名>
export EMAIL0=<订阅邮箱名>
保存并退出,然后让配置生效
source ~/.bashrc
部署程序(每次代码更新后运行)
cd ~/northstar
bash deploy.sh
外部插件包部署(假设已经下载好)
cd ~/northstar-external
bash deploy.sh
然后回到northstar目录启动程序
cd ~/northstar
bash startup.sh
注意:startup.sh脚本中包括了JVM的启动参数,假定服务器配置是2核4G,如有不同应该按实际情况修改
查询日志
cd ~/logs/
终止程序
kill `pgrep java`
- 请勿直接使用master分支的最新代码,应该使用最新的tag来作为开发基线
- 服务器时间校正为北京时间
- 尽量不要在开市期间重启程序
- 编写策略逻辑时如需使用时间属性,务必使用TICK行情自带的时间戳,否则策略回测时会不准确
- 本项目为量化爱好者及JAVA开发者搭建,对交易行为并不负责
- 当前项目只包含一个示例策略,若要开发其他量化策略,需要自行开发并需要一定的JAVA基础
对于仅为了满足交易需求的朋友而言,如果市场上现成的产品可以满足您的策略需求的话,请尽量使用市场上的付费产品例如文华、MC、金字塔等。因为开源项目存在大量的学习与调试成本,除非有成熟的技术背景以及存在付费产品无法实现的策略方案,才建议使用开源方案。
redtorch项目作者。本项目演化自redtorch,并保留了小部分其源码,同时感谢redtorch作者的技术分享。