# 市场行情自动识别与 MARKET_SCHEME 更新 ## 1. 功能说明 `update_market_scheme.py` 基于 Binance 公开 API 自动识别当前市场行情(牛/熊/正常),并可选更新全局配置 `MARKET_SCHEME`,从而自动切换止损、仓位、4H 趋势过滤等参数。 **数据来源(无需 API Key):** - 24h 涨跌幅:`/fapi/v1/ticker/24hr` - 资金费率:`/fapi/v1/premiumIndex` - 大户多空比:`/futures/data/topLongShortPositionRatio` - 4H K 线:`/fapi/v1/klines`(计算 trend_4h) **打分规则:** | 指标 | 偏多 (+1) | 偏空 (-1) | |--------------|-------------|--------------| | 24h 涨跌幅 | ≥ 2% | ≤ -2% | | 4H 趋势 | up | down | | 资金费率 | ≥ 0.00005 | ≤ -0.00005 | | 大户多空比 | ≥ 1.1 | ≤ 0.9 | 总分 ≥ 2 → bull,≤ -2 → bear,否则 normal。 ## 2. 使用方式 ```bash # 仅检测并打印(不更新 DB) python scripts/update_market_scheme.py # 若开启 AUTO_MARKET_SCHEME_ENABLED,则更新 DB python scripts/update_market_scheme.py --apply # 强制更新(忽略 AUTO_MARKET_SCHEME_ENABLED 开关) python scripts/update_market_scheme.py --apply --force ``` ## 3. 启用自动更新 1. 在「全局配置」中设置 `AUTO_MARKET_SCHEME_ENABLED` 为 `true` 2. 或执行一次同步默认配置:`cd backend && python sync_global_config_defaults.py`,然后在全局配置页手动改为 true 3. 配置 crontab 定时执行 `update_market_scheme.py --apply` ## 4. Crontab 配置示例 每 4 小时执行一次(0 点、4 点、8 点…): ```cron 0 */4 * * * cd /path/to/auto_trade_sys && /path/to/.venv/bin/python scripts/update_market_scheme.py --apply >> /tmp/update_market_scheme.log 2>&1 ``` 或每 6 小时: ```cron 0 */6 * * * cd /path/to/auto_trade_sys && /path/to/.venv/bin/python scripts/update_market_scheme.py --apply >> /tmp/update_market_scheme.log 2>&1 ``` ## 5. 注意事项 - 脚本会清除 `global_strategy_config_v5` Redis 缓存,使交易进程下次读取时从 DB 获取最新配置 - 若希望立即生效,可在前端点击「清除全局缓存」并「重启所有账号交易」 - 若不开启 `AUTO_MARKET_SCHEME_ENABLED`,脚本仅打印识别结果,不修改 DB;可用 `--force` 临时强制更新