{=========================================}
{ 威科夫选股:近3日出现SOS(强势信号)突破 }
{=========================================}
{1. 定义区间上沿 (小溪/派发下沿)}
N:=120;
TR_HIGH:=REF(HHV(MAX(C,O), N), 1);
{2. 定义量能基准:成交量大于20日均量2倍}
VOL_SPIKE := V > MA(V, 20) * 2;
{3. 定义SOS(强势信号)单日起爆条件}
{逻辑:放量大阳线强势突破120日区间上沿,收盘大于开盘,且阳线实体占整根K线长度的60%以上}
SOS_COND := CROSS(C, TR_HIGH) AND VOL_SPIKE AND C > O AND (C-O)/(H-L) > 0.6;
{4. 选股输出:近3个交易日内(包含今天)满足过SOS_COND条件}
XG: EXIST(SOS_COND, 3);
{=========================================}
{ 威科夫量价结构大师版主图 (Wyckoff Master) }
{=========================================}
{第一步:基础结构与均线 (MA50 & MA200)}
MA50:MA(C,50), COLORBLUE, DOTLINE;
MA200:MA(C,200), COLORRED, DOTLINE;
{第二步:模拟威科夫背景与交易区间 (Trading Range)}
{设定一个周期(如120天)寻找价值密集区,剔除极端上下影线,模拟 Phase B 的横向蓄力区}
N:=120;
TR_HIGH:=REF(HHV(MAX(C,O), N), 1); {区间上沿:近期实体最高点,即威科夫的“供给线/小溪”}
TR_LOW:=REF(LLV(MIN(C,O), N), 1); {区间下沿:近期实体最低点,即威科夫的“需求线/冰层”}
{在最新K线处向左绘制水平线,标示当前的震荡区间上下沿}
STICKLINE(ISLASTBAR, TR_HIGH, TR_HIGH, 120, -1), COLORLIGREEN;
STICKLINE(ISLASTBAR, TR_LOW, TR_LOW, 120, -1), COLORLIRED;
DRAWTEXT(ISLASTBAR, TR_HIGH, ' 供给线(小溪/派发下沿)'), COLORLIGREEN;
DRAWTEXT(ISLASTBAR, TR_LOW, ' 需求线(冰层/吸筹上沿)'), COLORLIRED;
{第三步:威科夫关键行为与事件的量化提取}
{1. 量能基准:定义什么叫“带量”和“缩量”}
VOL_SPIKE := V > MA(V, 20) * 2; {放量:超过20日均量2倍}
VOL_DRY := V < MA(V, 20) * 0.8; {缩量:低于20日均量80%}
{2. SC (Selling Climax) 恐慌抛售 (Phase A)}
{逻辑:长期均线之下,振幅扩大,放出巨量,且带有明显的长下影线,说明主力在此承接}
DOWN_TREND := C < MA50 AND C < MA200;
LOWER_SHADOW := (MIN(C,O) - L) / (H - L) > 0.4; {下影线占K线长度40%以上}
SC_COND := DOWN_TREND AND VOL_SPIKE AND LOWER_SHADOW AND (H-L)/REF(C,1) > 0.04;
{3. ST (Secondary Test) 二次测试 (Phase B)}
{逻辑:在SC发生后的30天内,价格再次回到SC低点附近,但成交量明显萎缩,说明抛压枯竭}
SC_DAYS := BARSLAST(SC_COND);
ST_COND := SC_DAYS > 0 AND SC_DAYS < 30 AND L <= REF(L, SC_DAYS)*1.03 AND V < REF(V, SC_DAYS)*0.6 AND C > L;
{4. Spring (弹簧效应) / 终极洗盘 (Phase C)}
{逻辑:跌破前面的区间下沿(冰层),然后迅速收回区间内,通常伴随长下影或次日放量阳线}
BREAK_DOWN := L < TR_LOW;
RECOVER := C > TR_LOW AND C > O;
SPRING_COND := BREAK_DOWN AND RECOVER AND (VOL_SPIKE OR (MIN(C,O)-L) > (C-O));
{5. LPS (Last Point of Support) 最后支撑 (Phase C/D)}
{逻辑:价格回踩均线或支撑位不破前低,且成交量萎缩,这是跳过小溪前的垫步}
LPS_COND := C > MA50 AND L > REF(L, BARSLAST(SPRING_COND)) AND VOL_DRY AND C > O;
{6. SOS (Sign of Strength) 强势信号 (Phase D)}
{逻辑:带量大阳线强势突破区间上沿(小溪),实体饱满,表明需求压倒供应}
SOS_COND := CROSS(C, TR_HIGH) AND VOL_SPIKE AND C > O AND (C-O)/(H-L) > 0.6;
{7. UTAD (Upthrust After Distribution) 派发区上冲回落}
{逻辑:价格突破区间上沿创新高,但收盘跌回区间内,收阴线且放量,典型的主力诱多派发}
BREAK_UP := H > TR_HIGH;
FALL_BACK := C < TR_HIGH AND C < O;
UTAD_COND := BREAK_UP AND FALL_BACK AND VOL_SPIKE AND C < MA50;
{第四步:主图元素绘制与智能动态标注}
DRAWKLINE(H,O,L,C); {重绘K线确保在图层最上方}
{利用DRAWTEXT进行阶段与理由的智能标注,位置自动避开K线实体}
DRAWTEXT(SC_COND, L*0.98, 'SC:恐慌抛售\n(抛压释放,进Phase A)'), COLORGREEN;
DRAWTEXT(ST_COND, L*0.96, 'ST:二次测试\n(供应减弱,步入Phase B)'), COLORYELLOW;
DRAWTEXT(SPRING_COND, L*0.95, 'Spring:弹簧\n(跌破前低收回,Phase C洗盘)'), COLORMAGENTA;
DRAWTEXT(LPS_COND, L*0.98, 'LPS:最后支撑\n(回踩缩量,抛压枯竭)'), COLORCYAN;
DRAWTEXT(SOS_COND, H*1.02, 'SOS:强势信号\n(跃过小溪,主力吃挂单)'), COLORRED;
DRAWTEXT(UTAD_COND, H*1.04, 'UTAD:上冲回落\n(假突破派发,诱多结束)'), COLORGREEN;