金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 243|回复: 11

输出问题

[复制链接]

76

主题

340

帖子

340

积分

等级: 已到期

注册:
2021-10-18
曾用名:
发表于 2024-11-14 12:21 | 显示全部楼层 |阅读模式
哪错?修改下 编译错误:
标识符“DEBUGFILE( 1,STKLABEL+ 2 +(DAYO”长度不能大于20字符。
-------------

dayo := CALLSTOCK('', VTOPEN, 6, 0); // 当前开盘价
dc := CALLSTOCK('', VTCLOSE, 6, 0); // 当前收盘价
d := (dc - dayo) / dayo; // 计算涨幅,确保使用正确的公式


kk1B := FALSE; // 初始化kk1B为FALSE


// 调试输出当前开盘价、收盘价和涨幅
DEBUGFILE('C:\Weisoft StockDF(x64)\Setting\OrderLog\涨跌.txt',
          STKLABEL + ' 开: ' + (dayo:0:2));
DEBUGFILE('C:\Weisoft StockDF(x64)\Setting\OrderLog\涨跌.txt',
          STKLABEL + ' 收: ' + (dc:0:2));
DEBUGFILE('C:\Weisoft StockDF(x64)\Setting\OrderLog\涨跌.txt',
          STKLABEL + ' 涨: ' + (d * 100:0:2));


// 检查最近20日内是否有跌幅超过-1.8%
for i := 0 to 19 do // 遍历最近20天
begin
    // 计算过去20天的涨幅
    pastClose := CALLSTOCK('', VTCLOSE, 6, -i);
    pastOpen := CALLSTOCK('', VTOPEN, 6, -i);
    pastChange := (pastClose - pastOpen) / pastOpen; // 计算过去一天的涨幅


    // 调试输出过去20天的开盘价、收盘价和涨幅
    DEBUGFILE('C:\Weisoft StockDF(x64)\Setting\OrderLog\涨跌.txt',
              STKLABEL + ' ' + (i + 1):0 + '开: ' + (pastOpen:0:2));
    DEBUGFILE('C:\Weisoft StockDF(x64)\Setting\OrderLog\涨跌.txt',
              STKLABEL + ' ' + (i + 1):0 + '收: ' + (pastClose:0:2));
    DEBUGFILE('C:\Weisoft StockDF(x64)\Setting\OrderLog\涨跌.txt',
              STKLABEL + ' ' + (i + 1):0 + '涨: ' + (pastChange * 100:0:2));


    if pastChange < -0.018 then
    begin
        kk1B := TRUE; // 如果有一天的跌幅超过-1.8%,则设置kk1B为TRUE
        DEBUGFILE('C:\Weisoft StockDF(x64)\Setting\OrderLog\涨跌.txt',
                  STKLABEL + ' 跌超: ' + (i + 1):0);
        break; // 找到后退出循环
    end;
end;


// 输出最终结果
DEBUGFILE('C:\Weisoft StockDF(x64)\Setting\OrderLog\涨跌.txt',
          STKLABEL + ' kk1B: ' + (kk1B:0));


回复

使用道具 举报

31

主题

7737

帖子

7747

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2024-11-14 13:04 | 显示全部楼层
DEBUGFILE('C:\Weisoft StockDF(x64)\Setting\OrderLog\涨跌.txt',STKLABEL + ' 开:%.2f',dayo);

你要看函数说明,一共三个位置参数,前面两个是文件路径和一段文字描述,最后一个位置才是输出的数值
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

76

主题

340

帖子

340

积分

等级: 已到期

注册:
2021-10-18
曾用名:
 楼主| 发表于 2024-11-14 13:47 | 显示全部楼层
技术008 发表于 2024-11-14 13:04
DEBUGFILE('C:\Weisoft StockDF(x64)\Setting\OrderLog\涨跌.txt',STKLABEL + ' 开:%.2f',dayo);

你要看 ...

那修改下呗
回复

使用道具 举报

31

主题

7737

帖子

7747

积分

Rank: 8Rank: 8

等级: 超级版主

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

使用道具 举报

76

主题

340

帖子

340

积分

等级: 已到期

注册:
2021-10-18
曾用名:
 楼主| 发表于 2024-11-14 15:01 | 显示全部楼层

2024-11-14 14:58:13.432    AG00 开: 7705.00
2024-11-14 14:58:13.432    AG00 收: 7497.00
2024-11-14 14:58:13.433    无效的字符串格式符
2024-11-14 14:58:13.433    无效的字符串格式符
2024-11-14 14:58:13.434    无效的字符串格式符
----------------
帮修正下,如下:
dayo := CALLSTOCK('', VTOPEN, 6, 0); // 当前开盘价
dc := CALLSTOCK('', VTCLOSE, 6, 0); // 当前收盘价
d := (dc - dayo) / dayo; // 计算涨幅,确保使用正确的公式

kk1B := FALSE; // 初始化kk1B为FALSE

// 调试输出当前开盘价、收盘价和涨幅
DEBUGFILE('C:\Weisoft StockDF(x64)\Setting\OrderLog\涨跌.txt', STKLABEL + ' 开: %.2f', dayo);
DEBUGFILE('C:\Weisoft StockDF(x64)\Setting\OrderLog\涨跌.txt', STKLABEL + ' 收: %.2f', dc);
DEBUGFILE('C:\Weisoft StockDF(x64)\Setting\OrderLog\涨跌.txt', STKLABEL + ' 涨: %.2f%%', d * 100);

// 检查最近20日内是否有跌幅超过-1.8%
for i := 0 to 19 do // 遍历最近20天
begin
    // 计算过去20天的涨幅
    pastClose := CALLSTOCK('', VTCLOSE, 6, -i);
    pastOpen := CALLSTOCK('', VTOPEN, 6, -i);
    pastChange := (pastClose - pastOpen) / pastOpen; // 计算过去一天的涨幅

    // 调试输出过去20天的开盘价、收盘价和涨幅
    DEBUGFILE('C:\Weisoft StockDF(x64)\Setting\OrderLog\涨跌.txt', STKLABEL + ' 开: %.2f', pastOpen);
    DEBUGFILE('C:\Weisoft StockDF(x64)\Setting\OrderLog\涨跌.txt', STKLABEL + ' 收: %.2f', pastClose);
    DEBUGFILE('C:\Weisoft StockDF(x64)\Setting\OrderLog\涨跌.txt', STKLABEL + ' 涨: %.2f%%', pastChange * 100);

    // 检查跌幅是否超过-1.8%
    if pastChange < -0.018 then
    begin
        kk1B := TRUE; // 如果有一天的跌幅超过-1.8%,则设置kk1B为TRUE
        DEBUGFILE('C:\Weisoft StockDF(x64)\Setting\OrderLog\涨跌.txt', STKLABEL + ' 跌超: %.2f%%', pastChange * 100); // 输出跌幅
        break; // 找到后退出循环
    end;
end;

// 输出最终结果
DEBUGFILE('C:\Weisoft StockDF(x64)\Setting\OrderLog\涨跌.txt', STKLABEL + ' kk1B: %d', kk1B);
回复

使用道具 举报

31

主题

7737

帖子

7747

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2024-11-14 15:04 | 显示全部楼层
后面不可以再加%的,只能%.2f结尾
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

76

主题

340

帖子

340

积分

等级: 已到期

注册:
2021-10-18
曾用名:
 楼主| 发表于 2024-11-18 11:33 | 显示全部楼层
技术008 发表于 2024-11-14 15:04
后面不可以再加%的,只能%.2f结尾

看下最后一行什么问题:
DEBUGFILE('C:\Weisoft StockDF(x64)\Setting\OrderLog\条件检查.txt',
          'kd1: %d, kd2: %d, kd3: %d, kd4: %d, jqm: %d, forbid: %d, Time2: %d, zhdc: %.2f, zhdwc: %.2f, JGB: %d',
          CONST(kd1), CONST(kd2), CONST(kd3), CONST(kd4),
          CONST(jqm), forbid, CONST(Time2), zhdc, zhdwc, CONST(JGB));
         
回复

使用道具 举报

31

主题

7737

帖子

7747

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2024-11-18 13:07 | 显示全部楼层
不能这么写的,只能输出一个数字的,你这样等于函数有很多输出了不行的
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

76

主题

340

帖子

340

积分

等级: 已到期

注册:
2021-10-18
曾用名:
 楼主| 发表于 2024-11-18 13:54 | 显示全部楼层
技术008 发表于 2024-11-18 13:07
不能这么写的,只能输出一个数字的,你这样等于函数有很多输出了不行的

每个单独输出?那多麻烦。
回复

使用道具 举报

31

主题

7737

帖子

7747

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2024-11-18 13:57 | 显示全部楼层
'kd1 is'&numtostr(kd1,0)&'kd2'

那你只能第二个位置字符串的位置用numtostr把要输出的内容转换成字符串然后字符串和字符串之间用&拼起来,这种也很麻烦的而且写多了很容易标点符号漏了货多了什么的
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-23 01:37 , Processed in 0.251585 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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