在SMC(Smart Money Concepts,智慧资金理念)交易中,为了过滤掉市场波动剧烈(如受突发新闻或极端行情影响)时产生的“无效”或“高风险”Order Block(订单块 / OB),结合ATR(Average True Range,真实波幅均值)进行过滤是一种非常严谨的量化思路。
以下是具体的设计思路与实施步骤:
一、 核心逻辑:为什么要过滤“高波动OB”?
在SMC理论中,最优质的OB通常伴随着“蓄势(盘整)- 爆发(强势突破/大阳/大阴)”的结构。 [1]
- 低波动/正常波动OB:代表机构正在有序进场、吃掉流动性并建立头寸。
- 高波动/极端波动OB:通常出现在经济数据公布(如CPI、非农)时。这种K线实体极大、影线极长,代表多空双方失去平衡,机构的真实成本区间很难界定,后续作为支撑阻力的成功率较低,容易被击穿(诱多或诱空)。
二、 ATR 过滤 OB 的设计维度
我们可以从以下三个核心维度来设计ATR过滤器:
1. 实体大小过滤(剔除过度扩张的K线)
思路:正常的OB起源于强势突破,但过大的烛体代表波动率过载。
- 算法设计:计算当前OB起源K线(Trigger Candle)的实体高度,并与当下的ATR(如取14周期)进行对比。
- 规则:如果
K线实体高度 > N 倍的 ATR(例如 N=2.5 或 3),则判定该OB过于剧烈、波动异常,直接废弃。 [1]
2. 动态止损与防线设置(过滤盈亏比过差的OB)
3. 区间震荡过滤(剔除无趋势的随机波动)
思路:OB必须依赖于整体的市场结构趋势(如 pro-trend)。为了避免震荡市中ATR放大导致的假信号,需将ATR与市场方向结合。 [1]
- 规则:只有当当前价格行为处于顺势趋势中(结合EMA200等),且OB前期的回调波动在合理ATR范围内时,才进行交易。 [1]
三、 完整的量化交易工作流 (以做多/Bullish OB为例)
我们可以把ATR过滤器整合为这套SMC执行流程:
四、 代码/策略伪代码框架
如果您正在使用 TradingView (Pine Script) 或其他量化软件进行开发,逻辑大致如下:
text
// 计算ATR和OB
atr_val = ta.atr(14)
ob_candle_size = high - low // 或者用 close - open 测算实体
// 定义过度波动率阈值
volatility_threshold = atr_val * 2.5
// 如果当前OB的K线大小超过了阈值,或者震幅太大,则过滤掉
if ob_candle_size > volatility_threshold
valid_ob = false
else
valid_ob = true
// SMC 结构事件匹配...
if structure_broken == bullish and valid_ob
// 标记为高概率可交易OB
draw_ob_zone()
Use code with caution.
五、 进阶补充:结合成交量(Volume)过滤
- 极端高ATR的K线,如果伴随着异常缩量,代表这是市场恐慌或流动性枯竭导致的虚假波动,绝对过滤。
- 极端高ATR的K线,如果伴随着巨量爆发,说明机构资金强势介入,这时的OB尽管ATR很大,但在回踩时由于机构未完全出局,依然具备防守价值。 [1]
为了让你更直观地理解如何挑选这些高胜率的结构,以下视频详细讲解了如何通过区分强势与弱势订单块来排除不良交易:
对于如何有效区分高胜率订单块与容易失败的‘陷阱’订单块:
No comments:
Post a Comment