错误、漏洞、问题 - 页 1809

 
fxsaber:
没有检查。
datetime NewTimeCurrent( void )
{
  static ulong PrevStartTime = GetMicrosecondCount();
  static datetime PrevTimeCurrent = TimeCurrent(); // TimeTradeServer()
  
  const datetime NewTimeCurrent = TimeCurrent(); // TimeTradeServer()
  const ulong NowTime = GetMicrosecondCount();
  
  if (PrevTimeCurrent < NewTimeCurrent)  
  {
    PrevTimeCurrent = NewTimeCurrent;
    
    PrevStartTime = NowTime;
  }
  
  return(PrevTimeCurrent + (datetime)((NowTime - PrevStartTime) / 1000000));
}
谢谢,但我认为这样的准确性没有任何意义,特别是由于时间无论如何都是 "不真实的",而是近似的,并将取决于许多因素。确切地说,我们需要有可能从服务器上获得时间,即如果我设置SymbolInfoDouble( _Symbol, SYMBOL_SESSION_TIME_INTEREST ),那么我可以立即获得时间,例如用SymbolInfoInteger( _Symbol, SYMBOL_SESSION_TIME_INTEREST )(精度为毫秒)。那你就会好起来的!
 
fxsaber:
你可以说得更确切些。例如,你可以通过查询SymbolInfoTick(+CopyTicks)来运行所有符号。从那里,划出以毫秒为单位的时间。我只是不明白它能有什么实际用途。

这很简单--时机!这都是为了它!现在有很多数据可以利用:蜱虫、情绪、玻璃。毫秒级的时间只适用于蜱虫!其他数据的到达时间如何?玻璃没有这个功能。感情也没有!相应地,如果我们把所有的数据收集在一起,我们将无法同步它们!"。不可能做一个复杂的分析!我不明白为什么开发商不适当地关注它。他们有数据,但不可能正确地使用这些数据!这就是我们的工作。因此,我们必须做一些东西,但事实证明,即使是 "拐杖",也并不总是能正常工作。

 
TimeCurrent() 的错误已经被修复,他们说今天会在MQ-Demo上出现。
 
fxsaber:
TimeCurrent的毫秒级类似物早就该出现了,它在GUI中的反映也是如此。
+1.但对于我上面描述的数值,最好是做一个单独的取数选项。
 
Alexey Kozitsyn:
TimeCurrent()的错误已经被修复,他们说今天会在MQ-Demo上出现。
把它作为一项规则就好了
 
fxsaber:
把它作为一项规则就好了
值得商榷,因为除了应用程序的创建者,没有人会理解任何东西。我认为详细的描述已经足够了。
 

编译错误:即使在之前声明,也不能在之后定义任何函数

int f(); //объявление
static int i1 = f(); //Error: 'f' - function must have a body
int g()
{
static int i2 = f(); //нормально //даже если нет объявления
    return i2;
}
void OnStart()
{
    g();
}
int f() { return 0; }
 
A100:

编译错误:你不能在后面定义一个函数,即使前面有一个声明。

int f(); //объявление
static int i1 = f(); //Error: 'f' - function must have a body
int g()
{
static int i2 = f(); //нормально //даже если нет объявления
    return i2;
}
void OnStart()
{
    g();
}
int f() { return 0; }

对我来说是有意义的。

但为什么这里没有错误,就不清楚了。

int f(); //объявление
static int i1 = f(); //Error: 'f' - function must have a body
int g()
{
static int i2 = f(); //нормально //даже если нет объявления
    return i2;
}

class A
{
public:  
  A() { f(); }
};

A a;


void OnStart()
{
    g();
}
int f() { return 0; }
 
fxsaber:

在我看来是合乎逻辑的。

但为什么这里没有错误,并不清楚。

只有在发生某种碰撞的情况下,错误才是合理的。如果一切都做得正确--不必要的错误会带走灵活性

class A; //не зря же такую запись придумали
 
他们又做错了什么。

编译于1531版。在启动时,我得到了。

2017.02.16 18:55:19.101 MQL5 'TradePanel.ex5'有较新的不支持的版本,请更新您的客户终端

好在这不是在一个真实的账户上。