交易机器人-微信群通知
微信公众号:大数据高性能计算
1 背景
背景是基于人工去做交易本身无法做到24小时无时无刻的交易,主要是虚拟币本身它是24小时交易,人无法做到24小时盯盘,其次就是如果你希望通过配置更加复杂的规则甚至需要爬取最新的信息走模型进行量化交易的时候,就需要自己去做一些量化机器人。这是我们做这件事的出发点
2 设计方案
大概会分为如下几个重点模块设计:
(1) K线异步线程监控,主要用于拉取各项虚拟币的交易价格波动数据,主要用于计算指标给规则或者模型使用
(2) 决策中心,根据获取的指标信息去判断是跑模型还是跑规则,跑规则的话会走规则引擎
(3) 规则本身主要是基于ANTLR定义了一套简单的规则模块语法树,支持快速定义和配置,主要存储与DB如Mysql中
(4) 消息通知,对于一些直接规则可以走自动化交易。对于一些拿捏不准的,可以走消息通知,由人工在判断需要怎么进行交易。
下面主要是写一下微信通知部分要怎么做。这里面我不会去讲钉钉怎么做,因为钉钉本身提供了非常好的API可供大家接入,这里就不在细细赘述了。谈到接入微信,不得不得提一下Wechaty,这个也是我这边主要使用的功能。
3 微信通信-Wechaty
3.1 安装与使用
我的环境是Mac Mini, M1 ARM芯片
首先是安装NodeJs 以及NPM, Nodejs 尽量版本16+
- 安装 Node.js
Wechaty 是用 TypeScript 编写的,运行在 Node.js 环境中。您需要在服务器上安装 Node.js。
在 Ubuntu 上,您可以使用以下命令安装 Node.js:
curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
sudo apt-get install -y nodejs
这会安装 Node.js 及其包管理器 npm。
- 安装 Wechaty
npm install wechaty
- 建立wechaty项目
mkdir my-wechaty-bot
cd my-wechaty-bot
npm init -y
npm install wechaty
- 修改package.json
文件中添加一行"type": “module”,因为你不添加这个去执行的话,import会报错
{
"type": "module",
"name": "wechaty-bot",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"amqplib": "^0.10.3",
"install": "^0.13.0",
"npm": "^10.2.4",
"wechaty": "^1.20.2"
}
}
3.2 功能实现
首先说一说我大概要实现的功能:
(1) 通过RabbitMq作为消息中间件,接受外部消息比如交易买卖的信息或者其他关键信息,然后通知到群里。
(2)当群收到信息的时候,可以基于收到的信息进行额外的数据处理。
3.2.1 首先实现RabbitMQ
第一件事是先装服务端,并且要启动我们的Server
安装 RabbitMQ 使用 Homebrew
- 安装 Homebrew(如果您还没有安装):
打开终端并运行以下命令: