什么样的逻辑是被宠坏的?
当你改变时间框架时,就会创建一个新的指标副本,对前一个副本一无所知。在一定时间内(非常短),指标的两个副本都是平行存在的。然后卸下之前的副本。
- www.mql5.com
什么样的逻辑是被宠坏的?
当你改变时间框架时,就会创建一个新的指标副本,对前一个副本一无所知。在一段时间内(很短的时间),指标的两个副本都是平行存在的。然后删除之前的副本。
谢谢你的反馈
关于 "逻辑破坏"
我写了一个指标,用它自己的绘图类型DRAW_CANDLES取代了主图表(蜡烛图)。
重点是删除主价格图表,只显示我的图表。
-Inite时,将主图的颜色设置为透明。
,我画了自己的图表(根据我的参数)。
因为我想在删除我的指标后恢复主图表的颜色
-在DeInit中,我恢复了主图表的颜色
当改变TF 时,我的意思是首先DeInit(恢复颜色),然后Init(回到透明状态)。
命令的执行不是连续的;定期地,当改变TF
定期将主图(恢复了颜色)叠加在我的指标上。
这里有一个 "逻辑错误 "的 例子。
PS: (((阅读文档https://www.mql5.com/ru/docs/runtime/running ))
如果你改变专家顾问所连接的图表的符号或时间框架,专家顾问不会被卸载和加载。在这种情况 下, 旧符号/时间线的OnDeinit() 和新符号/时间线的OnInit()(如果有的话)的处理程序被持续 调用,全局变量和静态变量 的值不会被重置。 在初始化(OnInit())完成之前收到的所有EA的事件都会被跳过。
- www.mql5.com
关于。
"一个新的指标副本被创建,对前一个副本一无所知"
为什么然后DeInit会删除在新的Init副本中创建的对象。如果它只是一个副本。
如果它们是图形对象,它们属于聊天室,可以被运行在该聊天室上的任何软件访问。
如果它们是图形对象,它们属于聊天,可以被运行在该聊天上的任何程序访问。
那么,如何才能解决这个问题呢?(有谁拿到了吗??)
或者按原样接受。为了加快计算速度,有可能以非连续的方式执行命令。
什么是与文件相违背的
当改变一个符号或图表的时间框架时,专家顾问被附加在其中,专家顾问将不会被卸载和加载。在这种情况下
依次
旧符号/时间线的处理程序OnDeinit() 和新符号/时间线的处理程序OnInit()(如果有的话)被调用。
那么,这个问题能否得到解决呢?(它对任何人都有效吗?)
我加入了这个话题的作者。这个问题真的不是空穴来风。而且非常具体。
我很久以前就发现了这个问题。我早在2016年6月就联系了servicedesk,提出了一个与本主题作者绝对相似的例子。他们没有理会--这仍然是一个开放的话题。
当然,我在改变TF时在指标中做了一个参数转移,在这上面花了很多时间。但我不想用钻石做一个简单的任务。
但是开发人员,请实现在指标中创建特殊的全局变量的可能性,在时间框架变化时不会重新初始化。在Expert Advisors中,重新初始化不会在TF变化时发生,而在指标中会发生。如果有可能不在指标中重新初始化一些变量和数组,那么OnInit和OnDeinit的同步就不会发生,对程序员来说就会有新的有趣的机会。我不认为这种变量未初始化的可能性会影响程序的安全性。
它是用来做什么的?
有很多情况。
比如说。
-当我启动指标时,我对独立于TF的变量、索引数组、数据数组进行计算,它们可能相当长,而且体积庞大。问题是,为什么我每次更换TF时都要这样做。
- 我不能通过参数窗口来改变指标参数,但为了方便和清晰,直接从图表中用鼠标操作(你可以看到和使用这个指标,它以最复杂的方式实现了这一点)。而且每次更换TF时,设置都不会丢失。
大家好!
我面临以下问题
我有一个指标或专家顾问。
其中有两个函数 - Init()和DeInit()。
当我改变TF(时间框架)时,这些函数的执行顺序是什么?
我知道,当我启动或附加指标 时,Init() 应该起作用。
当从图表中删除它时,它应该运行DeInit()。
当改变TF时,首先当前TF的DeInit( )应该工作,然后新TF的Init() 应该工作。
然而,它并不总是按照这个顺序执行,这就破坏了编写程序的逻辑。
我附上一个指标和日志的样本。
请告知谁解决了这个问题,或者干脆忘了这个问题吧!