MetaTrader 5策略测试器:缺陷,缺陷,改进建议 - 页 63

 
fxsaber:

在点击 "停止 "之前,我在日志和优化表中看到,错误的传球已经被计算在内。然后我按下停止键,因为继续下去没有任何意义。

我误解了这个问题。

是的,作为一项规则,你应该在前一个优化中至少按一次停止。但只要你打出一个错误的优化,接下来所有的优化也会变得错误(我不再改变时间间隔了)。


也许有人会连接到重播。奇怪的是,它对你不起作用,但对我来说,它在一个干净的终端上播放得很快。

在按下停止键的情况下准确地播放。

理解它

 
Slava:

准确无误地按下了停止键,进行了复制。

处理它

为了抓到难以捉摸的乔,把自己吊起来。

 

经常发生的情况是,你开始进行优化,却忘记了考虑一些事情。你必须停止,纠正,并完全按照你原来的想法开始。

所以,这种错误的启动优化的 变体是以不必要的缓存的形式挂在那里,在缓存列表中在你眼前闪烁,等等。


我建议你考虑一下这个选项。如果停止按钮被点击了,在旁边显示一个X,点击后就会删除这个垃圾缓存条目。

搜索字符串是:Uluchshenie 008。
 

当在图表注释中打开一个单通道图表时,有一个很大的要求,不仅要给出EA数据,还要给出相应的tst文件的名称。

优化图表 有类似的要求。至少要在某处注明opt-file的名称。

搜索字符串:Uluchshenie 009。
 

我已经很久没有正常使用MT5的策略测试器了。

在今天之前,我能够在我的本地CPU核心上使用2280版本并得到正确的结果。

部署在局域网上的远程CPU核心的测试器代理总是被迫升级到2280之后的错误版本,导致所有远程测试器代理返回不正确的结果。


所以在很长一段时间里,我不得不耐心等待在本地计算机上进行优化,而部署在局域网上的大量计算能力却被浪费了。

我非常希望metaquotes在新的发布版本中修复了bug,使策略测试器成为至少可以使用的工具。

而今天我终于得到了2340版本。

然后我发现,即使是本地CPU核心上的优化任务也没有得到正确的结果。


很抱歉,我没有把我的帖子从英语翻译成俄语,因为我担心软件的翻译质量不好。


 
tickfenix:

然后我发现,即使是本地CPU核心上的优化任务也没有得到正确的结果。

这个主题的最后几页是专门讨论这个问题的。开发人员昨天设法重现了这个错误,并正在修复它。

 
fxsaber:

这个主题的最后几页一直在讨论这个问题。开发人员昨天设法重现了这个错误,并正在努力修复它。

很高兴听到这个消息!现在我开始祈祷。

 
fxsaber:

谢谢你的帮助

不禁止

 

我有一个用C#编写的DLL。它昨天还在工作!

今天,当试图运行这样一个EA时(简化到最小)。

#import "core.dll"

int OnInit() {
   Class1::Inc();
   return(INIT_SUCCEEDED);
}

在日志中给出了答案。

2020.02.22 16:29:16.925 Tester  file C:\Program Files\MetaTrader 5\MQL5\Libraries\core.dll.ex5 open error [2]

显然,问题是由于某些原因,ex5文件((((,被搜索到的是

 

你好,很抱歉没有用俄语发帖,因为我不懂这种语言。


我的帖子与ingram发布的DLL问题有关。 我刚刚更新到MetaTrader 2340,我注意到它破坏了Strategy Tester自定义C++ DLL加载我有一个使用自定义DLL的EA,由于Strategy Tester无法加载DLL,它停止了工作。在2340版本之前,一切工作都很正常。我正在使用可视化模式。

我用test.dll写了一个简单的EA来重现这个错误。测试DLL只输出一个函数,即 "void __stdcall test(int & x)"。

当我试图在策略测试器中运行该EA时,我得到这个错误。

2020.02.21 22:57:17.607 测试器文件C:\Users\Luis\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\MQL5\Experts\Luis\tests\TestExpert\TestDLL.dll.ex5打开错误[2] 。

以下是EA的代码。

#property copyright "Copyright 2019, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"


#import "TestDLL.dll"
void test (int& x);
#import

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   int p = 0;
   test(p);
   
   Print (p);
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   

这里是DLL代码(C++)。


#define _DLLAPI extern "C" __declspec(dllexport)

_DLLAPI void __stdcall  test(int & x)
{
    x = 25;
    return;
}


BOOL APIENTRY DllMain( HMODULE hModule,
                       DWORD  ul_reason_for_call,
                       LPVOID lpReserved
                     )
{
    switch (ul_reason_for_call)
    {
    case DLL_PROCESS_ATTACH:
    case DLL_THREAD_ATTACH:
    case DLL_THREAD_DETACH:
    case DLL_PROCESS_DETACH:
        break;
    }
    return TRUE;
}

我附上了再现这个问题的样本EA。如何解决这个问题?


谢谢

附加的文件:
TestExpert.zip  19 kb
原因: