MagicTradeBot 机器人实例设置与安全通信

MagicTradeBot 机器人实例是一个跨平台可执行程序,支持 Windows、Linux 和 macOS。它可以独立运行或与多个实例一起运行,配置通过中心 .yaml 文件进行管理。

每个机器人实例都会连接到 MagicTradeBot 管理应用 API 以进行身份验证、执行交易并实时扫描市场。本文档解释了配置参数和安全通信的最佳实践。


📄 YAML 配置结构

每个机器人实例的核心配置存储在 config.yaml 文件中。以下是参考布局:

server:
  # 名称
  botName: "Bybit_Mainnet_Trading_Bot"  # 机器人的唯一名称

  # 授权密钥
  licenseKey: "hRnWOLo91ESUiZ8SkN986w"  # 用于激活和验证机器人实例

  # 模拟模式设置
  isDemo: true  # true = 模拟交易;false = 实盘交易

  # API 配置
  api: "https://localhost:7225/"  # MagicTradeBot 管理 API 的地址

  # 执行控制
  refreshRate: 5  # 市场扫描间隔(秒)
  totalConcurrentTrades: 0  # 最大并发交易数(0 = 不限制)

  # 风控设置(0 = 禁用)
  maxLoss: 0      # 当累计亏损达到该阈值时停止
  maxProfit: 0    # 当累计盈利达到该阈值时停止

  # 账户设置
  exchangeId: 0   # 要交易的账户 ID(来自管理应用)

  # 策略模板设置
  templateId: 0  # 策略模板 ID(0 = 默认模板)

  # 交易策略
  strategy: 0      # 策略 ID(见下方列表)
  strategyMaxCount: 55  # 策略最大进阶步数(0 = 不限制)

  # 策略参考:
  # 0: 无策略
  # 1: 马丁格尔        2: 反马丁格尔
  # 3: 斐波那契         4: 反斐波那契
  # 5: 3-2-6-3           6: 3-2-6-3 反向
  # 7: 达朗贝尔         8: 反达朗贝尔

  timeZone: "UTC"  # 用于调度和交易的时区

# 系统设置
debug: true  # 启用详细日志

🔐 安全通信指南

由于机器人实例需要与管理 API 交互以获取交易对、扫描市场并执行交易,因此确保通信安全至关重要。以下是关键建议:

1. 对 API 端点使用 HTTPS

  • 确保 api 字段使用 HTTPS URL
  • 使用有效的 TLS 证书(如 Let’s Encrypt)对通信进行加密
  • 拒绝所有不安全的 HTTP 连接

2. 强制启用 JWT 身份验证

  • 机器人实例在启动时通过凭证请求 JWT 令牌
  • 验证成功后,管理应用返回一个签名令牌,机器人将在所有请求中通过 Authorization 头部携带该令牌
  • 令牌应设置较短过期时间,并安全地保存在内存中
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...

3. 使用 IP 白名单限制访问

  • 限制只有运行机器人实例的已知 IP 可以访问管理 API
  • 通过防火墙规则阻止所有未授权访问

4. 保护 API 密钥和授权密钥

  • 切勿将密钥硬编码进源代码或写入日志
  • 通过环境变量或加密的密钥管理工具加载敏感信息
  • 定期轮换授权密钥和交易所 API 凭证

5. 隔离每个机器人实例

  • 为每个机器人指定唯一的 botName,并部署在隔离容器或环境中
  • 若操作系统支持 ACL,请限制每个实例的权限

6. 监控并审计 API 使用

  • 在管理应用中启用 审计日志
  • 记录所有 JWT 身份验证请求及异常访问模式
  • 通过 Sentry、Pushover 或 LogDNA 设置告警进行异常检测

✅ 推荐措施

  • 📌 在所有服务之间使用强密码和加密通信
  • 📌 将机器人基础设施从公网隔离
  • 📌 定期更新管理应用和机器人实例软件
  • 📌 自动备份机器人配置和交易历史

📎 Related Topics