
等级: 新手上路
- 注册:
- 2024-7-16
- 曾用名:
|
// 布林带核心参数
INPUT:M1(26,5,100), N1(1,0.5,3);
MID:MA(CLOSE,M1);
UPPER:MID + N1*STD(CLOSE,M1);
LOWER:MID - N1*STD(CLOSE,M1);
// 系统状态变量
VARIABLE:
TrendState(0), // 0-震荡 1-多头 2-空头
CurrentHigh(0),
CurrentLow(0),
PrevBandHigh(0),
PrevBandLow(0);
// 关键突破信号
UpBreakLower := CROSS(CLOSE,LOWER); // 上破下轨
DownBreakUpper := CROSS(UPPER,CLOSE);// 下破上轨
//▂▂▂▂▂▂▂▂ 波段状态机 ▂▂▂▂▂▂▂▂
IF TrendState=0 THEN BEGIN // 震荡状态
IF UpBreakLower THEN BEGIN
TrendState := 1; // 进入多头波段
CurrentHigh := HIGH;
CurrentLow := LOW;
END
ELSE IF DownBreakUpper THEN BEGIN
TrendState := 2; // 进入空头波段
CurrentHigh := HIGH;
CurrentLow := LOW;
END
END
ELSE IF TrendState=1 THEN BEGIN // 多头波段
// 更新波段极值
CurrentHigh := MAX(HIGH,CurrentHigh);
CurrentLow := MIN(LOW,CurrentLow);
// 结束条件:收盘价连续2日低于UPPER
IF EVERY(CLOSE<UPPER,2) THEN BEGIN
TrendState := 0; // 返回震荡
PrevBandHigh := CurrentHigh;
PrevBandLow := CurrentLow;
// 绘制完整波段
DRAWLINE(LOW<=LOWER,HIGH,CLOSE<UPPER,CurrentHigh,0),COLORRED;
END
END
ELSE IF TrendState=2 THEN BEGIN // 空头波段
// 更新波段极值
CurrentHigh := MAX(HIGH,CurrentHigh);
CurrentLow := MIN(LOW,CurrentLow);
// 结束条件:收盘价连续2日高于LOWER
IF EVERY(CLOSE>LOWER,2) THEN BEGIN
TrendState := 0; // 返回震荡
PrevBandHigh := CurrentHigh;
PrevBandLow := CurrentLow;
// 绘制完整波段
DRAWLINE(HIGH>=UPPER,LOW,CLOSE>LOWER,CurrentLow,0),COLORGREEN;
END
END;
//▂▂▂▂▂▂▂▂ 可视化标记 ▂▂▂▂▂▂▂▂
// 多头波段标记
IF TrendState=1 THEN BEGIN
DRAWTEXT(ISLASTBAR,CurrentHigh,'←多头高点:'+NUMTOSTR(CurrentHigh,2)),COLORRED;
DRAWTEXT(ISLASTBAR,CurrentLow,'←多头低点:'+NUMTOSTR(CurrentLow,2)),COLORCYAN;
// 实时价格带
FILLRGN(CLOSE>MID,MID,UPPER),COLOR(255,100,100,80);
END
// 空头波段标记
IF TrendState=2 THEN BEGIN
DRAWTEXT(ISLASTBAR,CurrentHigh,'←空头高点:'+NUMTOSTR(CurrentHigh,2)),COLORBLUE;
DRAWTEXT(ISLASTBAR,CurrentLow,'←空头低点:'+NUMTOSTR(CurrentLow,2)),COLORMAGENTA;
// 实时价格带
FILLRGN(CLOSE<MID,MID,LOWER),COLOR(100,255,100,80);
END
// 历史波段标记
DRAWNUMBER(TrendState=0 AND PrevBandHigh>0,PrevBandHigh,PrevBandHigh,2),COLORRED;
DRAWNUMBER(TrendState=0 AND PrevBandLow>0,PrevBandLow,PrevBandLow,2),COLORGREEN;
// 绘制轨道线
UPPER,COLORLIBLUE,LINETHICK2;
LOWER,COLORBROWN,LINETHICK2;
MID,COLORWHITE,LINETHICK1;
|
|