// 参数定义
N2:=14;
N1:=20;
N:=N1;
// 震荡区间周期
BREAKOUTFILTER:=0.01;
// 突破过滤系数
USEATRFILTER:=1;
// 是否使用ATR过滤
ATRPERIOD:=N2;
// ATR周期
// 计算ATR用于过滤
TR := MAX(MAX((HIGH - LOW), ABS(REF(CLOSE, 1) - HIGH)), ABS(REF(CLOSE, 1) - LOW));
ATRVALUE := MA(TR, ATRPERIOD);
// 1. 定义震荡区间
UPPERBAND := REF(HHV(HIGH, N), 1); // 震荡上轨
LOWERBAND := REF(LLV(LOW, N), 1); // 震荡下轨
// 2. 计算突破过滤条件
FILTERAMOUNT := IFELSE(USEATRFILTER, ATRVALUE *0.8, (UPPERBAND - LOWERBAND) * BREAKOUTFILTER);
// 3. 识别有效突破
//EFFECTIVEUPBREAK := CLOSE > =UPPERBAND + FILTERAMOUNT; // 有效上破
EFFECTIVEUPBREAK := CLOSE > =UPPERBAND; // 有效上破
//EFFECTIVEDNBREAK := CLOSE < =LOWERBAND - FILTERAMOUNT; // 有效下破
EFFECTIVEDNBREAK:= CLOSE < =LOWERBAND; // 有效下破
// 4. 标记突破K线
UPBREAKSIGNAL := EFFECTIVEUPBREAK AND NOT(REF(EFFECTIVEUPBREAK, 1));
DNBREAKSIGNAL := EFFECTIVEDNBREAK AND NOT(REF(EFFECTIVEDNBREAK, 1));
// 5. 定义回调条件
// 回调至原上轨(现支撑)附近
PULLBACKTOSUPPORT := LOW <= UPPERBAND * 1.005 AND LOW >= UPPERBAND * 0.995; // 回调至原下轨(现阻力)附近
PULLBACKTORESISTANCE := HIGH >= LOWERBAND * 0.995 AND HIGH <= LOWERBAND * 1.005;
// 6. 简化价格行为信号(可根据需要扩展更多形态)
BULLISHSIGNAL := CLOSE > OPEN AND CLOSE > (HIGH + LOW) / 2; // 阳线且收盘在中价以上
BEARISHSIGNAL := CLOSE < OPEN AND CLOSE < (HIGH + LOW) / 2; // 阴线且收盘在中价以下
// 7. 组合回调确认信号
// 多头入场信号:有效上破后,回调至支撑且出现看涨信号
LONGSIGNAL := REF(UPBREAKSIGNAL, 1) AND PULLBACKTOSUPPORT AND BULLISHSIGNAL;
// 空头入场信号:有效下破后,回调至阻力且出现看跌信号
SHORTSIGNAL := REF(DNBREAKSIGNAL, 1) AND PULLBACKTORESISTANCE AND BEARISHSIGNAL;
// 8. 在图表上绘制震荡区间
IF(BARSLAST(CROSS(C,UPPERBAND))>BARSLAST(CROSSDOWN(C,LOWERBAND)) , UPPERBAND,NULL), COLORGREEN, LINETHICK2,NOTEXT;
IF(BARSLAST(CROSS(C,UPPERBAND))<BARSLAST(CROSSDOWN(C,LOWERBAND)) , LOWERBAND,NULL),COLORRED, LINETHICK2,NOTEXT;
// 9. 标记突破信号
//DRAWICON(UPBREAKSIGNAL, LOW * 0.995, 4); // 向上箭头标记上破
//DRAWICON(DNBREAKSIGNAL, HIGH * 1.005, 5); // 向下箭头标记下破
// 10. 标记入场信号
//DRAWICON(LONGSIGNAL, LOW * 0.99, 'ICO8'); // 笑脸标记多头入场
//DRAWICON(SHORTSIGNAL, HIGH * 1.01, 'ICO9'); // 哭脸标记空头入场
// 11. 添加信号文字标注
DRAWTEXT(UPBREAKSIGNAL, LOW , '上破'),VALIGN0, COLORRED;
DRAWTEXT(DNBREAKSIGNAL, HIGH , '下破'), COLORGREEN;