金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 658|回复: 3

DEBUGOUT所调用的参数与预定义参数不符

[复制链接]

10

主题

15

帖子

15

积分

Rank: 1

等级: 新手上路

注册:
2025-2-24
曾用名:
发表于 2025-2-24 17:42 | 显示全部楼层 |阅读模式
// 定义输入参数
INPUT:
    N(9, 1, 100),  // KD 指标参数
    M1(3, 1, 10),
    M2(3, 1, 10),
    MA1(5, 1, 100),  // 移动平均线参数
    MA2(10, 1, 100),
    StartTime(0900),  // 交易开始时间
    EndTime(1455),  // 交易结束时间
    // 定义期货品种及其权重
    SYMBOL1('RB000'), WEIGHT1(0.3),
    SYMBOL2('AG000'), WEIGHT2(0.2),
    SYMBOL3('CU000'), WEIGHT3(0.2),
    SYMBOL4('AU000'), WEIGHT4(0.1),
    SYMBOL5('TA000'), WEIGHT5(0.2);

// 声明并初始化全局变量
VARIABLE:
    kValue = 0,
    dValue = 0,
    maFast = 0,
    maSlow = 0,
    isIntraday = FALSE,
    maCross = FALSE,
    kdCross = FALSE,
    IndexValue = 0,  // 定义指数值变量
    IndexMAFast = 0,  // 指数的快速移动平均线
    IndexMASlow = 0,  // 指数的慢速移动平均线
    IsLongPosition = FALSE; // 用于标记是否为多头持仓

// 计算各品种收盘价
VALUE1: CALLSTOCK(SYMBOL1, vtCLOSE, 0);
VALUE2: CALLSTOCK(SYMBOL2, vtCLOSE, 0);
VALUE3: CALLSTOCK(SYMBOL3, vtCLOSE, 0);
VALUE4: CALLSTOCK(SYMBOL4, vtCLOSE, 0);
VALUE5: CALLSTOCK(SYMBOL5, vtCLOSE, 0);

// 计算指数值
IndexValue = VALUE1 * WEIGHT1 + VALUE2 * WEIGHT2 + VALUE3 * WEIGHT3 + VALUE4 * WEIGHT4 + VALUE5 * WEIGHT5;

// 计算指数的移动平均线
IndexMAFast = MA(IndexValue, MA1);
IndexMASlow = MA(IndexValue, MA2);

// 计算交叉信号
maCross = CROSS(IndexMAFast, IndexMASlow);

// 交易逻辑
isIntraday = (TIME >= StartTime) AND (TIME < EndTime);
IF isIntraday THEN BEGIN
    IF maCross THEN BEGIN
        IF IndexMAFast > IndexMASlow THEN BEGIN
            DEBUGOUT('开多仓条件满足');  // 修改1:使用单引号并规范参数
            BUY(1, 1, 0);  // 指数快速均线上穿慢速均线,开多仓
            IsLongPosition = TRUE;
            DRAWICON(1, CLOSE, 1, COLORRED, 0, '开多仓');
        END
        ELSE BEGIN
            DEBUGOUT('开空仓条件满足');  // 修改2:使用单引号并规范参数
            SELLSHORT(1, 1, 0);  // 指数快速均线下穿慢速均线,开空仓
            IsLongPosition = FALSE;
            DRAWICON(1, CLOSE, 2, COLORGREEN, 0, '开空仓');
        END
    END;
END;

// 收盘平仓
IF TIME >= EndTime AND HOLDING <> 0 THEN BEGIN
    IF IsLongPosition THEN BEGIN
        DEBUGOUT('平多仓条件满足');  // 修改3:使用单引号并规范参数
        SELL(1, 1, 0);  // 平多仓
        DRAWICON(1, CLOSE, 3, COLORYELLOW, 0, '平多仓');
    END
    ELSE BEGIN
        DEBUGOUT('平空仓条件满足');  // 修改4:使用单引号并规范参数
        SELL(1, 1, 0);  // 平空仓
        DRAWICON(1, CLOSE, 4, RGB(128, 0, 128), 0, '平空仓');
    END
END;

// 绘制指标到分时图
DRAWLINE(1, IndexValue, COLORRED, 1, 1, 'Futures Index');
DRAWLINE(1, IndexMAFast, COLORBLUE, 1, 1, 'Index MA Fast');
DRAWLINE(1, IndexMASlow, COLORGREEN, 1, 1, 'Index MA Slow');

// 在最后一个周期输出调试信息
IF BARPOS = TOTALBARSCOUNT THEN BEGIN
    IF NOT ISNaN(IndexValue) AND NOT ISINFINITE(IndexValue) THEN BEGIN
        DEBUGOUT('最后一个周期的指数值为%.2f', IndexValue);  // 保留格式化参数
    END ELSE BEGIN
        DEBUGOUT('最后一个周期的指数值无效');  // 修改5:移除多余的参数
    END
END

回复

使用道具 举报

44

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-2-25 09:08 | 显示全部楼层

DEBUGOUT('当前资产为%.2f',1234)

你这里很多语法错误,用ai编写的吧,建议不要使用ai在自己对金字塔语法一点都不了解情况下
建议自己先从基本学习开始
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

10

主题

15

帖子

15

积分

Rank: 1

等级: 新手上路

注册:
2025-2-24
曾用名:
 楼主| 发表于 2025-2-25 15:05 | 显示全部楼层
确实是,一点编程基础都没有确实不行。刚开始学也没啥头绪。。。
回复

使用道具 举报

44

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-2-25 15:08 | 显示全部楼层
先看系统自带的策略范例,你这个初看也是均线直接用系统自带的均线学习
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-16 06:04 , Processed in 0.154624 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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