C появлением новой версии языка MQL, не только изменился подход к работе с индикаторами, но и появились новые способы создания индикаторов. Кроме того, появилась дополнительная гибкость при работе с индикаторными буферами - теперь вы можете самостоятельно указать нужное направление индексации и получать ровно столько значений индикатора, сколько вам требуется. В этой статье рассмотрены базовые методы вызова индикаторов и получения данных из индикаторных буферов.
出现了一个问题,我不知道该把它放在哪里。
这是我感兴趣的代码部分。
它说,首先我们需要取消印有 "itogo do "文字的itogo变量值。
如果itogo大于1000,则打印itogo,并附上文字 "itogo>1000"
itogo被分配到500个
打印带有 "vsego_if="文字的itogo,然后离开保护区。
用 "itogo posle="的文字打印itogo。
画出一条线。
我为什么要讲细节呢?
应该很清楚,如果没有条件,它们之间会有两行;如果有条件,会有四行。
我们知道,当条件被触发时,变量的值会发生变化。
首先要做的是取消itogo do变量的打印,这里的取消显示了两个打印机,所以没有触发任何条件,但变量的值已经改变。
这怎么可能是??????????
这里有一张代码的截图,显示行与行之间,即字段边界以外的某个地方,没有任何东西被隐藏。
代码完全崩溃,编译没有问题,但却拒绝按预期工作。
变量是全局声明的int,代码本身很大,但在代码的其他地方没有打印。
而最有趣的是,调试器工作正常,但当你在正常模式下运行时,这里有这样的洗牌现象
而这不是打印机,根据程序的逻辑,我发现有些东西是错误的。
我还没能在其他例子上重现这个问题,但这似乎是解决办法
以前有DebugBreak();,代码通过调试器运行,后来DebugBreak()被删除,一切都被重新编译。
但显然,ME记得使用了调试器,并拒绝在编译后没有调试的情况下正确工作。
如果我运行调试器,那么即使在正常启动时,该脚本也能正常工作。
我还没能在其他例子上重现这个问题,但这似乎是解决办法
以前有DebugBreak();,代码通过调试器运行,后来DebugBreak()被删除,一切都被重新编译。
但很明显,ME记得曾经使用过调试器,并且在编译后不运行调试器就拒绝正确工作。
如果你通过调试器运行它,即使在正常运行时,该脚本也能正常工作。
他们还说这是一种释放?
2010年锦标赛 的潜在参赛者已经写了一个专家顾问,并对其进行了调试,但调试器的东西仍然在代码中。然而,专家顾问工作得很好。然而,它只对 "技巧 "起作用。 然而,参与者并不知道这一点--他/她怎么可能知道这样一个没有记录的功能?
因此,该参赛者将其EA的源代码发送给MetaQuotes,以便参加2010年锦标赛,他们只是进行了编译,当然,代码结果是干净的,没有任何 "调试器的东西"。
2010年的锦标赛开始了,但MetaQuotes Expert Advisor不知为何与他或她电脑上的交易方式不一样。一个参与者感到困惑,有各种想法......
出现了一个问题,我不知道该把它放在哪里。
我做了这个代码作为例子(我把你的值放进去了)。
它工作得很好。
正如你所看到的,变量值中没有错误或不一致的地方。
也许你在多次重新编辑后忘记了重新编译代码,而使用了一个旧版本。
你需要做什么。
不要再歇斯底里了。
如果这一错误得到确认,将立即得到纠正。软件开发不可能没有错误地进行下去。
不要再歇斯底里了。
如果这一错误得到确认,将立即得到纠正。软件开发不可能没有错误地进行下去。
Renat,我建议开设 "MQL5的批评 "或类似的话题。而所有这些来自其他主题(线程)的信息都应该作为非顶层的信息被删除。
这样一来,批评家们就有了表达自己的地方,线索也会得到安排。
我想知道关于从EA调用指标 的第18261号 请求的命运(数值与指标不匹配)。
如果他们以某种方式作出回应就好了......
我想知道关于从EA调用指标 的第18261号 请求的命运(数值与指标不匹配)。
如果他们以某种方式作出回应就好了......
您的请求已经得到答复。有人建议。
为什么在你的资料中没有更新--我们会想办法解决的。
我做了这段代码作为例子(放上你的值)。
它工作得很好。
正如你所看到的,变量值没有错误或不一致的地方。
有可能在多次重新编辑后,你忘了重新编译代码,而使用了一个旧版本。
该怎么做。
在我在这里发帖之前,我也做了同样的事情,结果和你一样,但在最初出现错误的那张纸上,全部崩溃了。
我在调试器中重复了这个原因,如果在那个特定的工作表上做了重新编译,并且没有通过调试运行是不正确的,在调试运行后一切正常。我不知道为什么调试器会钩住这个特定的工作表,其他工作表上的代码拷贝可以正常工作,但这个工作表却不行。
这就是为什么我在上面写道,到目前为止,我无法重现这个错误(或者说,它重现了,但只在本地化的项目中)。
也许调试器或ME有一个功能可以记住编辑的历史,也许在事件发生之前有一个关键的错误,而我没有注意到。
而我在这里发布之前也做了同样的事情,结果和你一样,但在最初发生错误的那张纸上,一切都崩溃了。
我在调试器中重复了这个原因,如果我在特定的工作表上重新编译,没有通过调试运行,就会出现错误,调试后一切正常。我不知道为什么调试器会钩住这个特定的工作表,其他工作表上的代码拷贝可以正常工作,但这个工作表却不行。
这就是为什么我在上面写道,到目前为止,我无法重现这个错误(或者说,它重现了,但只在本地化的项目中)。
也许调试器或ME有一个功能可以记住编辑的历史,也许在事件发生前有一个关键的错误,而我没有注意到。
你还记得DebugBreak()是在哪里设置的吗?
到目前为止,还没有运气重现它。