金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
12
返回列表 发新帖
楼主: hanzi-999

后台公式调试输出K线序列次序异常

[复制链接]

44

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-2-24 11:14 | 显示全部楼层
DEBUGFILE('D:\TEST.TXT',numtostr(date+19000000,0)&'当前时间为%.2f',time);

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

使用道具 举报

50

主题

270

帖子

270

积分

等级: 免费版

注册:
2023-9-29
曾用名:
 楼主| 发表于 2025-2-24 11:35 | 显示全部楼层
时间格式转换后, 用debugfile仍旧会出现错落, 你又怎么解释呢? 代码如下:
RUNMODE : 0; //指定逐K模式

DBG_PATH := 'D:\'; //调试输出文件路径
DBG_TRADE_LOG_FILE := DBG_PATH & 'debug_test1.txt'; //调试输出文件名

//若非最新K,则退出
IF NOT(ISLASTBAR) THEN BEGIN
        //DEBUGFILE2(DBG_TRADE_LOG_FILE, STKLABEL & ' not lastK',0,0);
    EXIT;
END

//////////////////////////////////////////////////////////////////
//                  调试输出最新K时间戳相关
//////////////////////////////////////////////////////////////////
reldate := DATE+19000000;  
current_date_str := NUMTOSTR(reldate,0); //日期字符串  

reltime := TIME;  
hh := reltime/10000;
mmss := MOD(reltime,10000);
minutes := mmss/100;
ss := MOD(mmss,100);  
current_time_str := NUMTOSTR(hh,0) & ':' & NUMTOSTR(minutes,0) & ':' & NUMTOSTR(ss,0);

k_stamp := current_date_str & ' ' & current_time_str;
//////////////////////////////////////////////////////////////////
//                 end of 调试输出最新K时间戳相关
//////////////////////////////////////////////////////////////////


debug_content := '调试' & ' ' & STKLABEL;
debug_content := k_stamp & ' ' & debug_content;
DEBUGFILE(DBG_TRADE_LOG_FILE,debug_content,0);
回复

使用道具 举报

44

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-2-24 11:38 | 显示全部楼层
具体没看你中间怎么转换,你就用上面的取看呢
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

44

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-2-24 11:38 | 显示全部楼层
如果没问题就说明你自己的逻辑算法是错误的
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

50

主题

270

帖子

270

积分

等级: 免费版

注册:
2023-9-29
曾用名:
 楼主| 发表于 2025-2-24 11:57 | 显示全部楼层
这个代码并没有业务逻辑 就是打印K线时间戳.而且我也把时间转换格式的代码贴出来了,逻辑算法哪里有问题?  你没有去测试吧?  reltime := TIME;  
hh := reltime/10000;
mmss := MOD(reltime,10000);
minutes := mmss/100;
ss := MOD(mmss,100);  
回复

使用道具 举报

37

主题

1万

帖子

6万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2025-2-24 12:17 | 显示全部楼层
你算法有点问题。NUMTOSTR函数在转换字符传时,会整理精度,你time/10000时会有小数位,整理精度时遵循四舍五入的方式,例如:HH等于1.5时会被处理成立2.
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

44

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-2-24 12:17 | 显示全部楼层
hour
MINUTE
second

不是又现成函数吗,你直接对这个用numtostr转字符串就行了,不要去自己计算了
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

50

主题

270

帖子

270

积分

等级: 免费版

注册:
2023-9-29
曾用名:
 楼主| 发表于 2025-2-24 13:51 | 显示全部楼层
谢谢!  那一行应该改为: hh := FLOOR(reltime/10000);
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-17 02:14 , Processed in 0.144322 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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