金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 681|回复: 1

大佬帮看下,变量设置问题,帮纠正,谢谢!

[复制链接]

3

主题

6

帖子

6

积分

Rank: 1

等级: 新手上路

注册:
2024-7-16
曾用名:
发表于 2025-2-28 10:34 | 显示全部楼层 |阅读模式
// 布林带核心参数
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;

回复

使用道具 举报

44

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-2-28 10:38 | 显示全部楼层
// 布林带核心参数
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,CurrentHigh:=0,CurrentLow:=0,PrevBandHigh:=0,PrevBandLow:=0;

// 关键突破信号
UpBreakLower := CROSS(CLOSE,LOWER);  // 上破下轨
DownBreakUpper := CROSS(UPPER,CLOSE);// 下破上轨
temp:=EVERY(CLOSE<UPPER,2);
temp1:=EVERY(CLOSE>LOWER,2);
//▂▂▂▂▂▂▂▂ 波段状态机 ▂▂▂▂▂▂▂▂
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 temp 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 temp1 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;

END

// 空头波段标记
IF TrendState=2 THEN BEGIN
    DRAWTEXT(ISLASTBAR,CurrentHigh,'←空头高点:'+NUMTOSTR(CurrentHigh,2)),COLORBLUE;
    DRAWTEXT(ISLASTBAR,CurrentLow,'←空头低点:'+NUMTOSTR(CurrentLow,2)),COLORMAGENTA;

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;
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 微信登录

本版积分规则

手机版|小黑屋|上海金之塔信息技术有限公司 ( 沪ICP备13035422号 )

GMT+8, 2025-7-16 19:32 , Processed in 0.106306 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表