错误、漏洞、问题 - 页 1397

 
Ilya Malev:

其次,我们需要在其他指标和专家顾问系统中使用这个指标 的缓冲值。

而且有消息告诉我,如果你为计算做了一个缓冲区,就不可能通过iCustom获得它的值

顺便说一下,我不记得确切的情况,但似乎是有可能的。试一试吧。)
 
Anatoli Kazharski:
顺便说一句,我不太记得了,但我想你可以。试一试吧。)
即便如此,我有一打具有DRAW_NONE等属性的指标相互调用,然后我已经需要一些独立的子系统将所有工作指标的读数按鼠标指针位置分组在一个地方。:)
 
Ilya Malev:
即便如此,我有一打具有DRAW_NONE等属性的指标相互调用,然后我已经需要一些单独的子系统,将所有工作指标的读数按鼠标指针的位置分组在一个地方。:)
这种说法更严重。我们可以把它加入到服务台。))
 
如果你能通过iCustom获得像INDICATOR_CALCULATIONS这样的值,那么是的,你所需要做的就是让这些值出现在数据窗口。如果我从servicedesk那里得到答复,我将建议采用这一方案。
 
A100:
编译错误:'a'--不是静态成员 ,但这没关系。有什么区别?

//должен обращаться к функции, хотя бы потому что уж стоят скобки и тип, да еще a базового класса приватный
class A     { int a; };
class B : A { void a(); };
void B::a() {}
// здесь инлайнится, все правильно
class A     { int a; };
class B : A { void a() {} };
// так работает, видно проблема с компилятором
class A     {int h; void f(); };
class B : A {void a(); };
void B::a() {}
 

我不知道你怎么样,但我已经看到了几个编译器错误。

1)在继承的时候,它不区分函数和变量。

2)基类的变量是私有的,所以首先应该出现不可能访问私有成员的信息。

 
sigma7i:

我不知道你怎么样,但我已经看到了几个编译器错误。

1)在继承的时候,它不区分函数和变量。

2) 基类的变量是私有的,所以首先应该出现不可能访问私有成员的信息。

请举出一些例子。看看在代码格式 方面,哪些特殊情况会导致这样的问题,将是很有趣的。
 
Anatoli Kazharski:
给我一些例子。看看哪些案例在代码设计 方面有这样的问题是很有意思的。

我想我已经举过例子了。但我将把它说得更详细,使之更加清晰。

请注意,在A类的第三个例子中,我把变量名换成了 "h",这段代码可以编译(当然,如果你注释掉例子1和2),这证实了我的猜测。

//+------------------------------------------------------------------+
//|                                                           ds.mq5 |
//|                        Copyright 2015, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2015, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+



//должен обращаться к функции, хотя бы потому что уж стоят скобки и тип, да еще a базового класса приватный
class A     { int a; };
class B : A { void a(); };
void B::a() {}
// здесь инлайнится, все правильно
class A     { int a; };
class B : A {void a() {} };
// так работает, видно проблема с компилятором
class A     {int h; void f(); };
class B : A {void a(); };
void B::a() {}


void OnStart()
  {
    // c объектами работает правильно
  
    B variable;
    variable.a();   // ошибка доступа, здесь все нормально
    variable.a = 1; // ошибка доступа, как и следовало ожидать, здесь все нормально
  }
//+------------------------------------------------------------------+
 

情况:测试是在H1(我认为这很重要--我们谈论的是多期测试)。 测试器SeriesInfoInteger中的最后一个日线(D1)条,例如,2015.10.08。它给出了2015.10.05的数值(应该是2015.10.06,偏移量为2)。

这意味着与时间序列的创建相比,该指标在测试器中是滞后的。它明显发生在一个新的D1栏的开始。有人经历过这样的情况吗?我还不会模拟这个例子。

[删除]  
Ilya Malev:

情况:测试是在H1上进行的,测试器SeriesInfoInteger中的最后一个日线(D1)条给出了例如2015.10.08。它给出了2015.10.05的数值(应该是2015.10.06,偏移量为2)。

也就是说,与时间序列的构建相比,该指标在测试器中是滞后的。有人发生过这种情况吗?我还不打算模拟一个例子。

是的,在与TF一起工作时可能会发生这种情况,据我记得,只有在测试器中比现在的更老。数据还没有足够的时间来更新。也就是说,当H1是一个新的一天时,前一天是在D1这个新的一天的第一个刻度上。