金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 309|回复: 9

怎么回事?

[复制链接]

11

主题

76

帖子

76

积分

等级: 免费版

注册:
2021-11-9
曾用名:
发表于 2025-7-25 13:50 | 显示全部楼层 |阅读模式
PatternFound := 0;  
在编译公式时出现:“该语句缺少分号“的提示,这是怎么回事?怎么解决?
回复

使用道具 举报

44

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-7-25 13:51 | 显示全部楼层
就是哪里缺少分号了
建议自己检查下
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

11

主题

76

帖子

76

积分

等级: 免费版

注册:
2021-11-9
曾用名:
 楼主| 发表于 2025-7-25 14:01 | 显示全部楼层
箭头指向:PatternFound := 0;这句,意思就是这条缺少分号,可它不缺呀
回复

使用道具 举报

44

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-7-25 14:04 | 显示全部楼层
这一个是没问题
他这个提示可能不准可能是上下其他地方

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号? 微信登录

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

使用道具 举报

11

主题

76

帖子

76

积分

等级: 免费版

注册:
2021-11-9
曾用名:
 楼主| 发表于 2025-7-25 14:14 | 显示全部楼层
确实是指向该条语句,因此编译不能通过,会不会是公式编辑器出现问题了?
回复

使用道具 举报

44

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-7-25 14:16 | 显示全部楼层
就是其他地方,你直接整个代码忒下,工作人员来检查下了
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

11

主题

76

帖子

76

积分

等级: 免费版

注册:
2021-11-9
曾用名:
 楼主| 发表于 2025-7-25 14:17 | 显示全部楼层
// CCI五波震荡下跌选股公式(创新算法版)
INPUT:
    N(14, 5, 30),          // CCI计算周期
    MinWaveLen(1, 1, 3),   // 最小波段长度
    MaxWaveLen(5, 3, 10),  // 最大波段长度
    Sens(0.8, 0.5, 1.0);   // 反弹敏感度

// 计算CCI(优化版)
TP := (HIGH + LOW + CLOSE) / 3;
MA_TP := MA(TP, N);
MD := SUM(ABS(TP - REF(MA_TP, 1)), N) / N;
CCI := (TP - MA_TP) / (0.015 * MAX(MD, 0.00001));

// 平滑处理
SmoothCCI := EMA(CCI, 3);

// 1. 转折点识别
Peak := REF(SmoothCCI, 1) > REF(SmoothCCI, 2) AND REF(SmoothCCI, 1) > SmoothCCI;
Valley := REF(SmoothCCI, 1) < REF(SmoothCCI, 2) AND REF(SmoothCCI, 1) < SmoothCCI;

// 2. 创建转折点序列
TurnPoints := PEAK + VALLEY * 2;  // 波峰=1, 波谷=2

// 3. 定义五波模式模板
PatternTemplate := "21212";  // 1=波峰, 2=波谷 (谷-峰-谷-峰-谷)

// 4. 滑动窗口模式匹配
PatternFound := 0;
FOR i = 20 DOWNTO 5
BEGIN
    // 提取最近5个转折点
    CurrentPattern := "";
    FOR j = 0 TO 4
    BEGIN
        IF REF(TurnPoints, i-j) == 1 THEN CurrentPattern := CurrentPattern + "1";
        IF REF(TurnPoints, i-j) == 2 THEN CurrentPattern := CurrentPattern + "2";
    END;
   
    // 检查模式匹配
    IF CurrentPattern == PatternTemplate THEN
    BEGIN
        // 获取转折点位置
        P1 := i-4;  // 第一波终点
        P2 := i-3;  // 第二波高点
        P3 := i-2;  // 第三波低点
        P4 := i-1;  // 第四波高点
        P5 := i;    // 第五波终点
        
        // 计算波段长度
        Len1 := P2 - P1;
        Len2 := P3 - P2;
        Len3 := P4 - P3;
        Len4 := P5 - P4;
        
        // 验证波段长度
        ValidLength :=
            Len1 >= MinWaveLen AND Len1 <= MaxWaveLen AND
            Len2 >= MinWaveLen AND Len2 <= MaxWaveLen AND
            Len3 >= MinWaveLen AND Len3 <= MaxWaveLen AND
            Len4 >= MinWaveLen AND Len4 <= MaxWaveLen;
        
        // 验证幅度关系
        Drop1 := SmoothCCI[P1] - SmoothCCI[P2];  // 第一波跌幅
        Rise2 := SmoothCCI[P3] - SmoothCCI[P2];  // 第二波涨幅
        Drop3 := SmoothCCI[P3] - SmoothCCI[P4];  // 第三波跌幅
        Rise4 := SmoothCCI[P5] - SmoothCCI[P4];  // 第四波涨幅
        
        ValidAmplitude :=
            Rise2 <= Drop1 * Sens AND
            Rise4 <= Drop3 * Sens;
        
        // 整体下降趋势
        DownTrend := SmoothCCI[P1] > SmoothCCI[P5];
        
        // 组合条件
        IF ValidLength AND ValidAmplitude AND DownTrend THEN
        BEGIN
            PatternFound := 1;
            BREAK;
        END;
    END;
END;

// 期货主力合约过滤
IsActive := VOL > MA(VOL, 5) * 0.8;

