b733e551a0
Add scripts/normalize_ambiguous_unicode.py; fix corrupted patch_instance_theme_templates.py. Preserves curly quotes in string literals; removes Git homoglyph warnings on .env.example. Co-authored-by: Cursor <cursoragent@cursor.com>
3.8 KiB
3.8 KiB
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 用户协议.