金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 1702|回复: 3

如何实现全局变量extgbdataset每条件成立1次就+1?

[复制链接]

18

主题

56

帖子

56

积分

Rank: 4

等级: 专业版

注册:
2021-8-24
曾用名:
发表于 2021-12-8 08:56 | 显示全部楼层 |阅读模式
全局变量extgbdataset每条件成立1次就+1,我试过了很多写法都不能成功,比如下面这种写法,控制每天只开仓2次:

if time=093000  then begin
extgbdataset('交易次数',0);
end;

if 条件成立  AND extgbdata('交易次数')<= 1  AND islastbar then begin
   TSELL(1,0,LMT,CLOSE,0,账号1,'000002'); //平仓十二月认购合约3300
   AA:=EXTGBDATA('交易次数');
  extgbdataset('交易次数',AA+1);  

总是不能成功,请问问题出在哪里?如果我写的不对,那么如何正确实现全局变量extgbdataset每条件成立1次就+1

回复

使用道具 举报

3

主题

2万

帖子

2万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-24
曾用名:
发表于 2021-12-8 09:35 | 显示全部楼层
如果你用固定轮询模式,那么extgbdataset('交易次数',AA+1);  这个满足条件会一直加,相当于你满足条件软件开仓只会开一次,但是赋值马上就付到2了

最简单处理你可以改成走完k模式, AND islastbar这句话也不用加,本身这个函数就是最后起作用不刷历史的
那么每根k线走完k时候执行一次,也就不会重复赋值了
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

18

主题

56

帖子

56

积分

Rank: 4

等级: 专业版

注册:
2021-8-24
曾用名:
 楼主| 发表于 2021-12-8 10:07 | 显示全部楼层

谢谢资深技术02的解答,但是我用的确实是走完K模式,不是固定轮询模式,问题可能不是出现这里
我的后台策略是序列运行,不是逐K运行,是因为这个吗?

还有,我观察我不成功的原因,不是——extgbdataset('交易次数',AA+1);  这个满足条件会一直加——,加的过多,导致没到交易次数就不开仓了,而是它会不停的开仓,我分析是实际上根本没有成功+1,可能始终是0,所以才会不受控制继续交易下去,我现在分析是不是extgbdataset这个全局变量函数是给字符串赋值,所以跟VARIABLE这种函数不一样啊,VARIABLE就可以很容易的写成VARIABLE:=VARIABLE+1,extgbdataset似乎就不行
回复

使用道具 举报

3

主题

2万

帖子

2万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-24
曾用名:
发表于 2021-12-8 10:14 | 显示全部楼层
和这个没关,还有一种是不是其他地方重新给他赋值0了
AA:=EXTGBDATA('交易次数');
一方面你用debugfile去输出这个aa看下,他会不会变

另外你把第一行先注释点看看,因为赋值0的只有这里其他地方没有初始化

然后运行看看,看debugfile输出的这个值有没有+1
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-22 23:24 , Processed in 0.225975 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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