Structure Flow Strategy v2.2d 是一套基于纯价格行为学(Price Action)的 ETH/USDT 永续合约中低频趋势跟踪策略。策略运行于 1 小时时间框架,辅以 4 小时和日线级别的宏观结构分析,日均交易 0.7 笔,持仓周期约 21.5 小时。
v2.2d 不依赖任何传统技术指标——没有 EMA、没有 MACD、没有 RSI、没有布林带。策略的"眼睛"只有三个东西:
v2.2d 的逻辑可以拆解为四个第一性原理:
| 原理 | 表述 | 在策略中的映射 |
|---|---|---|
| 顺势而为 | 趋势是你的朋友。反转大部分失败,顺势交易的概率优势是压倒性的。 | D1 趋势向上才做多,D1 趋势向下才做空。4H 趋势强度确认。 |
| S/R 位入场 | 支撑和阻力是市场记忆的锚点。价格在这些位置的反应提供了低风险的入场时机。 | 供需区域(Demand/Supply Zone)+ 活支撑/阻力(Alive S/R)双重过滤。 |
| 让利润奔跑 | 交易的利润不来自胜率,而来自少数大赢家。截断亏损容易,让利润奔跑难。 | 动态追踪止损(Trailing Stop Loss)。亏损单平均持仓 9 小时,盈利单平均持仓 2 天 3 小时。 |
| 纪律优于预测 | 不要试图预测下一根 K 线。策略的工作是"如果 A 则 B",不是"我认为会涨"。 | 6 项入场条件全部为布尔值,无模糊判断。冷却期防止情绪化追单。 |
v2.2d 采用三层时间框架结构,自上而下形成"宏观定方向 → 中观定趋势 → 微观定入场"的决策链条:
D1(日线):使用 @informative("1d") 装饰器,在日线级别检测 Swing Point 并判断趋势方向(trend_up / trend_down)。这是策略的"宪法"——D1 趋势决定允许做多还是做空。
4H(四小时):使用 @informative("4h") 装饰器。不仅判断趋势方向,还计算趋势强度。趋势强度的算法是:最近两个 Swing High 的间距变化率 + 最近两个 Swing Low 的间距变化率。强度 > trend_strength_min(默认 -0.20,即 -20%)则标记为强势趋势。
1H(一小时):主时间框架。在此层级完成所有核心计算:Swing Point 检测、S/R 结构分析、供需区域划分、K 线形态识别、活支撑/阻力判定、入场信号生成和冷却期应用。
| 参数名 | 默认值 | 可调范围 | 说明 |
|---|---|---|---|
swing_lookback_d1 | 10 | 8 ~ 14 | D1 Swing Point 检测窗口。越大越滞后,越小越敏感。 |
swing_lookback_h4 | 8 | 5 ~ 10 | 4H Swing Point 检测窗口。用于趋势强度计算。 |
swing_lookback_1h | 5 | 3 ~ 7 | 1H Swing Point 检测窗口。直接决定 S/R 位置。 |
pin_bar_wick_ratio | 60% | 50 ~ 70% | Pin Bar 识别阈值。影线占比需 > 此值。 |
max_stop_dist | 50% | 20 ~ 50% | 入场时价格与 S/R 的最大距离(%)。限制止损成本。 |
cooldown_bars | 6 | 3 ~ 12 | 入场后冷却 K 线数。防止连续追单。 |
trend_strength_min | -20% | -50 ~ +20% | 4H 趋势强度最低阈值。负值=允许弱趋势入场。 |
trend_strength_min 设为 -20% 意味着策略在非常宽松的条件下也允许入场——历史回测表明,过度收紧此参数会误杀大量盈利交易。
Swing Point 是价格行为学的基石。一个 Swing High 被定义为:某个 K 线的高点,比它左右各 N 根 K 线的高点都高。Swing Low 同理。
def _detect_swing_points(high, low, window=5):
n = len(high)
sh = pd.Series(np.nan, index=high.index)
sl = pd.Series(np.nan, index=low.index)
for i in range(window, n - window):
# Swing High: 当前高点 > 左 window 根和右 window 根的所有高点
if (high.iloc[i] > high.iloc[i-window:i].max() and
high.iloc[i] > high.iloc[i+1:i+window+1].max()):
sh.iloc[i] = high.iloc[i]
# Swing Low: 当前低点 < 左 window 根和右 window 根的所有低点
if (low.iloc[i] < low.iloc[i-window:i].min() and
low.iloc[i] < low.iloc[i+1:i+window+1].min()):
sl.iloc[i] = low.iloc[i]
return sh, sl
pd.notna() 判断。
_build_structure() 是策略最核心的函数。它逐 K 线遍历,维护最近 4 个 Swing High 和 Swing Low 的列表,并实时判断:
这是策略中最精妙的条件之一。仅仅"存在"支撑/阻力是不够的——策略要求这个 S/R 是活的:它在最近的 3 根 K 线内被测试过,并且守住了。
# 活支撑:价格触及支撑(±0.5%)且收盘在支撑上方
touched_support = (
(low <= support * 1.005) & (low >= support * 0.995)
)
held_support = close > support
support_tested_and_held = touched_support & held_support
support_alive = support_tested_and_held.rolling(3, min_periods=1).max() > 0
resistance_alive 从 True 变 False,策略正确拒单。说明这个条件在实战中确实在履行"最后一道关"的职责。
Pin Bar(也称为锤子线/流星线/十字星)是价格行为学中最重要的单 K 线反转信号。其核心特征是:影线(wick)极长,实体(body)极短。
body = abs(close - open)
total_range = (high - low).replace(0, 0.0001)
upper_wick = high - max(open, close)
lower_wick = min(open, close) - low
# Pin Bar 条件:影线占总范围的 60% 以上
is_pin = (upper_wick + lower_wick) / total_range > 0.6
# 看涨 Pin Bar:阳线 + 下影线 > 上影线(买方在低位强力反击)
bullish_pin = is_pin & (close > open) & (lower_wick > upper_wick)
# 看跌 Pin Bar:阴线 + 上影线 > 下影线(卖方在高位强力压制)
bearish_pin = is_pin & (close < open) & (upper_wick > lower_wick)
吞没形态(Engulfing)是两K线组合形态,也是价格行为学中可信度最高的反转信号之一。
prev_open = open.shift(1)
prev_close = close.shift(1)
# 看涨吞没:当前阳线完全吞没前一根阴线
bullish_engulf = (
(close > prev_open) & (open < prev_close) & (close > open)
)
# 看跌吞没:当前阴线完全吞没前一根阳线
bearish_engulf = (
(close < prev_open) & (open > prev_close) & (close < open)
)
在 v2.2d 中,K 线形态虽然在代码中被计算(bullish_pinbar、bearish_pinbar、bullish_engulfing、bearish_engulfing),但在当前的入场条件中并未被直接使用。策略选择用供需区域 + 活 S/R 替代了 K 线形态确认。
plot_config 可视化,方便实盘监控时观察。
所有 6 项条件必须同时满足,策略才会发出做多信号:
| # | 条件 | 代码变量 | 逻辑 |
|---|---|---|---|
| 1 | D1 上升趋势 | trend_up_1d |
日线级别 Swing High 和 Swing Low 依次抬高。这是"顺势"的根保证。 |
| 2 | 价格处于需求区 | in_demand |
当前收盘价在支撑-阻力区间的下 35% 内。确保入场位置有足够的上涨空间。 |
| 3 | 止损距离合理 | long_stop_dist <= max_stop_dist |
入场价距支撑位不超过 50%(默认),且必须 > 0.3%。防止止损太远或太近。 |
| 4 | 支撑位有效 | support_alive |
最近 3 根 K 线内价格曾测试支撑并收盘在其上方。证明市场"记得"这个位置。 |
| 5 | 4H 强势上升 | strong_uptrend_4h |
4H 级别趋势强度 > -20%。中观级别确认趋势有效性,过滤假突破。 |
| 6 | 冷却期已过 | _apply_cooldown() |
距离上次入场已超过 6 根 K 线(默认)。防止连续追单和过度交易。 |
| # | 条件 | 代码变量 | 逻辑 |
|---|---|---|---|
| 1 | D1 下降趋势 | trend_down_1d |
日线级别 Swing High 和 Swing Low 依次降低。 |
| 2 | 价格处于供给区 | in_supply |
当前收盘价在支撑-阻力区间的上 35%(即 65%~100%)。 |
| 3 | 止损距离合理 | short_stop_dist <= max_stop_dist |
阻力位距入场价不超过 50%,且必须 > 0.3%。 |
| 4 | 阻力位有效 | resistance_alive |
最近 3 根 K 线内价格曾测试阻力并收盘在其下方。 |
| 5 | 4H 强势下降 | strong_downtrend_4h |
4H 级别下降趋势强度 > -20%。 |
| 6 | 冷却期已过 | _apply_cooldown() |
距离上次入场已超过 6 根 K 线。 |
v2.2c 使用了一个看似巧妙但实际有致命缺陷的冷却期实现:
# v2.2c 的 bug 实现
long_base = (...) # 6项条件,布尔 Series
long_entries = long_base & (long_base.rolling(cooldown).max().shift(1) == 0)
Bug 的逻辑:rolling(cooldown).max() 检测的是"过去 6 根 K 线中是否有任何一根满足条件"——而不是"过去 6 根 K 线中是否实际入场了"。
rolling(6).max() 永远为 True,冷却期永远不解除。v2.2d 引入了一个全新的 _apply_cooldown() 方法,基于实际入场事件而非条件满足:
def _apply_cooldown(self, signal: pd.Series, cooldown_bars: int) -> pd.Series:
"""
正确应用冷却期:入场后才冷却,而非条件满足就冷却。
"""
n = len(signal)
result = [False] * n
last_entry = -99999 # 上次入场的 bar 索引
values = signal.values
for i in range(n):
if values[i] and (i - last_entry) > cooldown_bars:
result[i] = True
last_entry = i
return pd.Series(result, index=signal.index)
cooldown_bars → 允许入场。last_entry,接下来 cooldown_bars 根 K 线内即使条件满足也不会再次入场。| 指标 | v2.2c (Bug) | v2.2d (修复) | 变化 |
|---|---|---|---|
| 交易笔数 | 1,056 | 1,375 | +319 (+30%) |
| 最终资金 | $11,983,254 | $20,578,435 | +71.7% |
| CAGR | 270.15% | 309.01% | +38.86pp |
| Sharpe | 0.82 | 1.03 | +0.21 |
| 最大回撤 | 17.96% | 20.58% | +2.62pp |
| 利润因子 | 1.97 | 1.92 | -0.05 |
| 胜率 | 29.7% | 28.9% | -0.8pp |
v2.2d 使用 D1 级别的趋势反转作为结构出场信号:
# 做多出场:D1 不再上升
exit_long = ~dataframe["trend_up_1d"].fillna(True)
# 做空出场:D1 转为上升
exit_short = dataframe["trend_up_1d"].fillna(False)
逻辑非常简洁:D1 结构破坏 = 离场。做多时如果日线趋势从上升转为非上升,立即出场。做空时如果日线趋势转为上升,立即出场。
exit_signal 出场(88.9% 胜率),说明绝大多数交易是被动态止损管理而非 D1 结构出场信号终止的。
这是策略真正的核心出场机制。止损位置动态绑定到 1H 级别的 S/R 位:
def custom_stoploss(self, pair, trade, current_time, current_rate,
current_profit, after_fill, **kwargs):
dataframe, _ = self.dp.get_analyzed_dataframe(pair, self.timeframe)
last = dataframe.iloc[-1]
if not trade.is_short:
# 做多:止损 = 支撑位 × 0.999(支撑下方 0.1%)
support = last.get("support", np.nan)
sl_price = support * 0.999
sl_ratio = (sl_price / current_rate) - 1.0
return max(sl_ratio, -0.15) # 硬上限 15%
else:
# 做空:止损 = 阻力位 × 1.001(阻力上方 0.1%)
resistance = last.get("resistance", np.nan)
sl_price = resistance * 1.001
sl_ratio = 1.0 - (sl_price / current_rate)
return min(sl_ratio, 0.15) # 硬上限 15%
每根 1H K 线收盘时,策略按以下优先级检查出场:
出场逻辑的核心统计数据:
trailing_stop_loss 出场,胜率 66.2%,贡献 +383,557% 的利润stop_loss 出场,胜率 0%,亏损 -181,597%exit_signal 出场,胜率 88.9%策略设置了 stoploss = -0.15(15%)作为全局硬止损。但在实际运行中,这个硬止损几乎不会被触发,因为 custom_stoploss 的动态 S/R 止损通常在较小的亏损幅度就已经激活。硬止损的存在是安全网——防止 custom_stoploss 在极端行情下返回异常值。
| 参数 | 值 | 含义 |
|---|---|---|
max_open_trades | 1 | 同一时间最多持有 1 笔仓位 |
stake_amount | unlimited | 每笔交易使用全部可用资金(全仓) |
| 杠杆 | 1x | 不使用杠杆 |
| 保证金模式 | Cross(全仓) | 所有仓位共享保证金池 |
回测显示的最大回撤为 20.58%(约 $2,200,994),发生在 2026-05-05 至 2026-05-23,持续 17 天 15 小时。回撤起点资金 $22,490,086,终点 $20,279,092。
需要注意:
| 指标 | 数值 | 评级 |
|---|---|---|
| 回测区间 | 2021-01-01 → 2026-06-01(1,977 天) | 覆盖完整牛熊周期 ✅ |
| 交易模式 | Cross Futures(合约) | — |
| 交易笔数 | 1,375(日均 0.7 笔) | 中低频 ✅ |
| 初始资金 | $10,000 | — |
| 最终资金 | $20,578,435.93 | — |
| 总回报率 | +205,684.36%(2057倍) | 🏆 卓越 |
| CAGR | 309.01% | 🏆 卓越 |
| Sharpe 比率 | 1.03 | 良好(>1.0) |
| Sortino 比率 | 3.88 | 优秀(下行风险控制好) |
| Calmar 比率 | 20,310.16 | 极高(收益远超回撤) |
| 利润因子 | 1.92 | 良好(>1.5) |
| SQN | 2.88 | 良好(>2.0) |
| 胜率 | 28.9%(398 胜 / 977 负) | 偏低但可控 |
| 最大回撤 | 20.58%($2,200,994) | 可控 |
| Expectancy | $14,959 (Ratio: 0.65) | 正期望 ✅ |
| 出场原因 | 笔数 | 占比 | 胜率 | 总盈亏 USDT | 平均持仓 |
|---|---|---|---|---|---|
trailing_stop_loss |
588 | 42.8% | 66.2% | +38,355,746 | 1天 17:47 |
stop_loss |
777 | 56.5% | 0% | -18,159,746 | 6:13 |
exit_signal |
9 | 0.7% | 88.9% | +317,061 | 11:20 |
force_exit |
1 | 0.1% | 100% | +55,374 | 4:00 |
| 指标 | 做多 (Long) | 做空 (Short) |
|---|---|---|
| 交易笔数 | 748 | 627 |
| 总利润 USDT | +5,103,388 | +15,465,047 |
| 总利润 % | +51,034% | +154,650% |
| 指标 | 数值 |
|---|---|
| 最佳单笔交易 | +36.09% |
| 最差单笔交易 | -5.41% |
| 最佳交易日 | +$4,499,935.76 |
| 最差交易日 | -$530,721.16 |
| 最大连续盈利 | 6 笔 |
| 最大连续亏损 | 24 笔 |
| 盈利日 / 持平日 / 亏损日 | 370 / 841 / 635 |
| 盈利交易平均持仓 | 2 天 3 小时 9 分 |
| 亏损交易平均持仓 | 9 小时 22 分 |
| 最长盈利持仓 | 9 天 15 小时 |
| 最长亏损持仓 | 2 天 14 小时 |
以下是两个版本在完全相同的回测条件下(2021-01-01 → 2026-06-01, max_open_trades=1, wallet=10000)的表现对比:
| 指标 | v2.2c | v2.2d | 变化 |
|---|---|---|---|
| 交易笔数 | 1,056 | 1,375 | +30.2% |
| 最终资金 | $11,983,254 | $20,578,435 | +71.7% |
| 总回报 | +119,732% | +205,684% | +85,952pp |
| CAGR | 270.15% | 309.01% | +38.86pp |
| Sharpe | 0.82 | 1.03 | +0.21 |
| 利润因子 | 1.97 | 1.92 | -0.05 |
| 最大回撤 | 17.96% | 20.58% | +2.62pp |
| 胜率 | 29.7% | 28.9% | -0.8pp |
| 做多/做空 | 585 / 471 | 748 / 627 | +163 / +156 |
| 版本 | 核心改动 | 结果 | 教训 |
|---|---|---|---|
| v0.x | EMA/ATR 等传统指标 | 已弃用 | 用户要求纯价格行为学 |
| v1.0 | 5M TF, Spot | 噪音太多,持仓 12min | 时间框架太短 |
| v1.1 | 1H TF, Futures | +61.52% | 硬止损亏损太大 |
| v1.2 | Entry Candle 止损 | Bug → 50笔全亏 | return None 回退 25% 止损 |
| v1.3 | ATR 三阶段止损 | -63.72% | ATR 不适合价格行为策略 |
| v1.4 | 纯价格结构止损 | +140.71%, PF=3.78 | 方向正确 ✅ |
| v1.5 | 参数调优 | +140.83% | 持平,参数不敏感 |
| v1.6 | 冷却期 + 活 S/R | 旧最优基线 | 入场质量 > 止损优化 |
| v1.7~v1.9 | 止损优化尝试 | 全部失败 | 任何过滤止损的方法都会误杀盈利 |
| 版本 | 核心改动 | 结果 | 意义 |
|---|---|---|---|
| v2.0 | B1 入场延迟确认 | 方向正确但降频严重 | Trailing 胜率最高 91.7% |
| v2.1 | D1 趋势强度过滤 | ETH 4366% vs v1.6 3659% | 首次全面超越 v1.6 ✅ |
| v2.2b | 参数精调 | 回测 4673% | 部署至服务器 dry-run |
| v2.2c | 1H S/R 替代 4H S/R | 全周期 119,733% | 1H S/R 方向正确,但有冷却期 bug |
| v2.2d | 冷却期修复 | 全周期 205,684% | 🔥 当前最优基线 |
| # | 风险 | 严重度 | 详情 |
|---|---|---|---|
| 1 | 低胜率心理压力 | 🔴 高 | 28.9% 胜率意味着每 3-4 笔就有 2-3 笔止损。最大连续亏损 24 笔。实盘中连续亏损时人性会本能地想要干预——这恰恰会破坏策略的数学优势。 |
| 2 | 过拟合风险 | 🟡 中 | 策略在 2021-2026 同一样本上迭代了 20+ 个版本。虽然有完整的牛熊覆盖和清晰的逻辑链,但无法排除一定程度的样本内过拟合。 |
| 3 | S/R 位移滞后 | 🟡 中 | 动态止损跟随最新 Swing Point 移动,但在快速趋势中,Swing Point 的形成有滞后。可能在 S/R 已经"过期"时仍在使用旧止损位。 |
| 4 | 震荡市低效 | 🟡 中 | 策略是趋势跟踪策略,在长时间窄幅震荡中交易机会减少,且假突破增多。v3.x 波段策略正在开发中以覆盖这一场景。 |
| 5 | 活 S/R 窗口敏感 | 🟢 低 | 3 根 1H K 线的活 S/R 窗口对市场节奏敏感。快节奏市场中,S/R 可能在窗口过期前就被突破;慢节奏中,窗口可能太短。但 2026-06-11 14:00 的实盘验证表明当前设置是合理的。 |
| # | 风险 | 严重度 | 详情 |
|---|---|---|---|
| 1 | 滑点导致回测低估 | 🟡 中 | 回测假设 0.05% 手续费,但未考虑市价单滑点。在 1H 级别中低频策略中滑点影响相对可控,但大资金阶段(>100万)的流动性约束可能显著放大滑点。 |
| 2 | 服务器故障 | 🟡 中 | 东京服务器(2 vCPU, 2GB RAM, 40GB SSD)运行 freqtrade + Dashboard + Halo + Shadowsocks 等多个服务,资源有限。CPU/内存峰值可能导致策略执行延迟。 |
| 3 | API 限流 | 🟢 低 | Binance API 的 weight 限制(1200/min)。策略日均 0.7 笔交易,API 调用极低频,几乎不可能触及限流。 |
| # | 方向 | 优先级 | 说明 |
|---|---|---|---|
| 1 | Out-of-Sample 验证 | P0 | 使用 2025-2026 年 dry-run 数据(未在优化中使用)验证策略的样本外表现。如果显著差于回测 → 过拟合证据。 |
| 2 | 实盘滑点数据收集 | P1 | 记录 dry-run 中每笔订单的实际成交价与信号价的偏差,量化真实滑点成本,修正回测收益预估。 |
| 3 | 每日监控自动化 | P1 | 完善 daily_brief.py,增加异常检测(连续亏损超阈值、长期无信号、S/R 异常跳动等),微信主动推送。 |
| 4 | 多品种验证(BTC) | P2 | 在 BTC/USDT 上回测 v2.2d,评估策略的跨品种通用性。如果 BTC 表现差 → 可能是 ETH 特有的过拟合。 |
| # | 方向 | 说明 |
|---|---|---|
| 1 | 市场环境自适应 | 根据当前市场波动率/趋势强度自动调整参数(如 cooling_bars、trend_strength_min),而非使用固定值。牛市放宽冷却期,熊市收紧。 |
| 2 | 止损结构确认 | 在 custom_stoploss 中增加"结构破坏检测"——不只在 S/R 位止损,还检测 S/R 是否已被有效突破(收盘价穿透 + 下一根确认),提高止损的精准度。 |
| 3 | 波段策略完善(v3.x) | 完成《区间》阅读后,继续优化 v3.1 波段策略,覆盖趋势策略在震荡市中的交易空白,实现策略组合互补。 |
| 4 | 多因子评分替代二元过滤 | 将当前的 6 项布尔 AND 条件改为加权评分机制。某些条件在特定市场环境下权重更高,而非一刀切的"全部满足才入场"。 |
| 参数 | 类型 | 默认值 | 范围 | 空间 |
|---|---|---|---|---|
| swing_lookback_d1 | IntParameter | 10 | 8 ~ 14 | buy |
| swing_lookback_h4 | IntParameter | 8 | 5 ~ 10 | buy |
| swing_lookback_1h | IntParameter | 5 | 3 ~ 7 | buy |
| pin_bar_wick_ratio | IntParameter | 60 | 50 ~ 70 | buy |
| max_stop_dist | IntParameter | 50 | 20 ~ 50 | buy |
| cooldown_bars | IntParameter | 6 | 3 ~ 12 | buy |
| trend_strength_min | IntParameter | -20 | -50 ~ 20 | buy |
{
"max_open_trades": 1,
"dry_run_wallet": 10000,
"stake_amount": "unlimited",
"trading_mode": "futures",
"margin_mode": "cross",
"exchange": "binance",
"pair_whitelist": ["ETH/USDT:USDT"],
"timeframe": "1h",
"timerange": "20210101-20260601",
"fee": 0.0005
}
策略源码文件(452 行 Python)位于:
structure_flow_strategy_v2_2d_local.py~/freqtrade/user_data/strategies/structure_flow_strategy_v2_2d.py源码结构:
_detect_swing_points() — Swing Point 检测(行 42-57)_build_structure() — 结构分析:趋势 + S/R + 供需区域(行 63-126)_detect_candle_patterns() — K线形态识别(行 132-155)_apply_cooldown() — 冷却期(行 161-184)populate_indicators_1d() — D1 指标(行 190-204)populate_indicators_4h() — 4H 指标(行 210-252)populate_indicators() — 1H 主指标(行 258-324)populate_entry_trend() — 入场信号(行 330-378)populate_exit_trend() — 出场信号(行 384-391)custom_stoploss() — 动态止损(行 397-426)plot_config() — 可视化配置(行 432-451)| 术语 | 英文 | 解释 |
|---|---|---|
| Swing Point | Swing Point | 摆动点:局部价格极值。Swing High = 比左右各 N 根 K 线都高的高点;Swing Low 同理。 |
| S/R | Support / Resistance | 支撑/阻力:最近一个 Swing Low 为支撑,最近一个 Swing High 为阻力。 |
| Demand Zone | Demand Zone | 需求区:价格在 S/R 区间的下 35% 区域,买方力量聚集。 |
| Supply Zone | Supply Zone | 供给区:价格在 S/R 区间的上 35%(即 65%~100%),卖方力量聚集。 |
| 活 S/R | Alive S/R | 在最近 3 根 K 线内被测试过并且守住的支撑/阻力。3 根窗口基于 rolling(3).max()。 |
| Pin Bar | Pin Bar | 影线极长、实体极短的单 K 线形态。影线占比 > 60% 阈值。 |
| 吞没形态 | Engulfing | 当前 K 线完全吞没前一根 K 线的两 K 线组合反转信号。 |
| 冷却期 | Cooldown | 入场后禁止再次入场的 K 线数量。v2.2d 基于实际入场事件实现。 |
| 趋势强度 | Trend Strength | 4H 级别最近两个 Swing Point 的间距变化率之和,衡量趋势的"力道"。 |
| 追踪止损 | Trailing Stop Loss | 随 1H S/R 位动态移动的止损。支撑上移 → 做多止损上移,实现利润保护。 |
| CAGR | Compound Annual Growth Rate | 年化复合增长率。v2.2d 为 309.01%。 |
| Sharpe 比率 | Sharpe Ratio | 风险调整后收益。>1.0 为良好,v2.2d 为 1.03。 |
| SQN | System Quality Number | 系统质量指数。>2.0 为良好,v2.2d 为 2.88。 |
| Expectancy | Expectancy | 每笔交易的期望利润。v2.2d 为 $14,959(Ratio 0.65)。 |
— Structure Flow Strategy v2.2d 完整说明书 · 终 —
2026年6月11日 · FXY · 东京服务器 dry-run 运行中