金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 2141|回复: 10

请问:工具-数据-全局变量,记录里的数值却不一样

[复制链接]

75

主题

193

帖子

193

积分

等级: 免费版

注册:
2023-4-11
曾用名:
发表于 2024-6-5 11:17 | 显示全部楼层 |阅读模式
//【开仓执行_多单】------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
IF TCON AND BC_Y>=0 AND BCON=1 AND ((TAVGENTERPRICEEX2(AC,_Y,1)-DYNAINFO2(7,_Y)))*SC_Y*10<=0  AND DYNAINFO2(14,_Y)*100<=9 AND YKS<5000 THEN
BEGIN
               
         TBUY(1,CW_Y,LMT,DYNAINFO2(21,_Y)+HD,0,AC,_Y);       
               
         EXTGBDATASET('265110_DKQS_Y',DYNAINFO2(7,_Y)-2*ATR);                     
         EXTGBDATASET('265110_DKCS_Y',DYNAINFO2(7,_Y)-2*ATR);                        //【这里的变量写入全局中的数值是错误的,写成了开仓时的最新价,与DKQS_Y的变量赋值是一样的代码,但是值却不一样】                                    
END
//【开仓执行_空单】------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
IF TCON AND SC_Y>=0 AND SCON=1  AND ((DYNAINFO2(7,_Y)-TAVGENTERPRICEEX2(AC,_Y,0)))*BC_Y*10<=0 AND DYNAINFO2(14,_Y)*100<=9 AND YKS<5000 THEN
BEGIN
       
         TBUYSHORT(1,CW_Y,LMT,DYNAINFO2(20,_Y)-HD,0,AC,_Y);
         EXTGBDATASET('265110_KKQS_Y',DYNAINFO2(7,_Y)+2*ATR);                        
         EXTGBDATASET('265110_KKCS_Y',DYNAINFO2(7,_Y)+2*ATR);                      //【这里的变量写入全局中的数值是错误的,写成了开仓时的最新价,与KKQS_Y的变量赋值是一样的代码,但是值却不一样】                                  
END

老师,你好,请问上述代码,为什么赋值过程是一样的,可是在工具-数据-全局变量,记录里的数值却不一样?

回复

使用道具 举报

37

主题

1万

帖子

6万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2024-6-5 11:33 | 显示全部楼层
上面代码有效信息有限。你先判断下自己是不是多品种监控。其次是增加debugfile日志调试输出。在所有EXTGBDATASET的部分上增加输出所有牵扯到修改的地方的值,以判断结果变化的原因
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

75

主题

193

帖子

193

积分

等级: 免费版

注册:
2023-4-11
曾用名:
 楼主| 发表于 2024-6-5 14:55 | 显示全部楼层
技术006 发表于 2024-6-5 11:33
上面代码有效信息有限。你先判断下自己是不是多品种监控。其次是增加debugfile日志调试输出。在所有EXTGBDA ...

    IF (TOP-TAVGENTERPRICEEX2(AC,_Y,0))>=2*ATR THEN EXTGBDATASET('265110_DKCS_Y',TAVGENTERPRICEEX2(AC,_Y,0));  

目前排查了整个代码,就是这一句重置 变量了,本意是开仓后,2个ATR后,将'265110_DKCS_Y'值更新为开仓价格,是哪里表达的不对吗?
麻烦指正一下。
回复

使用道具 举报

37

主题

1万

帖子

