注册名ema_group
所属插槽M1 TrendModule
状态stable
核心思路使用三条不同周期的 EMA(快线/中线/慢线)判断趋势方向和阶段。三线排列(快>中>慢)确认多头趋势,反向确认空头。价格与均线的相对位置判断是冲量段还是回调段。
适用场景日内趋势跟踪,适合有明显方向性的市场
趋势方向判断

多头(bullish)条件:三条 EMA 呈多头排列(EMA快 > EMA中 > EMA慢),且收盘价高于 EMA快线。

空头(bearish)条件:三条 EMA 呈空头排列(EMA快 < EMA中 < EMA慢),且收盘价低于 EMA快线。

震荡(ranging)条件:均线交叉缠绕,或收盘价穿插在均线之间,或快慢线距离过小(小于 ATR 的 0.3 倍)。

趋势阶段判断

冲量段(impulse):收盘价高于 EMA快线(多头)或低于 EMA快线(空头),且均线间距在扩大。

回调段(pullback):收盘价已回到 EMA中线附近(多头回调至 EMA中~EMA慢之间),但三线排列仍有效。

盘整段(consolidation):三线排列有效但均线间距持续收窄,暂未发生交叉。

极值价格和回调深度

extreme_price:在当前趋势方向上,过去 N 根 K 线内的极值(多头取最高价,空头取最低价),N 由参数 extreme_window 控制。

pullback_depth:(extreme_price - current_close) / (extreme_price - trend_origin_price),数值越大代表回调越深。

参数名类型默认值说明
ema_periodslist[int][21, 55, 89]三条均线周期,按快→中→慢排列
ranging_atr_multiplierfloat0.3快慢线间距低于 ATR × 此值时判定为震荡
extreme_windowint20计算极值价格的回溯 K 线根数
atr_periodint14ATR 计算周期
在 SystemConfig 中,trend_method 设为 "ema_group",trend_params 包含以上参数(可只写需要覆盖默认值的参数,其余使用默认值)。
字段本算法的输出值说明
direction"bullish" / "bearish" / "ranging"(触发短路)
stage"impulse" / "pullback" / "consolidation"
extreme_price过去 extreme_window 根 K 线内的极高/极低价
pullback_depth相对趋势幅度的回调比例(0.0~1.0)
strength当前版本置为 None
method固定为 "ema_group"
params_hash由 ema_periods + ranging_atr_multiplier + extreme_window 计算的 MD5 前8位
当 direction == "ranging" 时,此算法返回的 TrendResult.direction 即为 "ranging",流水线检查后立即短路,M2 不执行。
震荡短路是预期行为。如果在回测中发现某段行情下短路过于频繁,应调整 ranging_atr_multiplier 参数而非改动算法代码。
本算法实现 TrendModule ABC,输入输出类型参见 module_interface_spec.html。