123法则 2B法则 N字结构 量化思路
所属分类 quant
浏览量 27
123法则、2B法则 和 N字结构是趋势交易和价格行为中的经典概念。
将它们量化,就是从主观的形态识别转变为客观的、可回溯测试的交易系统规则。
将123法则、2B法则和N字结构量化的过程,
本质上是将模糊的“形态”翻译成精确的“如果...那么...”的计算机指令。
成功的量化不仅在于识别形态本身,
更在于结合趋势背景、市场位置和严格的资金管理,
形成一个完整的、可证伪的交易系统。
核心思想:从形态描述到定量规则
量化这些法则的关键在于:
明确触发条件:用具体的价格和K线关系来定义形态的每个部分。
过滤市场噪音:使用收盘价、突破幅度、时间周期等来避免假信号。
定义入场、止损和出场点:形成完整的交易逻辑。
1. 123法则(趋势反转法则)
理论描述:
趋势线被突破(原上升趋势线被跌破,或原下降趋势线被升破)。
上升趋势中,价格不再创新高;下降趋势中,价格不再创新低。
上升趋势中,价格跌破前一个回调低点;
下降趋势中,价格升破前一个反弹高点。
当这三个条件都满足时,意味着趋势可能发生反转。
量化方案(以下跌趋势反转为例):
步骤1:定义趋势:
使用至少N根K线(如20根) 来定义一段下跌趋势。
可以要求价格在一条下降的移动平均线(如20EMA)之下,或使用波段高点/低点来确认。
步骤2:识别突破(条件1):
找到最近一条连接至少两个波段高点的下降趋势线。
量化条件:
当前K线的收盘价 > 下降趋势线价格。
为过滤噪音,可要求突破幅度超过X%(如0.5%)或 Y倍ATR(如0.5倍ATR)
步骤3:测试失败(条件2):
价格反弹后再次回落,但未能创出新低。
量化条件:本次回落的低点 > 前期下跌波段的最低点。
步骤4:确认反转(条件3):
价格再次上涨,并突破了最近的一个反弹高点。
量化条件:
当前K线的收盘价 > 最近一个波段反弹高点(即条件2中那次反弹的起点)。
交易触发:
当条件3被触发时,视为123法则完成,发出买入信号。
止损设置:
设置在步骤3中形成的低点的下方。
目标设定:
可以基于形态高度、前期支撑阻力位,或使用风险报酬比(如1:2)
2. 2B法则(假突破反转法则)
理论描述:
在上升趋势中,价格突破前期高点后未能延续,迅速跌回前期高点之下,
意味着趋势可能衰竭,是反转做空信号。下降趋势反之。
量化方案(以顶部2B为例):
步骤1:定义前期高点:
找到最近一个显著的波段高点 H1
步骤2:定义突破:
价格向上突破了 H1,创出新高 H2
量化条件:
收盘价 > H1。可要求突破幅度(例如,超过H1的0.2%)
步骤3:定义失败与反转:
价格在创出 H2 后,在M根K线内(如3-5根) 跌回至 H1 之下。
量化条件:
收盘价 < H1,并且从 H2 到当前收盘价的下跌速度/幅度较大(例如,超过1倍ATR)
交易触发:
当步骤3的条件满足时,发出做空信号。
止损设置:
设置在 H2 的上方一个缓冲位置。
关键量化要点:
突破的幅度:越小越好,表明动能不足。
反转的速度:越快越有效,表明突破是假象。
成交量:可加入量化,突破时缩量,反转时放量是理想信号。
3. N字结构(趋势延续法则)
理论描述:
价格沿趋势方向运行一波(a),
然后进行逆向调整(b),最后再次沿原趋势方向运行(c),
形成类似“N”或“倒N”的形态。
是顺势入场的机会。
量化方案(以上涨N字为例):
定义背景:
市场处于上升趋势中
例如,价格在20EMA之上,且EMA多头排列)
步骤1:
识别a浪(驱动浪):
价格从启动点 S0 上涨至波段高点 H
量化:这一波上涨幅度应显著,例如 > 2倍ATR
步骤2:识别b浪(调整浪):
价格从 H 回调至低点 L
量化:
回调幅度通常在a浪的38.2%-61.8%(斐波那契回撤)之间,
但不应跌破关键支撑(如前低或重要均线)。
可以量化回调比例:(H - L) / (H - S0) 在0.382到0.786之间。
步骤3:等待c浪启动信号(入场点):
价格在 L 处获得支撑后,再次向上启动。
量化入场方式:
突破入场:当价格收盘价突破b浪回调中最近一个小波段高点时入场。
形态入场:在 L 附近出现看涨K线组合(如看涨吞没、锤子线)时入场。
止损设置:
设置在 L 的下方。
目标设定:
初始目标:a浪的1倍高度,即 目标价 = L + (H - S0)
也可以使用动态止盈(如移动止损)
量化整合与系统构建
要建立一个可交易的量化系统,需要:
选择时间框架:确定在哪个周期(如1小时、日线)上识别这些形态。
精确定义所有变量:
如何定义“波段高点/低点”
例如,Donchian Channel, 或左侧/右侧有N根K线最高/最低
突破的幅度阈值(固定百分比或ATR倍数)
回调的时间限制(例如,2B法则中突破后的K线根数)
编写识别算法:
使用程序(
如Python的TA-Lib、Pine Script in TradingView
扫描历史数据,自动识别符合量化条件的形态。
加入过滤条件:
趋势过滤器:
只在更大趋势方向上进行操作
例如,日线趋势向上,只做多123法则和上涨N字
波动率过滤器:
在低波动市场(ATR值低)中,形态可靠性可能下降
位置过滤器:
形态出现在关键支撑阻力位附近时,成功率更高。
历史回测:
用大量历史数据测试量化规则的盈亏比、胜率和夏普比率。
优化参数(如突破幅度、回调比例),但要避免过度拟合。
风险管理:
根据止损空间和总资金,确定每笔交易的仓位。
123法则 和 2b法则
https://gitee.com/dyyx/work2024/blob/master/myquant/images/123_2b_rule.png
上一篇
下一篇
QLib核心概念和术语
量化python库
Flask request 对象用法
N字价格运动与结构
基于深度学习和计算机视觉的K线图交易信号识别
Python f-string 格式化字符串字面量