错误、漏洞、问题 - 页 3153

 

错误--指示器的幻象代码

有一个指标,有一个研究人员正在研究它。指标的代码被改变。它被重新编译,在图表上可以清楚地看到指标变化。专家顾问在测试器中运行,但看起来代码没有被改变。其结果是一样的。

你甚至可以删除指标的ex5。你可以继续在测试器中运行专家(这个被删除的ex5在测试器中被清楚地标出),就像什么都没发生一样。它从哪里获得执行的文件,从 ether????

如果你重新启动终端并在之后运行测试器,它将看到新的代码。(如果缺少ex5,则抛出一个错误)


我尝试了不同的方法来使它看到新的代码--我重新登录终端(没有重启),并重新编译了espert本身。在测试器中改变了专家参数。没有任何帮助,除了重新启动终端

 
Max B #:

错误--指示器的幻象代码

有一个指标,有一个研究人员正在研究它。指标的代码被改变。它被重新编译,在图表上可以清楚地看到指标变化。专家顾问在测试器中运行,但看起来代码没有被改变。其结果是一样的。

你甚至可以删除指标的ex5。你可以继续在测试器中运行专家(这个被删除的ex5在测试器中被清楚地标出),就像什么都没发生一样。它从哪里获得执行的文件,从 ether????

如果你重新启动终端并在之后运行测试器,它将看到新的代码。(如果缺少ex5,则抛出一个错误)


我尝试了不同的方法来使它看到新的代码--我重新登录终端(没有重启),并重新编译了espert本身。在测试器中改变了专家参数。除了重新启动终端,没有任何帮助。

你已经回答了你自己的问题。如果你删除了一些东西,而它又出现了,这意味着它被保存在某个地方)))。当你启动终端时,整个环境从最后一个状态的配置文件中提取。这就像你在终端窗口上用预设的参数重置了所有的专家顾问和指标。在你的情况下,专家顾问需要重新编译,或者可以将其删除并重新加载。它(EA)已经提取了旧版本的手柄和数据,并没有重新计算它们。

 
Valeriy Yastremskiy #:

你自己已经回答了你自己的问题。如果你删除了一些东西,而它又出现了,那么它一定是储存在某个地方)。当你加载终端时,整个环境都是从最后一个状态的配置文件中提取的。这就像你在终端窗口上用预设的参数重置了所有的专家顾问和指标。在你的情况下,专家顾问需要重新编译,或者可以将其删除并重新加载。它(EA)已经提取了旧版本的手柄和数据,并没有重新计算它们。

终端中的专家顾问没有挂在任何东西上,只有策略测试器才让它进入。专家顾问本身有一个deinit,其中我有IndicatorRelease(handle_mtf_Sys);我试着重新编译EA--它没有帮助。 它仍然以某种方式接受了幽灵代码

[删除]  
Max B #:

终端中的专家顾问不挂任何东西,只有策略测试器允许挂。专家顾问本身有一个deinit,我在其中IndicatorRelease(handle_mtf_Sys);我试着重新编译专家顾问--这没有帮助。 它仍然以某种方式采取幽灵式代码

在测试器中,除了设置标签,还有一个设置标签。检查它们,也许有旧的默认值。如果这也不是问题,那么是的,这是一个错误,我在大约2个月前也有同样的情况,然后就消失了,我不知道这是什么原因。
 
Max B #:

终端中的专家顾问不挂任何东西,只有策略测试器允许挂。专家顾问本身有一个deinit,其中我有IndicatorRelease(handle_mtf_Sys);我试着重新编译EA--这没有帮助。 它仍然以某种方式采取幽灵般的代码

你先编译指标,然后再编译EA? 而EA需要旧指标的数据?如果是这样,那一定是个错误。专家顾问没有挂起,它在终端的图表窗口中工作。而正常的关闭会记住并缓存所有图表的状态。也许甚至有实体文件。不知道。但从这个错误来看,这是有可能的。

如果你删除了一个外挂,但是有一个mcl文件,那么所有缺少外挂的mcl文件都会在终端加载时被编译。这是在没有meta-editor的情况下编译和获得mcl文件exeshes的方法之一--重新加载终端。

 
Wizard #:
在策略测试器中,除了 "设置 "选项卡外,还有一个设置选项卡。检查一下,也许旧的数值是默认存在的。如果不一样,那么是的,这是一个错误,2个月前,我也是这样,然后就消失了,我不知道这是什么原因。

这些参数被记在那里--但它们不会改变,在这种情况下也不重要。改变的是指标内部的代码。总的来说,这个错误是不愉快的--每次在运行测试器之前,终端都要重新加载。

Valeriy Yastremskiy#:

你先编译指标,然后再编译专家顾问,而专家顾问则是采取旧指标的数据?如果是这样,那一定是个错误。专家顾问没有挂起,它在终端的图表窗口中工作。而正常的关闭会记住并缓存所有图表的状态。也许它甚至有实体文件。不知道。但从这只虫子来看,可能是这样。

问题是,我们的EA并没有坐在任何图表上。它只在选定的策略测试器中。我关心的是在策略测试器中的调试,而不是在终端中的调试。它不应该被缓存在任何地方。

当启动策略测试器时,应该加载最新编译的指标和EA版本,而不是未知来源的幻影。这有意义吗?

 
Max B #:

这些参数被记在那里--但它们不会改变,在这种情况下也不重要。改变的是指标内部的代码。总的来说,这个错误令人不快--每次在启动测试器之前,我都要重新启动终端。

问题是,我们的EA并不属于任何图表。它只在策略测试器中出现。我关心的是在策略测试器中的调试,而不是在终端中的调试。它不应该被缓存在任何地方。

当启动策略测试器时,应该加载最新编译的指标和EA版本,而不是未知来源的幻影。这有意义吗?

制作一个可复制的错误例子,并将其与代码和动作顺序一起贴在这里。也许开发者会注意到)。
[删除]  

我想在EA输入 设置窗口做一个货币对和工具(自有货币对)的下拉列表。我怎样才能做到这一点呢?

第二个问题:怎么写才是正确的呢?

像这样。

double stop = SymbolInfoDouble(_Symbol, SYMBOL_ASK) - NormalizeDouble(100*_Point, _Digits);

或者像这样。

double stop = NormalizeDouble(SymbolInfoDouble(_Symbol, SYMBOL_ASK) - 100*_Point, _Digits);

???

第三个问题。有可能连续2-3次将价格正常化吗?这不会影响工作吗?

我知道这些问题很傻,但目前困扰我的是这些小事,即使这两个方案都可以。需要知道怎样才能做好它。

 
Wizard #:

我想在EA输入 设置窗口做一个货币对和工具(自有货币对)的下拉列表。我怎样才能做到这一点呢?

第二个问题:怎么写才是正确的呢?

像这样。

或者像这样。

???

第三个问题。有可能连续2-3次将价格正常化吗?这不会影响工作吗?

我知道这些问题很傻,但目前困扰我的是这些小事,即使两个选项都能用。需要知道怎样才能做好它。

如果可能的话,应该避免使用这个NormalizeDouble结构,它的处理量很大。

[删除]  
Vitaly Muzichenko #:

如果可能的话,应该避免使用这种NormalizeDouble结构,它的处理量很大。

明白了。如果我不想使用CSymbolInfo类的NormalizePrice函数(如果可能的话,我尽量避免使用库),是否有其他选择?

Документация по MQL5: Стандартная библиотека / Торговые классы / CSymbolInfo
Документация по MQL5: Стандартная библиотека / Торговые классы / CSymbolInfo
  • www.mql5.com
CSymbolInfo - Торговые классы - Стандартная библиотека - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5