金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 432|回复: 8

关于GLOBALVARIABLE,VARIABLE,和WRITEINIFILE的使用疑惑

[复制链接]

10

主题

30

帖子

30

积分

Rank: 4

等级: 专业版

注册:
2025-4-20
曾用名:
发表于 2026-1-26 12:05 | 显示全部楼层 |阅读模式
麻烦请帮我解惑一下关于关于GLOBALVARIABLE,VARIABLE,和WRITEINIFILE的几个使用问题。
1、VARIABLE是临时变量吗?每一次tick仅在当前tick有效?下一个tick是不是这个值就清除了,而以重新获取或附值为准。上一个tick的变量不会延续到新一个tick中来?
2、GLOBALVARIABLE这个变量会延续到后续的所有tick中去是吗?但是如果预警暂停之后重新启动,变量值是不是就不存在?因为我的测试是这样的结果。
3、预警暂停后修改了策略代码,重新启动策略的时候,是即时开始运行新的策略,还是要在预警中去重新点一下编辑预警才会生效?因为经常遇到修改了策略后,有时会提示预警策略已修改,有时又不提醒。所以不知道这个预警修改后需要进行那样操作才会让修改后的策略会重新加载。而这个GLOBALVARIABLE在重新启动后的变量值是否还存在?或如何让GLOBALVARIABLE变量值继续延续着往后面走,不管中间是否有停止预警和重启。
4、为了让GLOBALVARIABLE变量能延续,我又采用了WRITEINIFILE写入的ini文件方式,但又发现ini文件有时写入不了或写入延迟,或读取会延迟或有时候就根本读取不了或写不了。我又采用直接修改ini文件保存,但又发现重新打开又是未修改前的状态。也就是修改后无法保存不知道是何原因。
总结:现在这三种设置重量的方式在使用中发现已经错乱了。先用的VARIABLE方式,发现不能承接至下一个tick,改用GLOBALVARIABLE后又发现预警重启,所有的GLOBALVARIABLE数据又丢失了。然后又改用ini文件,再又然后发现GLOBALVARIABLE变量在重启预警后,好像值又在,又影响到了ini文件的读写。
所以,我现在这三个变量已经搞得崩溃。请帮我分析一下原因。给我一个能长期保存变量的方案。比如应用策略之一:股价下跌中的加仓,需要记录这个加仓价格、次数,后面需要调用这些数据进行动作。
希望能帮我逐一解答。谢谢!
回复

使用道具 举报

2

主题

6180

帖子

6180

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-24
曾用名:
发表于 2026-1-26 13:26 | 显示全部楼层
本帖最后由 资深技术05 于 2026-1-26 13:27 编辑

1.不会保存上一个tick的状态。它保存的上一个K的状态。如果上一个K是阳线,我们统计阳线数量。
当前 tick 下当前K 是阳线 ,那么统计结果是2
下一个tick 下当前K是阴线,那么统计结果是1.  这个1 = 上一个K最终的值+当前K的判断结果。

2.GLOBALVARIABLE 会保存上一次执行后的状态,但是它是保存在内存中。你暂停预警,内存释放就没有了。
等于是能保存状态,但是数据是不落地的。

3.“重新启动策略的时候,是即时开始运行新的策略,还是要在预警中去重新点一下编辑预警才会生效?”不用修改预警的设置了。 正常重启了预警就OK了。

4.你的需求 你用 这个全局变量就行了。



https://www.weistock.com/docs/PE ... 8F%98%E9%87%8F.html

这个是落地的,不需要读写ini。数据最终保存在客户端本地。但是需要留意,不同品种,策略读取时候,要在名称上做好区分。否则你a品种读写了b品种的,也会产生冲突。



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号? 微信登录

x
回复

使用道具 举报

10

主题

30

帖子

30

积分

Rank: 4

等级: 专业版

注册:
2025-4-20
曾用名:
 楼主| 发表于 2026-1-26 14:08 | 显示全部楼层
资深技术05 发表于 2026-1-26 13:26
1.不会保存上一个tick的状态。它保存的上一个K的状态。如果上一个K是阳线,我们统计阳线数量。
当前 tick  ...

如果应用EXTGBDATA数据,是不是比如原来的 GLOBALVARIABLE:开仓价 的开仓价这个变量,应用于不同的个股的时候,都要用不同的个股变量名。比如 股票名_开仓价。如果直接用开仓价,就可能A股票的价格被B覆盖。B开仓价被C调用了。
回复

使用道具 举报

2

主题

6180

帖子

6180

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-24
曾用名:
发表于 2026-1-26 14:09 | 显示全部楼层
一般都是采用 品种代码/名称 拼接全局变量字符串。再复杂点,还可以拼接策略名称,账号id等 进一步做区分。
回复

使用道具 举报

10

主题

30

帖子

30

积分

Rank: 4

等级: 专业版

注册:
2025-4-20
曾用名:
 楼主| 发表于 2026-1-26 14:16 | 显示全部楼层
资深技术05 发表于 2026-1-26 14:09
一般都是采用 品种代码/名称 拼接全局变量字符串。再复杂点,还可以拼接策略名称,账号id等 进一步做区分。

好的。我尝试换变量函数,不行再咨询您。谢谢!!
回复

使用道具 举报

10

主题

30

帖子

30

积分

Rank: 4

等级: 专业版

注册:
2025-4-20
曾用名:
 楼主| 发表于 2026-1-26 15:18 | 显示全部楼层
资深技术05 发表于 2026-1-26 14:09
一般都是采用 品种代码/名称 拼接全局变量字符串。再复杂点,还可以拼接策略名称,账号id等 进一步做区分。

再请问一下。用EXTGBDATASET 写入的数据。当我股票平仓后。我需要将这个股票有关的全局变量 比如 EXTGBDATA(股票名+'_买入价') 等等从全局变量的数据库中删除。应该用那个指令呢?担心如果不删除,后面全局变量中的数据越来越多,应该会影响程序的运行吧?
回复

使用道具 举报

2

主题

6180

帖子

6180

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-24
曾用名:
发表于 2026-1-26 15:20 | 显示全部楼层
这个全局变量 对应的值可以重置。但是删除无法使用pel代码操作。  只能在工具-数据管理器-全局变量 中手工删除。 这个超全局变量个数影响不大。
回复

使用道具 举报

10

主题

30

帖子

30

积分

Rank: 4

等级: 专业版

注册:
2025-4-20
曾用名:
 楼主| 发表于 2026-1-26 15:42 | 显示全部楼层
资深技术05 发表于 2026-1-26 15:20
这个全局变量 对应的值可以重置。但是删除无法使用pel代码操作。  只能在工具-数据管理器-全局变量 中手工 ...

再请问一下。策略编写时的这些报错提示在那里关闭?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号? 微信登录

x
回复

使用道具 举报

2

主题

6180

帖子

6180

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-24
曾用名:
发表于 2026-1-26 15:50 | 显示全部楼层
用WARNING_DISABLE。不过最好别忽略,这种报错 直接叉掉提示窗口就行。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-13 16:32 , Processed in 0.196162 second(s), 23 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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