新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 1044

 
Galim_V:

有什么简单的软件可以解决我的问题吗?

有!有!有


 
Yevhenii Levchenko:

是的!


谢谢你的答复。是的,我们知道互换的当前价值。而我需要与昨天的值进行比较的结果。

 
Galim_V:

谢谢你的答复。是的,我们将知道互换的当前价值。而且我需要与昨天的值进行比较的结果。

将昨天的值保存在一个变量中,然后进行比较!:)

 
Yevhenii Levchenko:

将昨天的值保存在一个变量中,然后进行比较!:)

当你重新启动终端时,是否会被保存?还是你在说终端的全局变量

 
Galim_V:

当你重新启动终端时,是否会被保存?还是你在说终端的全局变量

不,它不会。要保存,你需要一个全局变量或保存到一个文件中。
 
Yevhenii Levchenko:
不,他们不会的。 你要么需要一个全局变量,要么保存到一个文件中,使它们得到保存。

我正在做一个信息面板,但我失去了源代码。在这样做的时候,避免了所有条目,使用了线人功能。决定恢复一切,并增加这个交换的问题。这就是为什么我提出这个问题。交换不会在历史上留下任何痕迹,而历史是由终端自己书写的吗? 但如果没有其他选择,只能写,我希望得到提示,因为我没有处理过文件和全局。考虑到我每天需要对20种乐器进行一次比较。谢谢你的时间。

 
Galim_V:

我正在做一个信息面板,但我失去了源代码。在这样做的时候,避免了所有条目,使用了线人功能。决定恢复一切,并增加这个交换的问题。这就是为什么我提出这个问题。交换不会在历史上留下任何痕迹,而历史是由终端自己书写的吗?但如果没有其他选择,只能写,我希望得到提示,因为我没有处理过文件和全局。 考虑到我每天需要对20种乐器进行一次比较。谢谢你的时间。

使用一个全局变量 更容易...文件更麻烦了...
 

在MT5上完成了这个指标(从MT4翻译过来的)。我昨天写了这篇文章。这对我来说很有效,但对客户来说就不那么好了。据我所知,这些问题是在指标以编程方式添加或删除其他指标时出现的。我责备指标释放 功能...在去初始化过程中,通过 ChartIndicatorDelete 将指标(除当前指标外)从图表中删除 ,然后通过 IndicatorRelease 释放句柄 该帮助指出。

IndicatorRelease()

Удаляет хэндл индикатора и освобождает расчетную часть индикатора, если ею больше никто не пользуется.
Функция позволяет удалять хэндл индикатора, если он больше не нужен, и таким образом позволяет экономить память. Удаление хендла производится сразу, 
удаление расчетной части индикатора производится через некоторое небольшое время (если обращений к ней больше нет). 

在初始化过程中,手柄被创建回来。而在OnCalculate中第一次计数时,指标又被添加到图表中。我在OnDeinit中添加了一个空循环,以增加一些延迟。我对这个解决方案没有信心。之前对我来说工作正常(虽然今天终端挂了一次),今天客户端开始工作正常(至少现在是这样)。

mt4上的算法工作正常(从未在那里挂掉)。mt5的不同之处在于,这里的指标是以编程方式添加的(而指标的计算值需要不断复制才能使用)。而在mt4中,他们只是复制缓冲区,用于可视化(Muwings和Zigzag...像 "以编程方式添加指标")。

你知道吗,这个问题可能与手柄的 删除和重新创建 有关(当参数改变时,去初始化和初始化紧随其后...)?有什么方法可以检查是否有这样的指标手柄?

 

归一化后我仍然得到非归一化的值 - MQL5

up    = NormalizeDouble((up == 0 ? 1 * point : up),_Digits);
down  = NormalizeDouble((down == 0 ? 1 * point : down),_Digits);
sum   = NormalizeDouble((sum == 0 ? 1 * point : sum),_Digits);
minus = NormalizeDouble((minus == 0 ? 1 * point : minus),_Digits);
if(index <= 65 && index >= 55) Print(index," ",up," ",down," ",sum," ",minus);

最不利的是1-05,该怎么做?

 

请告知如何解决在MT5 windows 10 X64上调用指标 的问题,我是这样做的。

#resource "\\Indicators\\MyIndicator.ex5"

handle=iCustom(NULL,0,"\Indicators\\\\\MyIndicator")。

以前没有#resource也能工作,后来有了#resource才开始工作,现在什么都不行了,产生了错误4804

原因: