93e148a3e7
Share focus_chart templates and APIs across four instances; align chart Y-axis, price lines and meta bar with exchange symbol precision and live unrealized PnL. Co-authored-by: Cursor <cursoragent@cursor.com>
crypto_monitor_binance
基于 Flask 的加密货币 下单监控 / 关键位监控 / 交易复盘 小系统,行情与实盘接口统一走 Binance(USDT-M 永续),通过 ccxt 访问。
功能概要
- 关键位监控:价格与硬条件校验、企业微信推送(可选)
- 下单监控:本地风控(含移动保本逻辑)、触达止盈/止损后尝试市价平仓并记账
- 策略交易:顶栏
/strategy(趋势回调 + 顺势加仓),见仓库根 策略交易说明.md - AI 复盘:OpenAI 兼容网关(默认)或 Ollama,见 AI复盘与模型配置说明.md
- 实盘(可选):
LIVE_TRADING_ENABLED=true且配置BINANCE_API_KEY/BINANCE_API_SECRET时,支持合约开仓、平仓、余额读取与内部划转(依赖 API 权限) - 止盈止损(Binance):市价成交后挂
STOP_MARKET(止损)、TAKE_PROFIT_MARKET(止盈);双向持仓带positionSide;不显式传reduceOnly(避免 API-1106)。触发参考价由BINANCE_TRIGGER_WORKING_TYPE控制(最新价 / 标记价)
环境要求
- Python 3.10+(建议)
- 依赖:
flask、requests、ccxt、werkzeug、Pillow(K 线图可选);经 SOCKS 代理时需PySocks
安装示例:
# 推荐在 /opt/crypto_monitor 执行仓库根目录 deploy/setup_env.sh
cd /opt/crypto_monitor/crypto_monitor_binance
source .venv/bin/activate
pip install -r ../requirements.txt
页面上的 「当日资金(交易账户)」 与 「可开仓」可用 U 仅统计 Binance U 本位永续合约账户(fetch_balance 的 swap / FAPI assets 中的 USDT),不会再用现货余额顶替。
配置说明(.env.example → .env)
.env.example:模板(可提交 Git);首次:cp .env.example .env后编辑。.env:本机真实配置(勿提交);app.py只读此文件。git pull不覆盖.env;升级前可cp .env .env.backup.$(date +%Y%m%d)。
与 Binance 相关的常用变量:
| 变量 | 说明 |
|---|---|
BINANCE_API_KEY / BINANCE_API_SECRET |
币安 API(需合约等权限) |
LIVE_TRADING_ENABLED |
true 时允许真实下单;false 仅本地逻辑 |
BINANCE_MARGIN_MODE |
cross 全仓 / isolated 逐仓 |
BINANCE_POSITION_MODE |
hedge 双向(需账户开启双向持仓)/ oneway 单向 |
BINANCE_TRIGGER_WORKING_TYPE |
CONTRACT_PRICE 或 MARK_PRICE(条件单触发参考) |
BINANCE_SOCKS_PROXY / BINANCE_HTTP_PROXY |
可选代理(与部署文档一致) |
EXCHANGE_DISPLAY_NAME |
页面展示的交易所名称,默认 Binance |
BINANCE_ACCOUNT_LABEL |
推送文案中的账户备注 |
其余变量(登录、企业微信、风控参数、AI_PROVIDER / OPENAI_* / OLLAMA_*、数据库路径等)见 .env.example 内注释 或 app.py 顶部默认值。
运行
生产环境使用 PM2(ecosystem.config.cjs)。临时调试:
cd /opt/crypto_monitor/crypto_monitor_binance
source .venv/bin/activate
python app.py
环境说明见 docs/ubuntu-server.md。
默认监听端口由 .env 的 APP_PORT 决定(未设置时多为 5000)。
部署(Linux / PM2 / SSH SOCKS)
详见 部署文档.md(Ubuntu + PM2 + 可选 SOCKS 访问 Binance)。
自检脚本
python scripts/verify_binance_funding.py
用于核对 Key 前缀(不含 Secret)并尝试读取资金钱包 / 合约钱包 USDT(需网络与 API 权限)。
数据与脚本
- 默认 SQLite:
crypto.db(路径由DB_PATH指定) scripts/fix_breakeven_labels.py:批量修正「止损」但盈亏为正的记录标签(见部署文档附录)
风险与合规
实盘交易有亏损风险。请自行确认 API 权限、IP 白名单、杠杆与保证金模式与币安账户设置一致,并遵守当地法律法规与 Binance 用户协议。