Smart Money Concepts(SMC)是对分析能力要求最高的交易风格之一。要在 0.618 到 0.79 斐波那契回撤区间内识别趋势转变(CHoCH)、结构破坏(BoS)、未消化订单块、公允价值缺口(FVG)、流动性扫荡以及最佳入场区(OTE),需要你不断盯盘、把结构画对,再耐心等待一个可能一天只出现一次的多重共振机会。大多数主观型 SMC 交易者错过机会,要么是因为关键时刻不在电脑前,要么是因为在紧张中把 BoS 和 CHoCH 搞混而下错单。AI 搭建的 SMC 机器人能同时解决这两个问题:它盯盘到每一根 K 线、一致地执行规则,并且从不会把一种结构形态误判成另一种。
本指南将拆解一个由 AI 搭建的 Smart Money Concepts 交易机器人在底层到底是怎么运转的——结构检测、OTE 入场逻辑、斐波那契回撤计算、未消化订单块扫描——并展示如何在 fomoed 上用大白话搭建一个。我们会逐一介绍 AI 可调用的七个 SMC 原语,完整走一遍从提示词到上线运行的「CHoCH + 斐波那契」策略,并解释为什么自动化执行往往比主观 SMC 交易更胜一筹——哪怕你是个看图老手。
为什么 SMC 与 AI 结合是战力倍增器
Smart Money Concepts 交易难的不是理论。理论早已被研究得明明白白,大多数有经验的交易者都能在干净的图表上认出一个 CHoCH 或一个未消化的看多订单块。难的是执行:在你说好的周期上、在你说好的所有交易对上、始终如一地做下去,不会因为关键时刻没盯盘而漏掉机会,也不会因为机会出现在本地凌晨 3 点而错过。
有两件事会毁掉主观 SMC 交易。第一是幸存者偏差——你只记得做对的机会,忘掉那些没成的,导致你对策略真实盈利能力的判断严重失真。第二是执行漂移——周一你信誓旦旦只做 A 级机会,到了周四你就开始进 B 级机会,因为「等太久了得做点什么」。自动化能解决这两点。机器人没有情绪可以漂移,而且每一笔交易——无论盈亏——都被记进同一个数据库,你随时可以回顾,不会被玫瑰色滤镜美化。
最近真正发生变化的是:你不再需要自己写这个机器人了。要算法化地识别 CHoCH,需要正确识别波段高点和波段低点、把结构追踪成 HH-HL-LH-LL 的序列,并检测当收盘价突破最近一个低点高位(在下跌趋势中,表明出现看多 CHoCH)。这是几百行需要仔细打磨的 Python。绝大多数散户 SMC 交易者从来没写过,只能靠主观看图盼着自己能眼力辨认。现在 AI 帮你写好这一层——更准确地说,它是基于一套经过实战检验的 SMC 库进行组合,而这套库由 fomoed 自定义策略引擎在沙箱内暴露给 AI,所以 AI 不需要每生成一次都重造枢轴检测的轮子。
AI 可调用的七个 SMC 原语
当你用大白话描述一个 SMC 策略时,AI 会生成一段在沙箱化运行时中执行的 Python 脚本。脚本本身不会自己写枢轴检测;它通过组合一个名为 fomoed.smc 的精挑细选的辅助库来实现,该库提供了七个原语。每一个都对应 SMC 交易者熟悉的概念:
1. 波段(Swings)。 fomoed.smc.swings(highs, lows, lookback) 返回近期价格中的波段高点和波段低点。索引 i 处的波段高点是 i - lookback 到 i + lookback 这一窗口内的最高点。lookback 默认为 20 根 K 线,适用于大多数周期。返回一个字典,包含 highs 和 lows 两个数组,各自记录每个检测到的枢轴的索引和价格。
2. 结构(Structure)。 fomoed.smc.structure(highs, lows, lookback) 接受波段数据,并将它们标记为 HH(高高点)、HL(高低点)、LH(低高点)或 LL(低低点)。返回当前趋势(看多、看空或中性)以及结构序列。机器人可以用它在决定开多之前先确认「我现在是不是处于上涨趋势」。
3. 结构破坏(BoS)。 fomoed.smc.bos(opens, highs, lows, closes, lookback) 检测趋势延续型的突破。看多 BoS 是在上涨趋势中强力收盘突破最近的波段高点;看空 BoS 是在下跌趋势中强力收盘跌破最近的波段低点。这里「强力」很关键——辅助函数要求突破 K 线的实体至少是滚动 20 根 K 线平均实体的 1.5 倍,以过滤掉那些磨蹭式、缺乏位移的突破。
4. 趋势转变(CHoCH)。 fomoed.smc.choch(highs, lows, closes, lookback) 检测趋势反转的关键点。看多 CHoCH 是在原本下跌趋势中,收盘突破最近的低点高位,预示反转。看空 CHoCH 是在原本上涨趋势中,收盘跌破最近的高点低位。这是大多数主观交易者最容易和 BoS 弄混的 SMC 原语。辅助函数从算法上把两者区分清楚。
5. 订单块(Order Blocks)。 fomoed.smc.order_blocks(opens, highs, lows, closes) 返回当前活跃的(未消化的)看多和看空订单块区域。看多 OB 是突破波段高点的位移行情前最后一根看空 K 线;看空 OB 反之。区域使用 K 线实体(开盘价到收盘价),而不是带上下影线的完整区间,这是按照 ICT 方法学的做法。只返回形成后没有被回踩过的区域——一旦价格回踩过某个 OB,就被视为已消化并从列表中剔除。
6. 公允价值缺口(FVG)。 fomoed.smc.fvg(opens, highs, lows, closes, min_gap_pct) 寻找未填补的三 K 线失衡形态。看多 FVG 是 K 线 i-1 的最高价与 K 线 i+1 的最低价之间的缺口,其中 K 线 i 是中间的位移 K 线。min_gap_pct 参数用于过滤小缺口(默认价格的 0.2%)。每个返回的 FVG 都带有 fill_pct,显示该缺口已被后续影线填补的比例。
7. 流动性扫荡(Liquidity Sweeps)。 fomoed.smc.liquidity_sweeps(highs, lows, closes, sweep_depth_pct, reclaim_candles) 检测止损猎杀形态:影线刺破波段低点,然后在指定的 K 线数内重新收复该位置(看多扫荡),或者反向镜像(看空扫荡)。sweep_depth_pct 参数是计入扫荡所需的最小穿透幅度,用于过滤掉擦边的情况。
除了这七个 SMC 原语,AI 还可以调用 fomoed.fib 来做斐波那契回撤的数学计算:fib.retracement(swing_high, swing_low, level) 返回指定斐波那契水平(0.5、0.618、0.705、0.79、0.886)对应的价格,fib.zones 返回所有标准水平的字典,fib.in_zone 返回一个布尔值,表示「价格是否在该斐波那契水平的 X%(相对波段大小)误差范围内」。
用大白话从头到尾跑通一个「CHoCH + 斐波那契」策略
我们来完整走一遍一个真实策略,从提示词到上线运行。策略思路:等待看多 CHoCH 后,在脉冲波段的 0.705 斐波那契回撤位入场抓反转。止盈设在入场价上方下一个波段高点;止损设在 CHoCH 下方被扫的低点。
在「AI 交易智能体」步骤中你可以这样写:
「出现看多 CHoCH 后,等价格回撤到突破波段的 0.705 斐波那契位时开多。止盈设在入场价上方下一个波段高点。止损设在 CHoCH 下方最近的波段低点。仅做多——不做空。」
几秒钟后,向导的审核页面就会展示 AI 的理解:
AI 摘要:SMC 趋势反转策略。等待看多 CHoCH——价格在原本下跌趋势中收盘突破最近的低点高位,预示反转。然后等待价格回撤进入脉冲波段(低点到 CHoCH 高点)的 0.705 斐波那契回撤区,即 OTE 区域。当价格触及该区域时,以你配置的仓位大小开多。止盈设在入场价上方下一个波段高点;止损设在 CHoCH 下方最低的波段低点(反转失败时止损会在此处被扫)。仅做多——不做任何做空机会。
运行机制:
1. 等待看多 CHoCH——价格在原本下跌趋势中收盘突破最近的低点高位(预示反转)。
2. CHoCH 出现后,测量脉冲波段(低点 → CHoCH 高点),并计算 0.705 斐波那契回撤位。
3. 等待价格回撤进入 0.705 斐波那契区域(波段大小 0.5% 误差范围内)。
4. 价格触及该区域时,以你配置的仓位大小开多。
5. 价格触及上方下一个波段高点时止盈;价格跌至最低波段低点(扫荡流动性位)时止损。
你可以立刻看出 AI 是否理解了你的策略。如果哪里不对,就改提示词再重新生成。一旦匹配你的意图,保存后机器人会在下一根 K 线收盘时开始运行。
AI 实际生成的代码(幕后揭秘)
对于上面这个「CHoCH + 斐波那契」策略,AI 会生成一段大约 30 到 40 行的 Python 脚本,在每根 K 线收盘时于沙箱内运行。大致是这样的(为可读性做了精简):
def on_candle(ctx):
if len(ctx.closes) < 100:
return None
# Exit logic if already in a position
if ctx.position is not None:
sw = fomoed.smc.swings(ctx.highs, ctx.lows, lookback=20)
entry = ctx.position.entry_price
price = ctx.closes[-1]
# TP at next swing high above entry
tp = next((s['price'] for s in reversed(sw['highs'])
if s['price'] > entry), None)
# SL at most recent swing low below entry
sl = next((s['price'] for s in reversed(sw['lows'])
if s['price'] < entry), None)
if tp and price >= tp:
return {'action': 'close', 'reason': f'TP swing-high {tp:.2f}'}
if sl and price <= sl:
return {'action': 'close', 'reason': f'SL swing-low {sl:.2f}'}
return None
# Entry logic: bullish CHoCH + fib pullback
choch = fomoed.smc.choch(ctx.highs, ctx.lows, ctx.closes, lookback=20)
bull = [c for c in choch if c['type'] == 'bullish_choch']
if not bull:
return None
last = bull[-1]
idx = last['index']
if idx < 10:
return None
swing_low = float(ctx.lows[max(0, idx - 30):idx].min())
swing_high = float(ctx.highs[idx:].max())
if swing_high <= swing_low:
return None
price = ctx.closes[-1]
if fomoed.fib.in_zone(price, swing_high, swing_low, 0.705,
tolerance_pct=0.5):
return {
'action': 'buy',
'size_usd': ctx.user.position_size_usd,
'reason': f"CHoCH @ {last['broken_level']:.2f}, fib 0.705 pullback",
}
return None普通用户根本看不到这段代码——他们只看到 AI 摘要和「运行机制」步骤。Python 代码存在服务器端供审计,并在沙箱化运行时内执行。把它放在这里展示是为了揭开 AI 实际产出的面纱:短小、聚焦的逻辑,把真正困难的部分(枢轴检测、斐波那契数学、结构追踪)交给辅助库。AI 不会每次生成机器人时都重新发明 SMC 算法——它是在 SMC 预设也使用的同一套实战检验过的实现之上做组合。
为什么自动化 SMC 往往跑赢主观 SMC
一位老练的人类 SMC 交易者和一个搭建良好的 SMC 机器人,看同一张图,通常画出的结构一致。那为什么在数月的时间窗口内,机器人往往跑赢人类?
执行的一致性。机器人每一个 A 级机会都不会放过。人类只能抓住其中大部分。哪怕每周只少抓一个机会,放在一个季度复利下来,收益就会有显著差异。主观交易者还更容易因为「感觉不对劲」却说不清原因而跳过某个机会——有时候这是好的直觉,但平均下来这是亏钱的。
不会被环境干扰。人类会在潜意识里被大盘环境影响——BTC 刚砸盘了,一个机会看起来就更差;手里别的仓位绿了,机会看起来就更好。机器人不在乎。只要规则匹配,它就开仓。
耐得住寂寞。手动交易的 SMC 交易者经常在淡季放宽标准(「这个 B 级机会我做了吧,我都 4 天没交易了」)。机器人不会无聊。如果一周内没有 A 级机会形成,它就空仓一周。正是这种耐心,才让策略长期真正盈利。
全天候盯盘。机会不会专门挑你的交易时段出现。本月 4 小时图上最棒的那个 CHoCH,可能就在你本地凌晨 3 点触发。机器人醒着,你睡着。
代价是,自动化 SMC 缺乏老练人类带来的环境判断能力。如果大盘明显处于牛市格局,主观交易者可能会提高对看空机会的门槛。机器人则不管这些,只按规则来。在自动化系统中应对这一点的办法,是把环境过滤直接写进提示词——比如,「只在日线 BTC 站上 200 日 EMA 时做看多 CHoCH」。只要你能讲清楚环境过滤,AI 就能实现。
风险管理是内建的
人们对 AI 生成的交易机器人常有一个顾虑:「万一 AI 不合理地放大仓位,或者一口气下一堆单怎么办?」Fomoed 的做法是把资金决策和策略决策分离。在写提示词之前,你已经在向导的「资金」步骤设置好了仓位大小、杠杆和交易模式(实盘或模拟)。这些值作为约束告知 AI,而不是它可以修改的变量。
当 AI 生成的脚本返回类似 {'action': 'buy', 'size_usd': 100, ...} 的动作时,沙箱监督器会把请求大小钳制到你向导里设定的值。如果你在资金步骤设了 50 美元,但 AI 想下 200 美元的单,平台会按 50 美元下单并记录这次钳制。实际的 execute_entry 调用使用的是你配置的仓位大小,而不是脚本请求的值。即使 AI 想绕过,你的资金上限它也绕不过。
同样的保护也覆盖止盈和止损。向导里的 TP 和 SL 设置驱动平台标准的出场流程;AI 的「close」动作只是补充。如果你在向导里设了 2% 的止损,只要价格跌了 2%,那个止损就会被触发,与 AI 脚本无关。AI 的角色是为入场增添智能,而不是覆盖你的风控规则。
正是这种分离,让 AI 交易智能体 可以放心地用实盘资金跑。策略逻辑由 AI 生成;风险管理由向导配置、平台强制执行。两者明确解耦。
常见问题
AI 能自动识别 CHoCH 和 BoS 吗?
能。fomoed.smc.choch 和 fomoed.smc.bos 这两个辅助函数使用与专门的 SMC 预设相同的结构追踪逻辑进行算法化检测。AI 不会重新发明检测逻辑——它是基于现有实现做组合。这意味着 AI 生成的机器人与平台内置的 SMC 机器人在检测质量上是一致的。
AI 比人类 SMC 交易者更强吗?
在规则执行上:是的。在环境判断上:暂时还不行。在 SMC 交易的机械部分——正确画结构、识别未消化订单块、计算斐波那契回撤位、抓住每一个合格机会——机器人更稳定一致。但在整合大盘环境上,机器人较弱,除非环境信息被显式地写进提示词。混合模式(让 AI 处理机会识别,你来决定本周要不要让它积极交易)往往比纯自动化或纯主观都更好。
AI 怎么处理斐波那契回撤入场?
fomoed.fib 模块提供回撤数学:给定波段高点和波段低点,可以计算任意斐波那契水平(0.5、0.618、0.705、0.79、0.886)对应的价格。in_zone 辅助函数接受一个容差百分比,返回当前价格是否在该斐波那契水平的容差范围内。AI 生成的机器人通常会等待价格触及某个特定的斐波那契水平(常用 0.705 或 0.79——即 OTE 区域)再入场。多个斐波那契水平可以同时检查;AI 会根据你的描述输出对应的逻辑。
我可以回测 AI 生成的 SMC 策略吗?
可以。模拟交易会用同一份 AI 生成的脚本在实时市场数据上跑模拟执行——不动真金。这是验证新 SMC 策略上线前的推荐做法,尤其因为 SMC 机会对周期相当敏感(1 小时图上有效的策略未必能用在 5 分钟图)。fomoed 的回测沙箱还可以在历史数据上跑策略,实现更快迭代。
那订单块和公允价值缺口呢?
两者分别通过 fomoed.smc.order_blocks 和 fomoed.smc.fvg 暴露。订单块返回带有基于实体边界的未消化区域;一旦价格触及,辅助函数会自动剔除该区域。FVG 返回带 fill_pct 属性的未填补三 K 线缺口,这样 AI 生成的脚本可以判断一个已部分填补的缺口是否仍然有效。两个辅助函数使用与 SMC 预设相同的检测逻辑,因此整个平台行为一致。
我可以把 SMC 和其他策略组合吗?
可以——这正是 AI 交易智能体 相对固定预设的优势所在。一个典型的共振策略可能是「看多 CHoCH + RSI 未超买 + 价格处于未消化看多订单块 + 当前价格上方没有近期看空 FVG」。AI 会把这种共振翻译成正确的调用(fomoed.smc.choch、ctx.indicators.rsi、fomoed.smc.order_blocks、fomoed.smc.fvg),并把它们组合进入场条件。SMC 预设本身做不到这种跨领域的共振组合;AI 交易智能体 就是为此而生。
如果 CHoCH 在斐波那契回撤前就被破坏,机器人怎么处理?
AI 生成的脚本在每根 K 线收盘时都会重新评估入场条件。如果看多 CHoCH 触发了,但价格根本没有回撤到 0.705 斐波那契位——反而一路上冲——机器人就不会入场。如果 CHoCH 被破坏(价格收盘重新跌破被突破的水平),下一次调用 fomoed.smc.choch 时会反映这一情况,机器人不会基于过期信号行动。状态是每个 tick 根据当前市场数据重新计算的,而不是跨 tick 保持的有状态变量。
搭建你的第一个 SMC 机器人
理解 AI 交易智能体 如何处理 SMC 的最快方法,就是注册,在向导中选择 AI 交易智能体 作为策略,然后粘贴一段类似本指南中的提示词。第一个机器人请用模拟交易模式——策略会基于实时市场数据运行,不花真金白银,你可以观察机会在你选定的交易对和周期上到底多久触发一次。
想进一步了解 AI 交易智能体 在 SMC 之外还能做什么,请看我们关于 AI 搭建交易机器人的支柱指南。想对比不同市场行情下该选哪种策略预设,策略对比指南覆盖了完整阵容。


