エラー、バグ、質問 - ページ 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の違いでもなく、#property strictが有効になっているかどうかです。

有効化されれば別物になるし、そうでなければそうならない。

NormalizeDoubleの 実装は様々です!
 

インジケーターのOnDeinitにreason=0を渡すことができるのはどのような場合ですか?

 
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. デバッグ用にEURUSDを選択し、ターミナルでそのチャートを開きます。
  2. EURUSDで1ポジションを建てる。
  3. MEでF5キーを押してデバッグ版を起動し、ログで結果を確認します。
  4. F7でMEに再コンパイルする - これは非常に重要です、そうしないとEX5がデバッグされます。
  5. ターミナルからReleaseスクリプトを実行し、ログに記録された結果を確認します。
デバッグ版結果

GetMicrosecondCount()-StartTime = 638537


リリースバージョン結果

GetMicrosecondCount()-StartTime = 1746492
 

カスタム tkcシンボルに tickをインポートすると、tkcファイルが読めなくなる。