结构突破 BOS 与性质转变 ChoCH:Smart Money Concepts 趋势识别信号引擎实战指南 金融科技示例工程【免费下载链接】ai_quant_tradeStock AI Trader: 1-stop platform for learning, sim live trading. Covers: stock basics, strategies, LLMs, factor mining, ML/DL/RL, graph nets, HFT, C deploy JoinQuant code. 股票AI操盘手一站式学习、模拟、实盘平台。涵盖股票基础、策略、大模型、因子挖掘、机器学习/深度学习/强化学习、图网络、高频交易、C部署及聚宽代码。项目地址https://gitcode.com/gh_mirrors/ai/ai_quant_trade点击查看免费下载导读本文围绕 AI 量化交易仓库ai_quant_trade中 Smart Money ConceptsSMC / ICT 机构交易学派技能包的核心概念——结构突破BOS与性质转变ChoCH——展开结合 smc/SKILL.md 的引擎设计与 example_signal_engine.py 的源码实现讲解如何用 BOS 确认趋势延续、用 ChoCH 捕捉趋势反转并以 FVG公允价值缺口过滤假信号最终构建可运行的做多 / 做空 / 观望三态信号引擎。读完本文你将掌握 SMC 结构分析的完整概念体系、信号权重逻辑以及基于smartmoneyconcepts库落地多标的信号引擎的具体方法。一、SMC 的核心思想追踪机构资金的足迹Smart Money ConceptsICT即 Inner Circle Trader 机构交易学派的核心逻辑是追踪聪明钱机构资金在 K 线上的行为痕迹。机构大额订单无法一次性成交必然在价格图表上留下可识别的结构特征。在 smc/SKILL.md 中这套体系被归纳为五个关键概念概念英文含义结构突破BOSBreak of Structure趋势延续信号性质转变ChoCHChange of Character趋势反转信号公允价值缺口FVGFair Value Gap价格回补目标订单块Order Blocks机构订单集中区流动性Liquidity止损猎取目标区本文的结构突破.md聚焦前两个概念BOS 与 ChoCH并说明它们与 FVG 过滤如何组合成信号订单块的详细定义见同目录下的订单块与缺口.md。二、BOSBreak of Structure结构突破确认趋势延续结构突破是市场趋势延续的信号其判定基于 swing 高点与 swing 低点结构点的突破看涨 BOS价格突破前一个 swing 高点确认上涨趋势延续。这意味着买盘力量延续前一个上涨结构被确认有效价格大概率继续向上。看跌 BOS价格跌破前一个 swing 低点确认下跌趋势延续。这意味着卖盘力量延续前一个下跌结构被确认有效价格大概率继续向下。BOS 表明当前趋势方向仍然有效机构资金仍在同一方向运作。它不是反转信号而是趋势没坏、可以继续顺势的确认。在实战中BOS 常被用来在趋势中加仓或作为顺势交易的入场确认而非抄底摸顶的依据。三、ChoCHChange of Character性质转变预警趋势反转性质转变是趋势可能反转的信号其判定同样基于 swing 结构点的突破但方向与当前趋势相反看涨 ChoCH在下跌趋势中价格突破前一个 swing 高点。下跌趋势中出现向上的结构突破说明卖压衰竭、买盘开始接管行情性质可能由空转多。看跌 ChoCH在上涨趋势中价格跌破前一个 swing 低点。上涨趋势中出现向下的结构突破说明买盘衰竭、卖盘开始接管行情性质可能由多转空。ChoCH 是比 BOS 更强的信号因为它表示市场结构发生了根本性变化——不是趋势的延续而是趋势可能反转。SMC 交易者通常把 ChoCH 视为方向盘改变的第一确认后续再结合价格行为、订单块回测等进一步确认反转成立。四、信号权重ChoCH 定方向BOS 做确认FVG 做过滤在本项目的信号引擎中三种信号的权重与分工非常明确见结构突破.mdChoCH 信号权重最高它是趋势反转的方向触发器直接决定当前偏向做多还是做空BOS 信号用于确认作为趋势延续信号补充和确认 ChoCH 给出的方向让信号在无反转迹象时也能顺势推进两者结合 FVG 过滤减少假信号FVG公允价值缺口代表买卖力量的极度不平衡作为过滤器使用时要求结构信号与 FVG 方向一致从而滤掉缺乏力量支撑的突破。这一逻辑在 example_signal_engine.py 的信号约定中表述为Long看涨 ChoCH/BOS 存在看涨 FVGShort看跌 ChoCH/BOS 存在看跌 FVGStand aside没有结构信号或方向互相冲突。五、信号引擎源码解析从 swing 检测到三态信号example_signal_engine.py 给出了完整的可运行实现其核心是SignalEngine类。整个信号生成流程分为三个步骤分别对应smartmoneyconcepts库的三个底层函数# 1) Swing 高低点检测 swing_hl smc.swing_highs_lows(ohlc, swing_lengthself.swing_length) # 2) BOS / ChoCH 结构突破检测 bos_choch smc.bos_choch( ohlc, swing_highs_lowsswing_hl, close_breakself.close_break ) # 3) FVG 公允价值缺口检测 fvg smc.fvg(ohlc)5.1 第一步Swing 高低点检测smc.swing_highs_lows(ohlc, swing_length)以swing_length为窗口识别局部 swing 高点和 swing 低点——这些结构点就是判定 BOS / ChoCH 的前一个高点 / 前一个低点来源。窗口越大检测出的结构点越少但越可靠窗口越小结构点越多、信号越频繁。5.2 第二步BOS / ChoCH 检测smc.bos_choch(ohlc, swing_highs_lows, close_break)基于 swing 结构点计算结构突破BOS列1 为看涨结构突破-1 为看跌结构突破CHOCH列1 为看涨性质转变-1 为看跌性质转变。close_break参数决定判定方式为True时要求收盘价突破结构点才算有效更严格、假信号更少为False时盘中价格突破即算有效更灵敏、但更易被插针骗线。5.3 第三步FVG 检测与信号合成smc.fvg(ohlc)返回 FVG 列1 为看涨缺口第三根 K 线低点 第一根 K 线高点-1 为看跌缺口第三根 K 线高点 第一根 K 线低点。随后在_compute_signal中完成信号合成# 结构信号ChoCH 优先BOS 补充 structure choch_val.where(choch_val ! 0, bos_val) # FVG 过滤只在 FVG 同向或中性时出信号 buy (structure 1) (fvg_val 0) sell (structure -1) (fvg_val 0) raw_signal buy.astype(int) - sell.astype(int)这里的关键实现细节是ChoCH 优先choch_val.where(choch_val ! 0, bos_val)表示有 ChoCH 的位置用 ChoCH 方向没有 ChoCH 的位置才用 BOS 方向与ChoCH 权重最高的设计一致FVG 同向过滤做多要求结构为 1 且 FVG 不为 -1fvg_val 0做空要求结构为 -1 且 FVG 不为 1fvg_val 0即 FVG 反向时直接放弃信号三态输出最终信号 Series 中1 做多-1 做空0 观望见 smc/SKILL.md 的信号约定。5.4 数据校验与异常保护SignalEngine.generate对每个标的执行了防御性处理要求 K 线数量不少于swing_length * 2否则跳过该标的并保留全 0 信号单个标的计算抛异常时不会中断整个数据地图的遍历源码 example_signal_engine.py。这意味着该引擎可以直接用于批量多标的扫描场景。六、引擎参数速查SignalEngine的参数定义与默认值如下与 smc/SKILL.md 的参数表一致参数默认值说明swing_length10Swing 高低点检测窗口值越大检测到的结构越少但越可靠close_breakTrueBOS/ChoCH 是否要求收盘价突破确认使用示例源码 Docstring 中的用法 engine SignalEngine(swing_length50) signals engine.generate({BTC-USDT: df}) print(signals[BTC-USDT].value_counts())调大swing_length会减少结构点数量适合过滤震荡市噪音、只捕捉大级别结构变化在短周期或小级别交易中可适当调小。七、环境依赖与端到端运行7.1 安装依赖该技能包基于smartmoneyconcepts库实现见 smc/SKILL.md 的 Dependencies 一节pip install smartmoneyconcepts pandas numpy requests7.2 数据来源OKX 公共行情接口example_signal_engine.py中的_fetch_okx函数从 OKX 公共 API 拉取日线 K 线resp requests.get( https://www.okx.com/api/v5/market/candles, params{instId: inst_id, bar: bar, limit: str(limit)}, )返回的 DataFrame 被标准化为包含open/high/low/close/volume列、以datetime为索引的格式这也是smc.swing_highs_lows/smc.bos_choch/smc.fvg所要求的输入结构。注意该函数返回的 K 线为reversed(candles)时间正序排列。7.3 直接运行端到端测试以脚本方式运行即可完成一次多标的BTC-USDT、ETH-USDT、SOL-USDT的端到端信号统计python example_signal_engine.py脚本会依次输出每个标的拉取到的 K 线数量、做多信号个数、做空信号个数、最近一次做多/做空的日期源码 example_signal_engine.py。另外脚本在 Windows 上会强制设置 UTF-8 输出编码因为smartmoneyconcepts导入时会打印 emoji避免中文环境控制台乱码。八、使用前提与限制本引擎的信号建立在结构点 收盘价突破之上属于事后确认型信号BOS/ChoCH 确认时价格已越过前高/前低天然存在一定的滞后性实际入场需要配合价格行为如订单块回测、流动性猎取进一步择时close_breakTrue时信号更少但更可靠close_breakFalse时更灵敏但插针行情下假信号增多需结合品种波动特性选择引擎本身只输出信号方向1 / -1 / 0不包含仓位管理、止损止盈与风控落地到实盘前需在其上层叠加资金管理和风险控制模块FVG 过滤的保守实现反向 FVG 直接放弃信号会降低交易频率属于少做、做对型设计高频场景下可按需放宽。九、相关资源导航概念文档结构突破.mdBOS / ChoCH 定义与信号权重、订单块与缺口.mdFVG 与订单块定义引擎说明与参数smc/SKILL.md可运行实现example_signal_engine.py同体系其他技能包同目录下的vibe_trading_skills还包含 ichimoku、okx-market、tushare 等交易分析技能可在仓库中按需参考。赞分享金融科技示例工程【免费下载链接】ai_quant_tradeStock AI Trader: 1-stop platform for learning, sim live trading. Covers: stock basics, strategies, LLMs, factor mining, ML/DL/RL, graph nets, HFT, C deploy JoinQuant code. 股票AI操盘手一站式学习、模拟、实盘平台。涵盖股票基础、策略、大模型、因子挖掘、机器学习/深度学习/强化学习、图网络、高频交易、C部署及聚宽代码。项目地址https://gitcode.com/gh_mirrors/ai/ai_quant_trade点击查看免费下载相关推荐ai_quant_trade 艾略特波浪理论信号引擎实战指南基于 Zigzag 与 Fibonacci 的 5-3 浪结构识别ai_quant_trade 艾略特波浪理论信号引擎实战指南基于 Zigzag 与 Fibonacci 的 5 3 浪结构识别 导读 本文围绕 ai_quan金融科技示例工程ESLint规则趋势分析识别团队代码质量的变化趋势ESLint规则趋势分析识别团队代码质量的变化趋势 引言为什么需要关注ESLint规则趋势 在当今快节奏的软件开发环境中代码质量监控已成为团队成功的关键开发工具Lint静态分析代码质量缠论一买一卖实战指南背驰识别、czsc 信号函数与缠论信号引擎落地缠论一买一卖实战指南背驰识别、czsc 信号函数与缠论信号引擎落地 导读 本文基于本仓库缠论chanlunSkill 包中的 一买一卖信号文档 http金融科技示例工程上一篇River完整配置指南从基础键绑定到高级定制下一篇解决MetaMask登录难题login-with-metamask常见问题与解决方案创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考