错误、漏洞、问题 - 页 1933

 
fxsaber:
差异超过了1e-15。此外,num != Norm。它们是不同的数字,不是相同的数字。

我的MT4输出真,真,差0。;-)

 
Stanislav Korotky:

我的MT4输出真,真,差0。;-)

形成了一种无记载的区分MT4/5的方式。而MT5的比特率与此无关。

 
fxsaber:

形成了一种无记载的区分MT4/5的方式。而MT5的比特率与此无关。

此外,在mql4工作,在mql5甚至没有记录的操作前缀增量(++i)和减量(-k)。

Документация по MQL5: Основы языка / Операции и выражения / Арифметические операции
Документация по MQL5: Основы языка / Операции и выражения / Арифметические операции
  • www.mql5.com
Основы языка / Операции и выражения / Арифметические операции - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Alexey Viktorov:

除了在mql4中它是有效的,而在mql5中甚至没有记录的操作前缀增量(++i)和减量(-k)。

我没有看到一个问题

void OnStart()
{
  int i = 0;
  
  Print(i++ == 0); // true
  Print(++i == 2); // true
}
 
fxsaber:

形成了一种无记载的区分MT4/5的方式。而MT5的比特率与此无关。

这甚至不是MT4/5的区别,而是是否启用了#属性严格。

如果启用了,它们就会不同,如果没有,它们就不会。

有不同的NormalizeDouble 的实现!
 

在什么情况下可以将reason=0传递给指标中的OnDeinit?

 
fxsaber:
差异超过了1e-15。此外,Num != Norm。这些是不同的数字,不是相同的数字。

那么零度呢?从0到-14的度数总共是15位。程度为-15是第16度。我想是的。

 
Stanislav Korotky:

那么零度呢?从0到-14的度数总共是15位。程度为-15是第16度。我想是的。

看看DBL_MIN 与0相差多少位。

 

脚本的发布版本几乎比调试版本慢了3倍。

string  PositionGetString2( const ENUM_POSITION_PROPERTY_STRING  Property_id )
{
  return(PositionGetString(Property_id));
}

#define  TOSTRING(A) #A + " = " + (string)(A)

void OnStart()
{
  if (PositionSelect(_Symbol))
  {
    const ulong StartTime = GetMicrosecondCount();
    
    for (int i = 0; i < 1 e7; i++)
    {
      PositionGetString2(POSITION_SYMBOL);
      PositionGetString2(POSITION_COMMENT);
    }
    
    Print(TOSTRING(GetMicrosecondCount() - StartTime));
  }
}

玩的步骤

  1. 选择欧元兑美元进行调试,并在终端打开其图表。
  2. 在欧元兑美元上建立一个头寸。
  3. 在ME中按F5启动调试版,在日志中看到结果。
  4. 使用F7重新编译到ME - 这非常重要,否则EX5将被调试。
  5. 从终端运行Release脚本并查看记录的结果。
Debug-version结果

GetMicrosecondCount()-StartTime = 638537


发布版本结果

GetMicrosecondCount()-StartTime = 1746492
 

在将蜱虫导入自定义 的Tkc符号 时,Tkc文件无法读取。