エラー、バグ、質問 - ページ 2074

 

ボトムウィンドウでインジケーターを使用する場合、オートスケーリングが正しく動作しない。

データウィンドウに 2 つのバッファが必要で、1 番目のバッファだけが描画に参加し、2 番目のバッファが "DRAW_NONE" タイプの場合、描画せずに、スケーリングは 2 番目のバッファで行われるべきではありませんが (2 番目のバッファの値は最初のバッファよりも大きい)、スケーリングが行われます (DRAW_NONE" タイプのバッファ).

最初のバッファは小数点以下6桁の精度です(例:-0.0001249 ACインジケータ)。2番目のバッファには-2, -1,0,1,2 (アナログ - no, undefined, yes, など)の値が格納されています。

削除済み  
SEM:

ボトムウィンドウでインジケーターを使用する場合、オートスケーリングが正しく動作しない。

データウィンドウに 2 つのバッファが必要で、1 番目のバッファだけが描画に参加し、2 番目のバッファが "DRAW_NONE" タイプの場合、描画せずに、スケーリングは 2 番目のバッファで行われるべきではありませんが (2 番目のバッファの値は最初のバッファよりも大きい)、スケーリングが行われます (DRAW_NONE" タイプのバッファ).

最初のバッファは小数点以下6桁の精度です(例:-0.0001249 ACインジケータ)。2番目のバッファには-2, -1,0,1,2 (アナログ - no, undefined, yes, など)の値が格納されます。

新しいビルドで修正する予定です。
 

なぜコンパイラは沈黙しているのか?

enum   ENUM_FILTER      {off,zero,model,main,fast,slow,upper,lower};

void OnStart()
{

double zero=5;//Почему компилятор молчит?
int d=(ENUM_FILTER)model;
int e=(ENUM_FILTER)zero;
Print("d=",d," zero=",zero," e=",e);
}

2017.11.23 16:16:53.518 test EURCHF,H1: d=2 zero=5.0 e=5


列挙を宣言するときに名前付き定数を 作り、"zero"=1という名前がグローバルレベルを占めたのでは?
 
Kirill Belousov:

なぜコンパイラは沈黙しているのか?

同じ理由です。

enum ENUM {i = 5};

void OnStart()
{
  int i = i + 1;
  
  Print(i);   // 6
  Print(::i); // 5
}
使用方法 ::.
 
fxsaber:

同じ理由です。

使用方法 ::.

ありがとうございます。

:: enumが機能します。また、OnStart()の内部でenumを指定しても動作します。

ただ、機能としてなら理解できるんですけどね。ヘルプにも記載されています。

しかし、ここでのゼロは初期化された定数である。これらは別物だと思っていました。

なぜコンパイラは、そのゼロの名前がグローバルコンテキストですでに使われているという警告を出さないのでしょうか?

ヘルプのどこに書いてあるのですか?それとも非正規品?

 
Kirill Belousov:

なぜコンパイラは、グローバルコンテキストでゼロがすでに使用されているという警告を生成しないのでしょうか?

バグです。もし、enumではなく、変数であった場合、「'xxx'の宣言はyyy行目のグローバル宣言を隠す」と生成されるでしょう。SDに書き込む。

MQL5(4)-вопрос. Точка входа.
MQL5(4)-вопрос. Точка входа.
  • 2017.04.23
  • www.mql5.com
Всем привет. Приступил к изучению языка MQL5. Пока только прочитал "Основы языка" из документации...
 
Alexey Kozitsyn:
新しいビルドで修正される予定です。
情報提供ありがとうございました
 
fxsaber:

欠陥がある。もし、enumではなく、変数であった場合は、「'xxx'の宣言は、yyy行目のグローバル宣言を隠す」と返されるでしょう。SDに書き込む。

SDで書きました。

また、OnStart()の中にenumがある場合を考えてみます。

警告も発生しない。

文脈との関係は?ここでは、すべてが1つの関数の中で行われます...

enumからの定数名が占有されているかどうかのチェックが全くされていないことが判明しました。チェックの前にコードで置き換えています。そう思われますか?
 
Kirill Belousov:

SDは書きました。

また、OnStart()内のenumの場合を考えてみます。

警告メッセージも発生しない。

文脈との関係は?ここでは、すべてが1つの関数の中で行われます。

enumからの定数名は、占有されているかどうか全くチェックされないことが判明しました。チェックの前にコードで置き換えています。そんな風に見えますか?

すでにSDに書き込まれていますね。

 

EAを書いているところです。
MT5で最適化を有効にすると、ブルースクリーンW10x64 b1653が繰り返し表示される。
このような現象に直面したことのある方はいらっしゃいますか?
その理由は何でしょうか。