ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

binance-trading-bot 快速上手全指南:从空服务器到首个实盘 Profile 的部署、配置与上线

binance-trading-bot 快速上手全指南:从空服务器到首个实盘 Profile 的部署、配置与上线 金融科技后端前端【免费下载链接】binance-trading-botAutomated Binance trading bot with pluggable strategies, historical backtesting, and a live dashboard项目地址https://gitcode.com/gh_mirrors/bi/binance-trading-bot点击查看免费下载导读本文是 binance-trading-bot 的官方入门路径docs/get-started/index.md的完整展开按「安装部署 → 配置首个 Profile → 安全上线实盘」的有序三步带你走通从空服务器到一台真实运行的交易机器人的全过程。读完你将掌握如何用 Docker Compose 一键拉起 Postgres、Redis 与主应用如何创建 Binance API 密钥并正确绑定、如何理解 Profile / Symbol / Strategy / Order / Tick 这组核心概念、如何通过 Live gate 与预检清单安全地开启真实资金交易以及如何用三级 Kill switch 在任何异常时紧急停机。一、三步路线总览从上到下依次完成官方文档给出的路径强调「有序执行、自上而下」不需要任何金融背景每一步都链接着对应的用户指南User Guide做界面级细节讲解。三步总览如下步骤页面你要完成的事1安装与部署把应用部署到一台服务器创建 Binance API 密钥打开仪表盘2配置第一个 Profile创建 Profile选择要交易的币种设定预算3正式上线运行预检检查 Live gate为真实资金打开 Profile二、第一步安装与部署约 30 分钟安装页docs/get-started/install.md承诺在一台干净机器上约 30 分钟完成首次部署所有命令都集中在这一页不需要跳到别处。部署完成后生产环境叠加层与日常运维命令见 生产部署与运维全部.env配置项见 环境变量。2.1 前置条件一台小型 Linux 服务器便宜的虚拟机即可2 vCPU、4 GB 内存、20 GB 磁盘。Docker 24 与 Docker Compose 2.20应用运行在隔离容器中无需手工安装任何依赖。可访问的出站 HTTPS到api.binance.com和wss://stream.binance.com后者是推送行情的 WebSocket 地址。一个 Binance 账户API 密钥在第 6 步创建。2.2 Step 1 — 克隆仓库git clone https://github.com/chrisleekr/binance-trading-bot.git cd binance-trading-bot2.3 Step 2 — 创建.envcp .env.example .env.env是一个纯文本文件存放设置与机密应用在启动时读取。它包含密码绝不能提交到版本库或对外分享。编辑.env把WEB_ORIGIN设置为你将打开应用的地址例如WEB_ORIGINhttps://bot.example.com。在 Docker Compose 部署下DATABASE_URL和REDIS_URL保持默认即可——compose 文件会提供网络内部的值deploy/compose/docker-compose.yml 第 68-69 行即为app服务注入的默认连接串指向postgres/redis两个服务名。其余变量都有可用默认值需要修改时参考 环境变量。从仓库根目录的 .env.example 可以看到关键默认值如第 24 行WEB_ORIGINhttp://localhost:5173面向本地开发文件注释还说明了它的设计原则占位值刻意很短第 37 行AUTH_SECRETREPLACE_ME这样一份未编辑就直接使用的副本会在启动时失败而不是带着一个公开已知的密钥启动。2.4 Step 3 — 生成会话密钥AUTH_SECRET用于对登录 Cookie 签名。启动时如果它短于 32 个字符进程会直接失败因此必须生成一个真正的密钥sed -i.bak s|^AUTH_SECRET.*|AUTH_SECRET$(openssl rand -hex 32)| .env rm .env.bakopenssl rand -hex 32生成 64 个十六进制字符满足 Zod 校验的最小 32 字符要求同时.env.example第 33-37 行的注释也印证了这一点。2.5 Step 4 — 启动整个技术栈docker compose -f deploy/compose/docker-compose.yml --env-file .env up -d注意在仓库根目录直接执行裸docker compose up不生效——根目录没有 compose 文件必须显式指定-f deploy/compose/docker-compose.yml。Postgres 和 Redis 会先启动app服务会等待它们就绪docker-compose.yml 第 94-98 行的depends_on使用condition: service_healthy而不是简单的「已运行」数据库迁移在启动时自动执行无需手工操作。迁移自动化的实现位于 apps/server/docker-entrypoint.sh容器入口在 exec 应用之前先运行幂等的迁移 runnerbun /app/dist/migrate.js第 17-25 行显示只有SKIP_MIGRATIONS1|true|yes时才跳过。多角色并发启动是安全的——迁移 runner 通过 Postgres advisory lock 串行化并发调用者详见 生产部署与运维 的「Database migrations: boot vs. manual」小节。检查是否健康启动docker compose ps # 每个服务都显示 (healthy) curl -fsS http://127.0.0.1:9100/healthz # api 存活探针 curl -fsS http://127.0.0.1:9100/readyz # api 就绪探针依赖 DB Redis9100是 API 的ADMIN_PORT默认值见 .env.example 第 78 行专门承载未认证的/healthz、/readyz与/metrics与公开端口分离避免慢速抓取拖垮业务请求环境变量 中ADMIN_PORT一行的说明。2.6 Step 5 — 创建运营者账号在浏览器打开WEB_ORIGIN指向的地址首次运行界面会引导你创建主账号。这是一个单运营者应用没有邮件验证也没有内置第二因素其威胁模型详见 认证与威胁模型。从源码结构看单运营者在每一层都被强制——onboarding 路由、user.create.beforehook、单点登录的disableImplicitSignUp以及数据库唯一索引migration 0097各自拒绝第二个运营者。登录方式有两种可在.env中切换邮箱 密码PASSWORD_SIGN_IN_ENABLED默认开密码至少 12 字符仅存 scrypt 哈希或通过 OpenID Connect 身份提供商如 Auth0、Okta、Microsoft Entra的单点登录SINGLE_SIGN_ON_ENABLED需要SINGLE_SIGN_ON_ISSUER_URL/CLIENT_ID/CLIENT_SECRET/PUBLIC_BASE_URL四个变量。完整操作见 登录与安全。2.7 Step 6 — 创建 Binance API 密钥API 密钥是一对长字符串一个 key 和一个 secret让机器人可以在不接触你密码的情况下代你在 Binance 账户上操作。步骤如下在 Binance 打开API Management创建一个新密钥。同时开启Enable Reading让机器人读取钱包余额与账户快照和Enable Spot Margin Trading让它下单与撤单。保持 Enable Withdrawals 关闭——机器人永远不需要它。权限的权威参考见 API 密钥页。开启Restrict access to trusted IPs only并添加你服务器的出口 IP在 VM 上执行curl -s ifconfig.me获取。这是最重要的安全步骤即使密钥泄露它也只在你的服务器上可用。危险提示机器人以明文存储 API 密钥。密钥以纯文本保存在数据库中上面配置的 IP 白名单正是让泄露的密钥变得无用的关键防线。这一取舍在 认证与威胁模型 中有完整解释——系统默认不提供静态加密缓解措施是操作者侧的「无提现权限 IP 白名单」双保险泄露的密钥既不能把资金转出交易所也无法从其他 IP 下单。REST 客户端也只为需要签名的调用附加X-MBX-APIKEY头未签名的市场数据读取在 worker 与 Binance 之间的任何代理或日志中都不携带凭据。2.8 Step 7 — 在仪表盘绑定密钥打开你账户的API keys页面粘贴 key 与 secret。机器人会立即向 Binance 校验通过则显示绿色状态。密钥绑定后服务端存储界面永远不会再次显示完整 secret只显示后 4 位字符可以随时用Replace原位替换新密钥API 密钥页。整个密钥配置流程端到端如下2.9 部署时最常调整的 env 变量速查下表摘自 docs/operations/env-vars.md由代码中的 env 目录自动生成每个默认值都被断言过因此不会声称应用并未应用的默认值变量作用默认/取值说明AUTH_SECRET对登录会话 Cookie 签名必填64 位十六进制每次部署都要生成openssl rand -hex 32短于 32 字符启动失败更换会使所有会话失效WEB_ORIGINCORS、登录 CSRF、WebSocket 升级允许的浏览器来源必填逗号分隔的精确 origin无通配符设置为你打开应用的地址含*会启动失败因为携带凭据的 CORS 禁止通配符DATABASE_URLPostgres 连接串必填Compose 提供网络内默认值未设置直接崩溃而非静默连到 localhostREDIS_URLRedis 连接串任务队列与缓存必填Compose 提供默认值Redis 需要密码时写成redis://:pwhost:6379POSTGRES_PASSWORD内置 Postgres 初始化密码postgres首次启动后修改无效生产叠加层改用deploy/secrets/*文件ROLE本进程运行哪些监听器/消费者all/api/worker/study默认all单机默认一个进程跑全部拆分后长回测不会挤占交易循环只有api角色执行数据库迁移LOG_LEVEL日志级别fatal~trace默认infodebug/trace会刷屏甚至撑满磁盘LIVE_DEMO变成公开、免登录的沙箱仅1/true开启默认关注入演示运营者、屏蔽敏感路由、拒绝在存在真实账户时启动三、第二步配置你的第一个 Profile现在你要创建一个Profile配置档——一套独立的交易设置——并告诉它交易哪些币、投入多少钱。这是 docs/get-started/configure.md 的内容。3.1 Profile 是什么一个Profile打包了四样东西一个策略Strategy——它遵循的交易规则书见 策略对比。一份币种列表——允许交易的交易对例如BTCUSDT、ETHUSDT。一份预算——它可以动用的资金上限。它自己的状态——每个 Profile 独立跟踪自己的持仓。每个 Binance 账户可以同时运行多个 Profile各自拥有独立的策略、币种和预算。它们共享账户的钱包但独立决策一个稳健的 Bitcoin Profile 和一个更活跃的山寨币 Profile 互不干扰。官方文档的示意图如下3.2 创建第一个 Profile两步向导在仪表盘打开你的账户选择New profile一个两步向导带你完成创建。第一步为 Profile 命名。图为种子演示数据并非真实账户。Name名称——任何好记的名字例如 BTC cautious。第二步选择策略然后点击Create profile。图为种子演示数据并非真实账户。Strategy策略——它遵循的交易规则书。可以 对比三种策略 后选择与你的市场预期相匹配的那一种。Profile 会以该策略的默认设置创建所以两步就能得到一个可工作的 Profile。之后在其专属页面上微调Strategy settings策略设置——所选策略特有的旋钮。表单由策略自身的 schema 渲染所以你只会看到适用于当前选择的字段这一点在 docs/concepts/strategies/index.md 与 Profile → Strategy 均有印证。Coins币种——要交易的交易对。你也可以让机器人自动发现discover币种见 Discovery而不是手工罗列。3.3 三种策略怎么选官方策略总览docs/concepts/strategies/index.md给出三种策略的速览对比策略做什么适合你预期市场Trailing Trade追踪交易分档抄底卖单跟随价格上移价格在区间内来回震荡Momentum动量买确认突破用追踪止损退出币种已经启动、将继续上涨Rebalance再平衡按目标比例持有篮子持有稳定配置而非择时入场每种策略都只做「决策」真正下单的是一个独立组件executor它保证即使进程崩溃订单也绝不会被重复放置。每种策略都假定一种不同的市场形态选择你对该币种持有的预期即可没有哪种策略在抽象意义上是「最安全」的每种都承担着它所适配市场的风险。你之后可以更换策略也可以在不同的 Profile 里同时运行不同策略。3.4 通知可选但强烈推荐Notifier通知器会在机器人买入、卖出或遇到问题时给你发消息。支持 Slack、Telegram 和 Webhook。配置一个这样你就不必时刻盯着仪表盘——详见 Notifiers。两类独立选择控制你的告警通知发到哪里你配置的 notifier和哪些事件会触发每个 Profile 的订阅设置notify_events。默认所有类别都开启除order-filled——活跃网格的成交很频繁默认关闭。其中有几个是资金安全告警daily-loss-halt日亏损熔断、loss-guard-halt亏损连胜与回撤保护务必保持开启edge-decay-warning是纯咨询性的——它从不暂停买入只是提醒。四、第三步正式上线实盘配置好 Profile 后最后一步就是把它切换到真实资金交易。docs/get-started/go-live.md 这一页告诉你如何安全地开启、以及如何停止它。警告真实资金。一个上线 Profile 会在你的 Binance 账户上放置真实的买卖订单。第一次运行务必慢一点一个 Profile、小预算、一两个你了解的币种。4.1 预检清单在启用一个实盘 Profile 之前确认以下事项API 密钥是绿色状态。账户的 API-keys 页面显示健康状态。红色密钥意味着权限错误或 IP 白名单不匹配——见 故障排查。Binance IP 白名单已开启在安装时设置。密钥万一泄露这是你的主要防护。已配置通知器。配置 Slack、Telegram 或 Webhook这样不必盯屏也能知道交易与错误。一个没有任何通知器的实盘 Profile 会在仪表盘上警告你因为真实资金的紧急情况否则将完全无声worker 会额外写入一条 warn 级 action-log 记录「real-money ... fired but this profile has no enabled notifier」。预算足够小首次运行币种是你了解的。4.2 检查 Live gate每个 Profile 都有一个咨询性质的Live gate上线门槛——一种就绪检查在你投入真实资金之前按你的质量标准给配置打分。它永远不会阻止你上线它只是一个质量信号而不是一把锁即使检查失败或缺失你也可以实盘——门槛只是告诉你配置是否先被证明过自己。建议在 Backtest回测 之后查看 Profile 的 Live gate 小节。Live gate 的核心字段默认值均取自 docs/user-guide/profile/live-gate.md字段默认值作用Show the backtest quality check开关闭则完全跳过检查无论开关都不会阻止上线Min profit factor1.1回测中每亏 1 美元应赚多少1.0 打平1.1 留有余量Min closed trades100小样本上的盈利因子只是噪声Min alpha vs hold (%)0超越单纯持有的收益0 至少与持有持平Require out-of-sample validation开边缘还必须通过回测最近 30%你未调参的部分的盈利因子与 alpha 门槛这是对抗过拟合的真正防线Min out-of-sample trades20留出样本约占 30%交易更少低于此数指标过于嘈杂Max backtest age (days)14拒绝更早的证明——市场与配置都会漂移上线之后还有Edge-decay monitor边缘衰减监视器持续观察把实盘盈利因子与固定的回测基线比较。它从不为边缘衰减暂停买入——最多在仪表盘标记并发出一条提醒默认OffWarn模式在实盘盈利因子低于基线 ×0.85 时告警低于 ×0.6 视为 breach。4.3 启用 Profile新 Profile 默认禁用且不持有仓位。预检没问题后从 Profile 的 Profile settingsProfile 设置 小节启用它。此后 worker 会对 Profile 的币种逐 tick 执行策略并放置订单从该币种的下一条来自 Binance 的行情更新开始。观察第一笔实盘交易落地然后在 仪表盘 和该币种的Logs标签页阅读机器人做了什么、为什么。仪表盘上每个买卖动作都带有原因说明例如「价格跌至下一个网格档位」或「回调 3% 后追踪止损触发」这是「为什么买/为什么卖」的第一查询位置。4.4 知道如何停止它三级 Kill switch在第一次实盘交易之前请阅读Kill switch急停开关。它是紧急停止针对单币、单 Profile 或整个账户。它停止放置新的买卖订单但不会卖出你已持有的仓位也不会取消已挂在 Binance 上的订单那些订单保持有效直到成交或你手动取消。层级位置持续时间单个币种币种页面上的Pause控件到你设置的计时器结束最长 7 天或你提前释放单个 ProfileProfile 的Settings页上的Stop开关直到你关掉它无计时器整个账户Account设置页——一个按钮同时停止所有 Profile直到你逐个把 Profile 重新打开无计时器几点值得注意单币 Pause 的7 天上限是刻意的一个被遗忘的暂停不可能默默比你记住它的时间更久。暂停时币种页面会显示横幅可随时提前释放。账户级停止是客户端向每个 Profile 发起的「逐一禁用」扇出并非单一原子操作部分失败可能让某些 Profile 仍在交易。自动入场熔断器——日亏损上限、连胜保护、回撤保护——是独立于 Kill switch 的另一套机制它们会自动暂停新入场。停止生效后你会在多处看到它被停止 Profile 的仪表盘卡片显示kill-switch徽章、Profile 切换器与侧边导航标记、通过 MCP 读取时可见killSwitch字段、每次开/关都会写入该 Profile 的审计日志。4.5 暂停 vs 删除 Profile与 Kill switch 分开Profile 还有自己的enable/disable开关。两者都会停止新订单Kill switch 是快速的紧急停止disable 是正常的关闭开关Disable 一个 Profile——它停止做出新决策但按设计保留 Binance 上已挂出的订单继续生效。适合临时暂停。Delete 一个 Profile——删除时会主动取消该 Profile 的实盘订单再移除它因此不会留下「幽灵订单」。如果 Profile 仍有实盘订单或未平仓应用会升级到处置步骤提供两种安全选择「先取消挂单再删除」或「把持仓移交另一个 Profile」。4.6 保持安全与出问题时保持 Binance IP 白名单开启。配置 Notifier不盯屏也能知道交易与错误。定期备份——见 备份与恢复。出问题时见故障排查的常见症状与修复。五、一次讲清的核心术语这些术语贯穿整个文档源自 docs/get-started/index.mdProfile配置档——一套独立设置一个策略加上它适用的币种与预算。一个 Binance 账户可以同时运行多个 Profile。Symbol / pair交易对——一种币对另一种币计价写作一个词。BTCUSDT表示「以 Tether一种美元稳定币计价的比特币价格」。Strategy策略——决定何时买入卖出的规则书。三种策略的对比见 概念 → 策略。Order订单——发给 Binance 的买入或卖出指令。可能立即成交也可能挂在订单簿上等待价格到达。Tick逐次行情处理——机器人对某个币的一次完整决策周期每次该币从 Binance 收到一条新的行情更新就执行一次。从源码结构看tick 正是 worker 的核心执行单元worker 进程维护tick队列worker/src/tick 目录承载逐 symbol 的 tick 处理每次决策都「收集输入最新价格、近期 K 线、钱包、你的设置→ 运行策略规则 → 决定买入/卖出/等待 → 保存结果」以便重启后干净恢复。策略只负责决策单独的 executor 负责下单并保证即使跨崩溃也绝不重复下单——这就是每个策略都相同的 tick 形状示意图见 策略总览。六、运行之后常看页面与常见问题用户指南——记录每一个界面与字段。仪表盘——观察交易、阅读机器人为什么行动的窗口。顶栏的账户健康条Account health每 15 秒刷新回答「我的钱现在是否安好」Bot live / Bot down / N paused / N near limit / 今日已实现盈亏。看起来不对时使用Kill switch或查阅故障排查。故障排查页docs/operations/troubleshooting.md的「机器人不交易」清单值得先背下来Profile 是否启用API 密钥是否绿色买入条件是否真的满足「什么都不做」也是合法且常见的决策去 History → Logs 看每条 tick 的决定与依据数字是否有预算和余额而对于「必须立刻停下」的场景Kill switch 永远是第一答案——它立即暂停新交易让你从容调查。下一步完成本指南的三步后从 生产部署与运维 补齐生产叠加层deploy/secrets/*三个密钥文件、TLS at the edge、TimescaleDB 升级、迁移机制与 Prometheus 告警规则并在 用户指南 中逐一熟悉 Profile 的每个设置页即可把这台机器人纳入正式的日常运维。赞分享金融科技后端前端【免费下载链接】binance-trading-botAutomated Binance trading bot with pluggable strategies, historical backtesting, and a live dashboard项目地址https://gitcode.com/gh_mirrors/bi/binance-trading-bot点击查看免费下载相关推荐binance-trading-bot 运维部署实战干净 VM 30 分钟上线完整 runbookbinance trading bot 运维部署实战干净 VM 30 分钟上线完整 runbook 本篇是 binance trading bot 面向运维人金融科技后端前端Sunshine 快速上手跨平台安装、系统服务部署与首次配置全流程指南Sunshine 快速上手跨平台安装、系统服务部署与首次配置全流程指南 Sunshine 是一个自托管的 Moonlight 串流主机程序本文基于官方入门文音视频后端jquery-smooth-scroll完全指南让页面内导航滚动如丝般顺滑jquery smooth scroll完全指南让页面内导航滚动如丝般顺滑 jquery smooth scroll是一款轻量级jQuery插件能够让网页内创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进