删除了多个不再使用的文档和代码文件,包括交易更新推送、条件订单推送、REST API 文档、WebSocket API 文档及相关的策略分析文档。这些文件的移除有助于清理代码库,确保项目的整洁性与可维护性。
3.8 KiB
3.8 KiB
后续方向实施说明
本文档说明「策略与信号评估及改进建议」中未实现或部分实现的方向,以及固定内容入库的用法。
一、已完成的改动
1. 固定内容入库(交易对 / 费率规则)
- 表:
market_cache(见backend/database/add_market_cache.sql)- 字段:
cache_key(如exchange_info、funding_info)、cache_value(JSON)、updated_at
- 字段:
- 模型:
backend/database/models.py中的MarketCacheget_exchange_info(max_age_seconds=86400)/set_exchange_info(data)get_funding_info(max_age_seconds=86400)/set_funding_info(data)
- 使用:
trading_system/binance_client.pyget_all_usdt_pairs():优先从 DB 读exchange_info(24 小时内有效),命中则直接解析返回;否则请求 API 并回写 DB。get_symbol_info(symbol):在内存/Redis 未命中时,尝试从 DB 的exchange_info解析该 symbol;API 拉取后也会回写 DB。
部署:执行 mysql -u root -p auto_trade_sys < backend/database/add_market_cache.sql 创建表。无需改配置即可生效。
2. 扫描阶段资金费率过滤
- 配置(
trading_system/config.py与 DBtrading_config):SCAN_FUNDING_RATE_FILTER_ENABLED:是否启用(默认 True)SCAN_FUNDING_RATE_MAX_ABS:阈值,默认 0.001(即 |lastFundingRate| > 0.1% 的标的从扫描候选剔除)
- 逻辑:在
market_scanner.scan_market()中,在得到「初步筛选后」的pre_filtered_symbols后,若启用则调用get_premium_index(None)取全量费率,剔除 |lastFundingRate| > 阈值的 symbol,再进入详细分析(K 线/技术指标)。
二、建议实现顺序(未实现部分)
| 顺序 | 方向 | 说明 |
|---|---|---|
| 1 | 跟踪止损 | 浮盈达到 X% 后,用 TRAILING_STOP_MARKET 替代或补充固定止盈;配置:TRAILING_STOP_ENABLED、TRAILING_ACTIVATION_PCT、TRAILING_CALLBACK_RATE;在 position_manager 挂完固定 SL/TP 后,达标则下跟踪止损单。 |
| 2 | 时间/无盈利止损 | 持仓时长 > N 小时且浮盈 < 某阈值(或浮亏)→ 市价平仓或提高止损优先级;配置:MAX_HOLD_HOURS、MIN_PNL_PCT_TO_HOLD;在 position_manager 的检查循环里按 entry_time 与当前 pnl% 判断。 |
| 3 | WS 订单/成交优化 | 下单后根据 ORDER_TRADE_UPDATE/TRADE 做快速反馈、部分成交后的加仓/减仓逻辑;实现成本较高,可排在跟踪止损和时间止损之后。 |
三、跟踪止损(待实现)要点
- 币安:条件单类型
TRAILING_STOP_MARKET,需callbackRate、activationPrice(或由系统按比例计算)。 - 配置建议:与现有
USE_TRAILING_STOP、TRAILING_STOP_ACTIVATION、TRAILING_STOP_PROTECT对齐,或新增TRAILING_ACTIVATION_PCT、TRAILING_CALLBACK_RATE从 config/DB 读取。 - 位置:
trading_system/position_manager.py中,在挂完固定 SL/TP 后(或定时检查持仓时),若启用且当前浮盈% ≥ 激活比例,则下TRAILING_STOP_MARKET;若已有跟踪止损单则跳过。
四、时间/无盈利止损(待实现)要点
- 逻辑:在 position_manager 的持仓检查循环中,读取每仓的
entry_time和当前 pnl%;若持仓时长 > MAX_HOLD_HOURS且pnl_percent < MIN_PNL_PCT_TO_HOLD(或为负),则触发市价平仓或标记为「建议平仓」。 - 配置:
MAX_HOLD_HOURS、MIN_PNL_PCT_TO_HOLD,从 config/DB 读。
五、手续费等固定费率(可选)
若后续要做「预估盈亏」或「最小盈利目标」,可将 maker/taker 费率存入 config 或单独表(如 symbol_fee),在算目标价/预期收益时读取。当前未实现。