在配置管理中引入市场状态方案,允许在不同市场条件下快速切换策略(如熊市、牛市、正常、保守)。更新相关参数以自动覆盖止损、仓位和趋势过滤设置,增强策略灵活性。同时,前端组件更新以支持市场状态方案的展示与选择,提升用户体验。
2.3 KiB
2.3 KiB
市场行情自动识别与 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. 使用方式
# 仅检测并打印(不更新 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. 启用自动更新
- 在「全局配置」中设置
AUTO_MARKET_SCHEME_ENABLED为true - 或执行一次同步默认配置:
cd backend && python sync_global_config_defaults.py,然后在全局配置页手动改为 true - 配置 crontab 定时执行
update_market_scheme.py --apply
4. Crontab 配置示例
每 4 小时执行一次(0 点、4 点、8 点…):
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 小时:
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_v5Redis 缓存,使交易进程下次读取时从 DB 获取最新配置 - 若希望立即生效,可在前端点击「清除全局缓存」并「重启所有账号交易」
- 若不开启
AUTO_MARKET_SCHEME_ENABLED,脚本仅打印识别结果,不修改 DB;可用--force临时强制更新