简介
基于webman编写的量化交易机器人,核心是多进程+Epoll+非阻塞IO,常驻内存、超高性能。
一个交易账号(账号进程)对应一个自定义进程,账号进程与交易所建立两个websocket长链接,接收信息实时计算、发送交易指令;
账号进程内繁重的任务通过队列投递到消费者进程异步处理,如数据库写入、调用RestApi、微信通知等;
性能
每个交易进程每秒实时处理1500+的行情数据;
技术栈
- PHP多进程
- Linux事件EPoll非阻塞IO
- 毫秒定时器
- 异步Socket
- 异步Redis
- 异步HTTP
- 异步消息队列
- Redis字符串、列表、哈希、集合、有序集合
- WebSocket长链接
- 自定义通信协议
- Layui前端UI组件
功能
- [x] 自动策略委托
- [x] 自动下单
- [x] 自动平仓
- [x] 盈利单向阀
- [x] 入仓通知
- [x] 浏览器爬虫插件
- [x] 定时更新技术指标
- [x] 定时解锁产品ID
- [x] 自动平仓后自动解锁
- [x] 优化币种的行情订阅
- [x] 新增admin_id数据限制
- [x] 单向阀api_key改成对应账号
- [x] 策略委托入仓自动解锁
- [x] 下单、撤单自动解锁
- [x] 批量设置杠杆倍数
- [x] 微信通知增加平仓原因:相反方向平仓、正常平仓
- [x] 优化单持仓时挂单逻辑
- [x] 增加订单标签、方便统计
- [x] 优化旧数据清理规则,仅清理pos为0的仓位
- [x] 新增批量撤销策略委托单
- [x] 新增批量解锁产品ID
- [x] SaaS后台管理界面直接生成交易进程的配置文件
- [x] 编辑api账户时,实时验证关键参数
- [x] 优化后台低分辨率显示
- [x] 增加谷歌验证器,对高危操作校验6位授权码
- [x] 修复接口流控引起的批量撤销策略委托单失败
- [x] 增加接口限速锁,优化接口限速提示
- [x] 新增手动平仓功能
- [x] 新增策略委托单信息
- [x] 平仓失败重试机制
- [x] ACK确认,跟踪校验下单指令,确保每一个指令都执行,否则预警人为干预
- [x] 新增手动批量平仓
- [ ] 单向阀新增保证金列
- [ ] 单向阀新增收益金额列
- [ ] 记录对冲次数
- [ ] 关键节点微信通知
- [ ] 量化交易数据可视化
- [ ] 余额不足提醒
- [ ] 持仓信息新增总体未实现盈亏
- [ ] 仪表盘新增总体未实现盈亏(按账号)
延后的功能
- [ ] 增加时间窗口内单向阀下跌检测
运行环境
基础环境:Linux、Nginx 1.20.2、PHP8.1.7、MySQL 5.7.41、Redis 7.0.0
PHP扩展:ext-xlswriter、ext-redis
composer软件包
作用 | 包名 | 版本 |
---|---|---|
日志 | monolog/monolog | 2.9.1 |
命令行 | webman/console | 1.2.33 |
事件 | webman/event | 1.0.4 |
定时任务 | workerman/crontab | 1.0.6 |
数据库ORM | webman/think-orm | 1.1.0 |
验证器 | topthink/think-validate | 2.0.2 |
PSR规范 | psr/container | 1.1.1 |
环境变量 | vlucas/phpdotenv | 5.5.0 |
Redis消息队列 | workerman/redis-queue | 1.1.0 |
Redis | illuminate/redis | 8.83.27 |
数据库事件 | illuminate/events | 8.83.27 |
数据库ORM | illuminate/database | 8.83.27 |
数据库ORM | illuminate/pagination | 8.83.27 |
数据库ORM | symfony/var-dumper | 5.4.22 |
管理后台UI | webman/admin | 0.6.7 |
进程通信 | workerman/channel | 1.2.0 |
Curl | curl/curl | 2.5.0 |
WebSocket | webman/push | 1.0.12 |
锁 | symfony/lock | 5.4.22 |
研发人员
架构:david
算法:yang
后端逻辑:david
后台管理界面:daivd
浏览器插件爬虫:rui、david
鸣谢
- 微信通知:爱语飞飞 https://iyuu.cn/
- WorkerMan:开源高性能PHP应用容器 https://www.workerman.net/
- webman:超高性能可扩展PHP框架 https://www.workerman.net/doc/webman/
- webman-admin:开源免费管理后台 https://www.workerman.net/doc/webman-admin/
- Layui:开源模块化前端 UI 组件库 https://layui.gitee.io/v2/docs/
webman
High performance HTTP Service Framework for PHP based on Workerman.
Manual
https://www.workerman.net/doc/webman
LICENSE
MIT
版权属于:大卫科技Blog
本文链接:https://www.iyuu.cn/archives/496/
转载时须注明出处