当转移到另一个时间框架时,我如何改变指标中的全局变量结构?

 
当移动到另一个时间框架时,如何移动指标中的全局变量、结构、对象?我通过谷歌搜索还没有找到。
 
Mikhail Nazarenko:
当移动到另一个时间框架时,如何移动指标中的全局变量、结构或对象?我在谷歌上搜索,但没有找到。

笨拙的解决方案:如果不是对象,就不要重新初始化它们 :-)

当时间框架被改变时,虽然EA重新启动,但数据不会被自己覆盖。对于C-suite来说,这是一个出乎意料的行为,也许在其他建设中会有所改变,但你去那里;-)

而正确的解决方案是--在文件或数据库中保存状态,并在OnInit决定--恢复以前的状态或重新开始

 
Maxim Kuznetsov:

笨拙的解决方案:如果不是对象,就不要重新初始化它们 :-)

当时间框架被改变时,虽然EA重新启动,但数据不会被自己覆盖。对于C-suite来说,这是一个出乎意料的行为,也许在其他建设中会有所改变,但你去那里;-)

而正确的解决方案是--在文件或数据库中保存状态,并在OnInit决定中--恢复以前的状态或从头开始重启。

我理解,对于结构和对象来说,没有简单的解决方案?

 

Maxim Kuznetsov:


当你改变时间框架时,虽然EA重新启动,但数据不会被自己覆盖。


这个问题是关于指标的。

 
Mikhail Nazarenko:

当移动到另一个时间框架时,如何移动指标中的全局变量、结构、对象?我在谷歌上搜索,没有找到。

-全局变量- 只需将其保存在终端的全局变量中。
- 图表对象--只需不从图表中删除它。
- 结构--只要把它写到一个文件里。

 
Mikhail Nazarenko:

我理解,对于结构和对象来说,没有简单的解决方案?

写入文件 不是一个简单的解决方案吗?似乎没有什么复杂的东西 - FileWriteStruct()是可用的。要写的那部分对象(而且还是数据,不是方法,保存起来没有意义),转换为一个结构。

 
Ihor Herasko:

写入文件 是一个棘手的解决方案吗?似乎没有什么复杂的东西 - FileWriteStruct()是可用的。要写的那部分对象(而且还是数据,不是方法,保存起来没有意义),转换为一个结构。

看上去是一件简单的事情,但如果没有更优雅的东西,那么就到文件中去。我天真地以为我可以不拄拐杖。谢谢你。

 
除非有一些超级复杂的计算,否则在重新启动时从头开始重新计算所有的结构会更容易。
 
transcendreamer:
从头开始重新计算所有的结构会更容易,当然,除非有一些超级复杂的计算......

有的时候,数据是无法计算的。例如,用户行动。

 
Ihor Herasko:

有的时候,数据是无法计算的。例如,用户行动。

是的,有的,但它们通常可以作为状态存储在globals中,或者作为图对象的状态存储它们的对象化结果......。

 

这里@fxsaber 展示了一个如何在全局变量中保存结构的例子

https://www.mql5.com/ru/forum/320395/page6#comment_12910394

以及他在这个主题中的帖子下面