交易机器人-微信群通知

微信公众号:大数据高性能计算

在这里插入图片描述

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(如果您还没有安装):
    打开终端并运行以下命令:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/195969.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Django-DRF用法】多年积累md笔记,第(4)篇:Django-DRF反序列化详解

本文从分析现在流行的前后端分离Web应用模式说起,然后介绍如何设计REST API,通过使用Django来实现一个REST API为例,明确后端开发REST API要做的最核心工作,然后介绍Django REST framework能帮助我们简化开发REST API的工作。 全…

容斥 C. Strange Function改编题

补题: 题目详情 - 9.段坤爱取模%%% - SUSTOJ 本题或许是参考 Problem - C - Codeforces 根据题意,f(i)就是不能被整除的最小的一个质因子。 打表发现,当15个质因子相乘后,长度就大于18。 因此可以知道小于等于1e16内的正整数x…

【开源】基于Vue.js的企业项目合同信息系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 合同审批模块2.3 合同签订模块2.4 合同预警模块2.5 数据可视化模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 合同审批表3.2.2 合同签订表3.2.3 合同预警表 四、系统展示五、核心代码5.1 查询合同…

C语言:结构体

目录 结构体类型的声明 匿名结构体 全局结构体变量 嵌套结构体 访问结构体成员 结构的自引用 结构体变量的定义和初始化 结构体内存对齐 结构体内存对齐规则 修改默认对齐数 #pragma pack(n) offsetof 求结构体成员相对于结构体开头的偏移量的宏。 为什么存在内存…

【计算思维】蓝桥杯STEMA 科技素养考试真题及解析 4

1、下列哪个选项填到填到下图空缺处最合适 A、 B、 C、 D、 答案:D 2、按照如下图的规律摆放正方形,第 5 堆正方形的个数是 A、13 B、14 C、15 D、16 答案:D 3、从右面观察下面的立体图形,看到的是 A、 B、 C、 D、 答…

C语言——操作符详解

前言:这篇文章主要讲解一下C语言中常见的操作符的使用,做一下整理,便于日后回顾,同时也希望能帮助到大家。 🎬个人简介:努力学习ing 📝CSDN主页 愚润求学 🌄每日鸡汤:念…

ClickHouse数据一致性

查询CK手册发现,即便对数据一致性支持最好的Mergetree,也只是保证最终一致性: 我们在使用 ReplacingMergeTree、SummingMergeTree 这类表引擎的时候,会出现短暂数据不一致的情况。 在某些对一致性非常敏感的场景,通常有…

c语言-输入输出详解

文章目录 格式化输入输出占位符printfscanf 字符串输入输出puts&#xff08;&#xff09;gets&#xff08;&#xff09; 字符输入输出putchar&#xff08;&#xff09;getchar&#xff08;&#xff09; 区别 格式化输入输出 输入输出的库函数的头文件&#xff1a; #include<…

原理Redis-动态字符串SDS

动态字符串SDS Redis中保存的Key是字符串&#xff0c;value往往是字符串或者字符串的集合。可见字符串是Redis中最常用的一种数据结构。 不过Redis没有直接使用C语言中的字符串&#xff0c;因为C语言字符串存在很多问题&#xff1a; 获取字符串长度的需要通过运算非二进制安全…

(数据库管理系统)DBMS与(数据库系统)DBS的区别

数据库管理系统&#xff08;DBMS&#xff0c;Database Management System&#xff09;和数据库系统&#xff08;DBS&#xff0c;Database System&#xff09;是两个相关但不同的概念。 DBS是一个更广泛的概念&#xff0c;指的是计算机系统引入数据库后的系统&#xff0c;包括数…

PgSQL技术内幕-Bitmap Index Scan

PgSQL技术内幕-Bitmap Index Scan 1、简介 Bitmap索引扫描是对索引扫描的一个优化&#xff0c;通过建立位图的方式将原来的随机堆表访问转换成顺序堆表访问。主要分为两点&#xff1a;1&#xff09;管理每个Bitmap的hash slot没用完时&#xff0c;每个Bitmap代表每个heap页中满…

nn.KLDivLoss,nn.CrossEntropyLoss,nn.MSELoss,Focal_Loss

KL loss&#xff1a;https://blog.csdn.net/qq_50001789/article/details/128974654 https://pytorch.org/docs/stable/nn.html 1. nn.L1Loss 1.1 公式 L1Loss: 计算预测 x和 目标y之间的平均绝对值误差MAE, 即L1损失&#xff1a; l o s s 1 n ∑ i 1 , . . . n ∣ x i…