// 输出结果
OUTPUT: PatternFound AND IsActive;

// 图表标记
IF PatternFound THEN
BEGIN
    DRAWICON(P1, LOW[P1], 11);
    DRAWICON(P2, HIGH[P2], 10);
    DRAWICON(P3, LOW[P3], 11);
    DRAWICON(P4, HIGH[P4], 10);
    DRAWICON(P5, LOW[P5], 11);
   
    DRAWTEXT(1, LOW, 'CCI五波形态', COLORRED);
END;
回复

使用道具 举报

44

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-7-25 14:29 | 显示全部楼层
// CCI五波震荡下跌选股公式(创新算法版)
INPUT:
    N(14, 5, 30),          // CCI计算周期
    MinWaveLen(1, 1, 3),   // 最小波段长度
    MaxWaveLen(5, 3, 10),  // 最大波段长度
    Sens(0.8, 0.5, 1.0);   // 反弹敏感度

// 计算CCI(优化版)
TP := (HIGH + LOW + CLOSE) / 3;
MA_TP := MA(TP, N);
MD1 := SUM(ABS(TP - REF(MA_TP, 1)), N) / N;
CCI := (TP - MA_TP) / (0.015 * MAX(MD1, 0.00001));

// 平滑处理
SmoothCCI := EMA(CCI, 3);

// 1. 转折点识别
Peak1 := REF(SmoothCCI, 1) > REF(SmoothCCI, 2) AND REF(SmoothCCI, 1) > SmoothCCI;
Valley := REF(SmoothCCI, 1) < REF(SmoothCCI, 2) AND REF(SmoothCCI, 1) < SmoothCCI;

// 2. 创建转折点序列
TurnPoints := PEAK1 + VALLEY * 2;  // 波峰=1, 波谷=2

// 3. 定义五波模式模板
PatternTemplate := '21212';  // 1=波峰, 2=波谷 (谷-峰-谷-峰-谷)

// 4. 滑动窗口模式匹配
PatternFound:= 0;
FOR i = 20 DOWNTO 5 do
BEGIN
    // 提取最近5个转折点
    CurrentPattern := '';
    FOR j = 0 TO 4 do
    BEGIN
        IF REF(TurnPoints, i-j) = 1 THEN CurrentPattern := CurrentPattern + '1';
        IF REF(TurnPoints, i-j) = 2 THEN CurrentPattern := CurrentPattern + '2';
    END;
   
    // 检查模式匹配
    IF CurrentPattern = PatternTemplate THEN
    BEGIN
        // 获取转折点位置
        P1 := i-4;  // 第一波终点
        P2 := i-3;  // 第二波高点
        P3 := i-2;  // 第三波低点
        P4 := i-1;  // 第四波高点
        P5 := i;    // 第五波终点
        
        // 计算波段长度
        Len1 := P2 - P1;
        Len2 := P3 - P2;
        Len3 := P4 - P3;
        Len4 := P5 - P4;
        
        // 验证波段长度
        ValidLength :=
            Len1 >= MinWaveLen AND Len1 <= MaxWaveLen AND
            Len2 >= MinWaveLen AND Len2 <= MaxWaveLen AND
            Len3 >= MinWaveLen AND Len3 <= MaxWaveLen AND
            Len4 >= MinWaveLen AND Len4 <= MaxWaveLen;
        
        // 验证幅度关系
        Drop1 := SmoothCCI[P1] - SmoothCCI[P2];  // 第一波跌幅
        Rise2 := SmoothCCI[P3] - SmoothCCI[P2];  // 第二波涨幅
        Drop3 := SmoothCCI[P3] - SmoothCCI[P4];  // 第三波跌幅
        Rise4 := SmoothCCI[P5] - SmoothCCI[P4];  // 第四波涨幅
        
        ValidAmplitude :=
            Rise2 <= Drop1 * Sens AND
            Rise4 <= Drop3 * Sens;
        
        // 整体下降趋势
        DownTrend := SmoothCCI[P1] > SmoothCCI[P5];
        
        // 组合条件
        IF ValidLength AND ValidAmplitude AND DownTrend THEN
        BEGIN
            PatternFound := 1;
            BREAK;
        END;
    END;
END;

// 期货主力合约过滤
IsActive := VOL > MA(VOL, 5) * 0.8;

// 输出结果
OUTPUT: PatternFound AND IsActive;

// 图表标记
IF PatternFound THEN
BEGIN
    DRAWICON(P1, LOW[P1], 11);
    DRAWICON(P2, HIGH[P2], 10);
    DRAWICON(P3, LOW[P3], 11);
    DRAWICON(P4, HIGH[P4], 10);
    DRAWICON(P5, LOW[P5], 11);
   
    DRAWTEXT(1, LOW, 'CCI五波形态', COLORRED);
END;
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

11

主题

76

帖子

76

积分

等级: 免费版

注册:
2021-11-9
曾用名:
 楼主| 发表于 2025-7-25 14:39 | 显示全部楼层
谢谢,编译通过。请问该公式适合在序列模式还是逐k模式运行?
回复

使用道具 举报

44

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-7-25 14:47 | 显示全部楼层
逐k
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-1 19:25 , Processed in 0.154860 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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