6万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2024-6-5 15:06 | 显示全部楼层
汇聚 发表于 2024-6-5 14:55
IF (TOP-TAVGENTERPRICEEX2(AC,_Y,0))>=2*ATR THEN EXTGBDATASET('265110_DKCS_Y',TAVGENTERPRICEEX2 ...

这种问题没法直接推断哪里不对,需要结合调试对照自己的思路进行处理。
如果这段代码运行在多品种上,那么等同于只会保存最后一个品种对应的值。

具体情需要你输出TOP、TAVGENTERPRICEEX2和_Y等变量的值进行具体判断。

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

使用道具 举报

75

主题

193

帖子

193

积分

等级: 免费版

注册:
2023-4-11
曾用名:
 楼主| 发表于 2024-6-6 15:34 | 显示全部楼层
2024-06-06 14:58:15.764    BOT价格为0.00
2024-06-06 14:58:15.764    空开价格为8038.00
2024-06-06 14:58:15.779    初始价格为8062.20
2024-06-06 14:58:15.793    空ATR值为-10.80
2024-06-06 14:58:16.796    BOT价格为0.00
2024-06-06 14:58:16.797    空开价格为8038.00
2024-06-06 14:58:16.810    初始价格为8062.20
2024-06-06 14:58:16.822    空ATR值为-10.80
2024-06-06 14:58:17.789    BOT价格为0.00
2024-06-06 14:58:17.789    空开价格为8038.00
2024-06-06 14:58:17.804    初始价格为8062.20
2024-06-06 14:58:17.818    空ATR值为-10.80
2024-06-06 14:58:18.766    BOT价格为0.00
2024-06-06 14:58:18.766    空开价格为8038.00
2024-06-06 14:58:18.781    初始价格为8062.20
2024-06-06 14:58:18.797    空ATR值为-10.80
2024-06-06 14:58:19.813    BOT价格为0.00
2024-06-06 14:58:19.814    空开价格为8038.00
2024-06-06 14:58:19.829    初始价格为8062.20
2024-06-06 14:58:19.858    空ATR值为-10.80
2024-06-06 14:58:20.793    BOT价格为0.00
2024-06-06 14:58:20.793    空开价格为8038.00
2024-06-06 14:58:20.806    初始价格为8062.20
2024-06-06 14:58:20.820    空ATR值为-10.80
2024-06-06 14:58:21.778    BOT价格为0.00
2024-06-06 14:58:21.778    空开价格为8038.00
2024-06-06 14:58:21.791    初始价格为8062.20
2024-06-06 14:58:21.804    空ATR值为-10.80
2024-06-06 14:58:22.862    BOT价格为0.00
2024-06-06 14:58:22.863    空开价格为8038.00
2024-06-06 14:58:22.878    初始价格为8062.20
2024-06-06 14:58:22.891    空ATR值为-10.80
2024-06-06 14:58:23.762    BOT价格为0.00
2024-06-06 14:58:23.763    空开价格为8038.00
2024-06-06 14:58:23.776    初始价格为8062.20

    DEBUGFILE('C:\Users\Administrator\Desktop\002729\TEST.TXT','BOT价格为%.2f',KZY2);       
    DEBUGFILE('C:\Users\Administrator\Desktop\002729\TEST.TXT','空开价格为%.2f',TAVGENTERPRICEEX2(AC,_AG,1));       
    DEBUGFILE('C:\Users\Administrator\Desktop\002729\TEST.TXT','初始价格为%.2f',KKCS_AG);
    DEBUGFILE('C:\Users\Administrator\Desktop\002729\TEST.TXT','空ATR值为%.2f',-2*ATR);

按照上面的代码,输出的数值不在一行,请问如何修改
1、取到的几个数值显示在一行里面。
2、每秒钟打印一次或开仓条件成立时打印一次,如何实现?
回复

使用道具 举报

75

主题

193

帖子

193

积分

等级: 免费版

注册:
2023-4-11
曾用名:
 楼主| 发表于 2024-6-6 15:35 | 显示全部楼层
技术006 发表于 2024-6-5 15:06
这种问题没法直接推断哪里不对,需要结合调试对照自己的思路进行处理。
如果这段代码运行在多品种上,那 ...

请看下面描述
回复

使用道具 举报

37

主题

1万

帖子

6万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2024-6-6 15:41 | 显示全部楼层
1使用字符串拼接,将多个变量的值拼接在一起。
DEBUGFILE('C:\Users\Administrator\Desktop\002729\TEST.TXT','BOT价格为'&numtostr(KZY2,2) &'空开价格为'&numtostr(TAVGENTERPRICEEX2(AC,_AG,1),2),1);  

2.将debugfile放在if语句条件下。


先回答我 4楼中询问的内容,这个策略是不是用在了多品种下面?
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

75

主题

193

帖子

193

积分

等级: 免费版

注册:
2023-4-11
曾用名:
 楼主| 发表于 2024-6-6 15:49 | 显示全部楼层
技术006 发表于 2024-6-6 15:41
1使用字符串拼接,将多个变量的值拼接在一起。
DEBUGFILE('C:%users\Administrator\Desktop\002729\TEST. ...

一个策略对应的是一个品种,创建的后台程序化里该策略只监控一个品种。
回复

使用道具 举报

37

主题

1万

帖子

6万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2024-6-6 15:58 | 显示全部楼层
汇聚 发表于 2024-6-6 15:49
一个策略对应的是一个品种,创建的后台程序化里该策略只监控一个品种。

这样可以排除掉是多品种的影响。



你可以输出后看下结果。另外,你吧日志完善下,把DYNAINFO2(7,_Y)这类的匜输出出来。
然后根据这些结果验证指定的时间节点就能知道是否是错的。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

75

主题

193

帖子

193

积分

等级: 免费版

注册:
2023-4-11
曾用名:
 楼主| 发表于 2024-6-6 16:05 | 显示全部楼层
技术006 发表于 2024-6-6 15:58
这样可以排除掉是多品种的影响。

好的,谢谢老师
   DEBUGFILE('C:\Users\Administrator\Desktop\002729\TEST.TXT','BOT价格为'&numtostr(KZY2,2) &'空开价格为'&numtostr(TAVGENTERPRICEEX2(AC,_AG,1) &'初始价格为'&numtostr(KKCS_AG) &'空ATR值为'&numtostr(-2*ATR),2),1);
加了另外两个输出项,输出函数报错,DEBUGFILE的用法一直不熟悉。末尾两个参数代表什么呢
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-28 00:36 , Processed in 0.129821 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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