错误、漏洞、问题 - 页 2291

 
Alexey Navoykov:

不可能以编程方式确定哪个对象更高或更低。

也许值得关注一下对象在模板中的存储顺序。我认为一个物体在那里存放得越晚,它的地位就越高。
 

如果.ex5库位于所有MetaTrader 5客户终端的公共目录中(Common\MQL5\Libraries),则无法加载,如文件 中所述--"按以下顺序搜索导入的EX5库:第3点"

#import "Test.ex5"
        void f();
#import
void OnStart()
{
        f();
}

结果:无法打开文件'Test.ex5'。

而'Test.ex5'在Common\MQL5\Libraries文件夹中

 
fxsaber:
也许值得关注一下对象在模板中的存储顺序。我认为一个物体在那里存放得越晚,它的地位就越高。
为了将一个对象置于所有其他对象之上,无论其存储的顺序如何,你必须首先使其在所有时间段内不可见,然后再使其可见。
 
Tetyana Shcherba:

我不知道我是否写对了地方,但在我的信号中,它是用来监测EA的性能的,出现了一个警告,这与现实完全无关。

""80%的收益是在16天内取得的。这是该信号总寿命376天的4%。""


这怎么可能呢,还是我误解了什么?

我昨天也注意到了这一点。他们一定是在修改配方。
 

在优化过程中返回INIT_PARAMETERS_INCORRECT的通道,在日志中有以下条目

Core 3  pass 90 tested with error "incorrect input parameters" in 0:00:00.000
Core 3  pass 91 tested with error "incorrect input parameters" in 0:00:00.125
Core 3  pass 92 tested with error "incorrect input parameters" in 0:00:00.141


同时,由于某种原因,它们出现在优化结果中


你可以在截图中看到,它们是按利润排序的,但不正确的通行证并不屈从于这种排序。因此,当我向下移时,我看到的是不正确的传球,而不是消极的传球。据称,数值为零表示没有负数的通过。我必须向下滚动才能找到这些非常消极的通行证,除非我被这种GUI行为所误导。


以前,OnInit和ExpertRemove的空值不能显示在优化结果中。而且,即使它们被显示出来,它们在表格中的行也被标为红色。有可能使这种行为恢复吗?


当导出XML时,是否会传递表中的某些行是不正确的结果的信息?如果我理解正确的话,这个正确性标志被储存在尚未打开的opt-format 中。

如果能在OnTesterPass中得到它,那就更好了。

关于交易、自动交易系统和策略测试的论坛

虫子,虫子,问题

fxsaber, 2018.09.13 06:16

在优化的最后,测试人员给出了这样的结论
Tester  optimization finished, total passes 691200 (successful 673286 passes)

专家是已经到达终点的通行证。其余的都被ExpertRemove打断了。


测试员根据哪个标志对从代理处收到的传球进行分类?我如何在OnTesterPass中读取这个标志?


而在优化图表中,最好不要显示不正确的传球。


 

关于交易、自动交易系统和交易策略测试的论坛

虫子,虫子,问题

fxsaber, 2018.09.13 06:16

在优化结束后,测试人员输出以下内容
Tester  optimization finished, total passes 691200 (successful 673286 passes)

专家是已经到达终点的通行证。其余的都被ExpertRemove打断了。


我不明白为什么泰斯特对成功--通行证只字不提

Tester  optimization finished, total passes 1800

有ExpertRemove中断的通行证,但最后的反应完全不是上面引文中看到的那样。

 
Slava:
要将一个对象置于所有其他对象之上,不管它的顺序如何,你必须首先使它在所有时间框架上不可见,然后再使它可见。
我已经在上一页写了这个问题。问题是不同的:那么我如何以编程方式确定这一点?
 
Alexey Navoykov:
我已经在最后一页写了这个问题。问题是不同的:那么你如何以程序化的方式确定这一点?
没有
 
编译错误
typedef void (*fn1)();
void f1() {}
void g()
{
        fn1 f = f1; //(1) нормально
}
/*...*/
typedef void (*fn2)();
void f2() {}
void OnStart()
{
        fn2 f = f2; //(2) Error: 'f2' - type mismatch
}

这有什么区别呢!?

 
Slava:
没有
// В комментарии к чарту выводит текущую Z-глубину всех графических объектов чарта

#define private public
  #include <fxsaber\Expert.mqh> // https://www.mql5.com/ru/code/19003
#undef private

#define  STRING_END "\r\n"
#define  OBJECT_NAME "name="
#define  OBJECT_BEGIN ("<object>" + STRING_END)

int GetZObjects( string &Names[], const long Chart_ID = 0 )
{
  const int Size = ArrayResize(Names, ObjectsTotal(Chart_ID));
  string Template = EXPERT::TemplateToString(Chart_ID);  
  
  for (int i = 0; i < Size; i++)
  {
    Template = EXPERT::StringBetween(Template, OBJECT_BEGIN);
    
    Names[i] = EXPERT::StringBetween(Template, OBJECT_NAME, STRING_END);
  }
  
  return(Size);
}

void OnChartEvent( const int id, const long&, const double&, const string& )
{
  if ((id == CHARTEVENT_OBJECT_CHANGE) ||
      (id == CHARTEVENT_OBJECT_CLICK) ||
      (id == CHARTEVENT_OBJECT_CREATE) ||
      (id == CHARTEVENT_OBJECT_DELETE) ||
      (id == CHARTEVENT_OBJECT_DRAG) ||
      (id == CHARTEVENT_OBJECT_ENDEDIT))
  {
    string ZObjects[];
    
    string Str = NULL;
    
    for (int i = GetZObjects(ZObjects) - 1; i >= 0; i--)
      Str += (string)i + " Z: " + ZObjects[i] + "\n";
      
    Comment(Str);
  }
}