金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 2580|回复: 7

请教全局变量写法问题

[复制链接]

43

主题

162

帖子

172

积分

Rank: 4

等级: 专业版

注册:
2022-8-5
曾用名:
发表于 2023-4-14 10:24 | 显示全部楼层 |阅读模式
str:'luht'&stklabel;
str1:'cj'&stklabel;
IF (BUYCD OR BUYCD1) AND EXTGBDATA(str)=0  AND TISPRVREMAIN(0)=0  AND TTYPEBAR(1,2)<>0 THEN BEGIN
        TBUY(1,KC,MKT);
        EXTGBDATASET(str,KC);
        EXTGBDATASET(str1,C);
        if EXTGBDATA(str1)<>TENTERPRICE then
           EXTGBDATASET(str1,TENTERPRICE);
END

不知道上面逻辑有没有错误,开仓后全局变量里只有str值,str1值却是0,麻烦老师帮忙改正一下。

回复

使用道具 举报

37

主题

9975

帖子

6万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2023-4-14 10:27 | 显示全部楼层
debugfile输出下TENTERPRICE是不是0.
在整个代码逻辑上看,应该是这个条件成立,c<>0,进行了赋值操作。
        if EXTGBDATA(str1)<>TENTERPRICE then
           EXTGBDATASET(str1,TENTERPRICE);
END
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

43

主题

162

帖子

172

积分

Rank: 4

等级: 专业版

注册:
2022-8-5
曾用名:
 楼主| 发表于 2023-4-14 10:47 | 显示全部楼层
我就是想str1赋值为上次开仓价,那如果开仓之后还是0的话那我这段代码就没有意义啊?
我该怎么修改呢?
回复

使用道具 举报

37

主题

9975

帖子

6万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2023-4-14 11:00 | 显示全部楼层
105092 发表于 2023-4-14 10:47
我就是想str1赋值为上次开仓价,那如果开仓之后还是0的话那我这段代码就没有意义啊?
我该怎么修改呢?

只是针对您上面代码进行推断,应该是TENTERPRICE最后进行的赋值。

确定这个情况必须先输出结果看下才知道。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

43

主题

162

帖子

172

积分

Rank: 4

等级: 专业版

注册:
2022-8-5
曾用名:
 楼主| 发表于 2023-4-17 08:50 | 显示全部楼层
开仓后TENTERPRICE输出是持仓价,不是0,但是str1还是0。
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-4-17 09:09 | 显示全部楼层
开仓后第一时间未必能成交的,这种情况下。TENTERPRICE返回值没那么快更新的,再加上你是市价报单,直接就赋值为0 。等后面即使成交了,TENTERPRICE值更新了,但是你后面再次赋值的逻辑那里也走不进去了。


你这个我觉得没必要用全局变量 直接用TENTERPRICE就行了,只是额外判断下TENTERPRICE是否为0。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

43

主题

162

帖子

172

积分

Rank: 4

等级: 专业版

注册:
2022-8-5
曾用名:
 楼主| 发表于 2023-4-17 09:26 | 显示全部楼层
我因为是想区分不同策略的开仓价格,所以才用全局变量的;
之前有老师教我市价开仓,第一时间用市价C赋值,之后再转换成TENTERPRICE,现在不知道是赋值失败还是转换失败了
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-4-17 09:38 | 显示全部楼层
你试下把语句放到外部去,不要放到开仓语句的控制下.,另外代码微调下:

        if EXTGBDATA(str1)<>TENTERPRICE and TENTERPRICE<>0 then
           EXTGBDATASET(str1,TENTERPRICE);
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-10 11:22 , Processed in 0.190950 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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