删除了多个不再使用的文档和代码文件,包括交易更新推送、条件订单推送、REST API 文档、WebSocket API 文档及相关的策略分析文档。这些文件的移除有助于清理代码库,确保项目的整洁性与可维护性。
6.4 KiB
6.4 KiB
策略与信号评估及改进建议
基于持仓记录(2026-02-16)、当前策略逻辑与币安接口文档,对「长时间持仓、盈利不明显」做简要诊断,并给出可落地的改进方向。
一、持仓与信号现状简要诊断
1. 持仓样本(来自 持仓记录_2026-02-16)
- 数量:约 12 个持仓,多空混合(BUY 少、SELL 多)。
- 盈亏分布:部分有 +15%、+13%、+9% 等浮盈,多数在 -5%~+2% 区间横盘,整体「拿得久、盈利不突出」。
- 共性:
- 入场依赖 1H/4H 技术信号(MACD + EMA + 4H 趋势),无资金费率、多空结构、订单流等过滤,容易在「结构不利」时开仓。
- 止损/止盈为固定比例或 ATR,无跟踪止损、无时间止损,盈利单容易回吐,亏损单容易长期挂单。
- 选币主要按 24h 涨跌幅 + 成交量 + signal_strength 排序,未用资金费率、大户多空比、主动买卖量等 做过滤或排序。
2. 当前信号与选单逻辑(简要)
- 扫描:24h 涨跌幅 ≥ 阈值 + 成交量 ≥ MIN_VOLUME_24H_STRICT → 对每个 symbol 拉 1H/4H K 线 → 算 RSI、MACD、EMA、4H 趋势 → 算 signal_strength(0–10),按强度排序取 TOP_N。
- 开仓条件:signal_strength ≥ MIN_SIGNAL_STRENGTH(8)、4H 趋势不逆势、RSI/24h 涨跌幅过滤、短周期方向过滤、大盘 Beta 过滤等。
- 问题点:
- 信号完全来自 K 线技术指标,没有合约特有的「成本与结构」信息(资金费率、多空比、主动买卖)→ 容易在费率极高或多空极度拥挤时进场。
- 入场时机只看扫描周期(如 15 分钟一次),没有用 WS 订单/成交推送做更细的时机优化。
- 出场只有固定 SL/TP,没有跟踪止损、没有「持仓时间 + 无盈利」类时间止损。
二、基于现有接口的改进方向(可落地)
1. 资金费率过滤(已接入 REST,建议优先上)
- 接口:
GET /fapi/v1/premiumIndex(已封装为get_premium_index(symbol)),含lastFundingRate。 - 思路:
- 做多:若
lastFundingRate > 某上限(例如 0.001,即 0.1%),说明多头付费高,开多成本高、易被费率侵蚀 → 跳过开多。 - 做空:若
lastFundingRate < 某下限(例如 -0.001),说明空头付费高 → 跳过开空。
- 做多:若
- 效果:减少在「费率极端不利于己方」时开仓,提高单笔期望收益;配合现有技术信号,不改变主逻辑,只做过滤。
- 实现:在策略层开仓前增加「资金费率过滤」步骤(见下节代码)。
2. 大户多空比 / 主动买卖量(已接入 REST,可选增强)
- 接口:
get_top_long_short_position_ratio、get_taker_long_short_ratio(或账户数多空比)。 - 思路:
- 做多:优先选择「近期主动买入占比高」或「大户多空比」偏多的标的(顺势);或极端多头拥挤时做「逆势空」需谨慎、可提高信号门槛。
- 做空:优先选择「主动卖出占比高」或大户偏空的标的。
- 实现:可在扫描后、或策略决定开仓前,对候选 symbol 取最近 1 条 taker 或大户多空比,与方向一致则通过、相反则降权或跳过(可选,先上资金费率再考虑)。
3. 订单/成交推送(WS)对「下单时机」的改进
- 文档:订单交易更新推送(ORDER_TRADE_UPDATE)、条件单更新(ALGO_UPDATE)、账户信息流等。
- 思路:
- 已有 User Data Stream 时,订单状态、成交回报已经实时;可在此基础上做「下单后快速反馈、部分成交/全部成交的后续动作」。
- 若引入 aggTrade / depth 等行情 WS:可在「信号已满足」时,结合最近几笔大单或盘口变化再点一次火,减少「信号刚满足就追在尖顶/尖底」的情况(实现成本较高,可作为二期)。
4. 止盈/止损与持仓管理
- 跟踪止损:文档支持
TRAILING_STOP_MARKET(激活价、回调比例)。可在「浮盈达到 X% 后」改为跟踪止损,锁定利润、让利润奔跑。 - 时间止损:若持仓超过 N 小时且浮盈 < 某阈值(或浮亏),可考虑平仓释放保证金,避免长期无效挂单(需在 position_manager 或策略层加「持仓时长」判断)。
- 分批止盈:当前有 take_profit_1/2 等设计;可结合 ATR 或固定比例,先平一部分、留一部分用跟踪止损(逻辑已有基础,可逐步细化)。
5. 扫描与选币
- 资金费率:扫描阶段可排除「费率极端」的标的(例如 |lastFundingRate| > 0.001),避免进入 TOP_N 的 symbol 本身就不适合当前方向。
- 成交量/流动性:继续用 24h 成交量 + 深度(若有)保证可执行性;深度接口已接入,可用于大单前的冲击成本估算。
- 多空比/主动买卖:作为排序加分项(与方向一致则排前),而不是硬过滤,避免过度减少开仓次数。
三、建议实施顺序
- 立即:在开仓前增加资金费率过滤(做多/做空各一个阈值),并加配置开关与日志。
- 短期:在配置中提供跟踪止损开关与参数(如激活盈利率、回调比例),对已有持仓在达到条件时切到跟踪止损(或先对部分新开仓做实验)。
- 中期:在扫描或策略中引入大户多空比 / taker 买卖比,作为过滤或排序加分,并观察胜率与频率变化。
- 可选:结合 WS 订单/成交与行情(aggTrade/depth)做更细的入场时机优化;以及「持仓时间 + 无盈利」的时间止损。
四、小结
- 现状:信号与选单主要依赖 K 线技术指标和 4H 趋势,缺少「资金费率、多空结构、订单流」等维度,且出场方式单一,容易导致持仓时间长、盈利不明显。
- 改进:在不推翻现有技术信号的前提下,优先用资金费率做开仓过滤,再用多空比/主动买卖做过滤或排序,并逐步加上跟踪止损和时间/无盈利止损,有望在控制回撤的同时提高单笔质量与资金效率。
- 上述改进均可基于你已接入的 REST 接口(premiumIndex、fundingRate、topLongShort、takerlongshortRatio 等)和现有 WS 文档实现;具体参数(费率阈值、跟踪止损比例等)可在实盘或回测中微调。