指标中的OnDeinit - 页 5 12345678 新评论 [删除] 2015.06.17 12:26 #41 mql5: 我将尝试再次解释(用手指)。终端在上次启动后的X时间内启动了启动历史记录下载,该记录缺失(终端闲置了X分钟)。在可用的历史记录上为指标调用OnCalculate,prevtime = 最后已知的历史时间,指标缓冲区大小为N条。在从服务器下载历史记录时,会出现一个勾。调用指标的OnCalculate,其中Time[0]是一个tick时间,指标将其记为prevtime,指标的缓冲区大小为N+1条(在N和N+1条之间有一个历史间隙)。历史记录下载完毕后,再次调用OnCalculate,但这次历史记录中没有洞,但prevtime的日期与Time[0]相同--没有新的bar(分别是没有清除指标中的缓冲区),指标N+X/Timeframe bars的缓冲区大小和IndBuffer[0]与步骤5中不相同前期时间与此有什么关系?我是在问为什么它不工作。///////////////////////////////////// void OnDeinit(const int reason) { ArrayInitialize(body_up,EMPTY_VALUE); ArrayInitialize(body_down,EMPTY_VALUE); ArrayInitialize(shadow_up,EMPTY_VALUE); ArrayInitialize(shadow_down,EMPTY_VALUE); ArrayInitialize(yell_body_up,EMPTY_VALUE); ArrayInitialize(yell_body_down,EMPTY_VALUE); ArrayInitialize(yell_shadow_up,EMPTY_VALUE); ArrayInitialize(yell_shadow_down,EMPTY_VALUE); } Ihor Herasko 2015.06.17 13:18 #42 eevviill:这与prevtime有什么关系?我问的是为什么它不起作用。那你怎么知道它不起作用呢?你如何检查?还有,为什么在卸载之前要初始化指标缓冲区?它已经被卸下了,不是吗?指标缓冲区应 在所有指标值完全重新计算后进行初始化。int OnCalculate(..) { ... if (<необходимо пересчитать все значения индикатора, например, если limit == Bars - 1>) { ArrayInitialize(...); } ... } Victor Nikolaev 2015.06.17 15:33 #43 eevviill:在这里。我为此做了一个缓冲器归零。Inite已经说过你不能这样做。我想退出。但它在那里也不起作用。为什么?init()和deinit()有什么关系?手术需要在相当不同的地方进行。我将再次重复这一点。计算之后,历史 被加载。我做了一个工作版本。 附加的文件: mtfbcandle_1.mq4 9 kb [删除] 2015.06.17 18:09 #44 Scriptong:你怎么知道它是否不工作?你如何检查? https://forum.mql4.com/ru/65066/page2#1015138 [删除] 2015.06.17 18:11 #45 Vinin:init()、deinit()有什么关系?其他地方也需要这项行动。我再重复一遍。计算后,历史被加载。制作了一个工作版本。 在你的建议下,我第一次还是做对了。我想知道为什么deinit对数组的归零不起作用? Ihor Herasko 2015.06.17 18:16 #46 eevviill: https://forum.mql4.com/ru/65066/page2#1015138你给了一个在OnCalculate 中工作的代码链接。我问的是你怎么知道DeInit中的初始化不起作用。让我说明一下,以防万一,在OnDeinit()之后,指标代码中的任何内容都不会起作用(OnInit()和OnCalculate()都不会。)因此,你可以只在OnDeinit()本身检查数组的归零情况。 [删除] 2015.06.19 10:24 #47 Scriptong:你给了一个在OnCalculate中工作的代码链接。我问的是你怎么知道DeInit中的初始化不起作用。让我说明一下,以防万一,在OnDeinit()之后,指标代码中的任何内容都不会起作用(OnInit()和OnCalculate()都不会。)因此,你只能在OnDeinit()本身中检查数组归零的事实。 我已经提供了一个链接到操作打开图表-连接 M1指示器-关闭终端-在几分钟内打开。结果是在截图上。这就是我的测试方法。 [删除] 2015.06.19 10:24 #48 eevviill:在你的建议下,我第一次还是做对了。我想知道为什么deinit在数组归零时不工作? 或者当终端关闭 时,deinit不起作用? Ilyas 2015.06.19 12:16 #49 eevviill: 还是当终端关闭时,deinit不起作用? 它确实如此,但清除指标缓冲区 没有意义--它们没有被保存。 [删除] 2015.06.21 08:32 #50 mql5: 它是有效的,但清除指标缓冲区是没有意义的--它们没有被保存。为什么?为什么缓冲区0的值被填充保存但没有归零? 12345678 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我将尝试再次解释(用手指)。
前期时间与此有什么关系?
我是在问为什么它不工作。
这与prevtime有什么关系?
我问的是为什么它不起作用。
那你怎么知道它不起作用呢?你如何检查?
还有,为什么在卸载之前要初始化指标缓冲区?它已经被卸下了,不是吗?
指标缓冲区应 在所有指标值完全重新计算后进行初始化。
在这里。我为此做了一个缓冲器归零。Inite已经说过你不能这样做。
我想退出。但它在那里也不起作用。为什么?
init()和deinit()有什么关系?手术需要在相当不同的地方进行。我将再次重复这一点。计算之后,历史 被加载。
我做了一个工作版本。
你怎么知道它是否不工作?你如何检查?
init()、deinit()有什么关系?其他地方也需要这项行动。我再重复一遍。计算后,历史被加载。
制作了一个工作版本。
在你的建议下,我第一次还是做对了。
我想知道为什么deinit对数组的归零不起作用?
https://forum.mql4.com/ru/65066/page2#1015138
你给了一个在OnCalculate 中工作的代码链接。我问的是你怎么知道DeInit中的初始化不起作用。让我说明一下,以防万一,在OnDeinit()之后,指标代码中的任何内容都不会起作用(OnInit()和OnCalculate()都不会。)因此,你可以只在OnDeinit()本身检查数组的归零情况。
你给了一个在OnCalculate中工作的代码链接。我问的是你怎么知道DeInit中的初始化不起作用。让我说明一下,以防万一,在OnDeinit()之后,指标代码中的任何内容都不会起作用(OnInit()和OnCalculate()都不会。)因此,你只能在OnDeinit()本身中检查数组归零的事实。
我已经提供了一个链接到
操作打开图表-连接 M1指示器-关闭终端-在几分钟内打开。结果是在截图上。
这就是我的测试方法。
在你的建议下,我第一次还是做对了。
我想知道为什么deinit在数组归零时不工作?
还是当终端关闭时,deinit不起作用?
它是有效的,但清除指标缓冲区是没有意义的--它们没有被保存。
为什么?
为什么缓冲区0的值被填充保存但没有归零?