MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 928

 
Seric29:

例えば、入力パラメータを宣言し、そのパラメータからグローバル変数を取り出して表示する必要があるのですが、問題があります。 入力パラメータは配列にすることができません。

入力変数の 場合は、グローバルな可視性を持っているので、どのコードセクションでも使用できます。

あるいはOnInit()セクションで一度配列に書き込み、後で配列を配列にコピー することもできますが、ここでは配列が同じである必要があります - 予備で配列を取りますが、バグを避けるために配列のインデックス番号を制御する必要があります - 空の配列値を使うかもしれません - コンパイラはエラーを生成しませんが、計算が誤っています

input int a1=1;
input int a2=2;
input int a3=3;

int ArrayOfInput[3];
int OnInit()
  {
   ArrayOfInput[0] =a1;
   ArrayOfInput[1] =a2;
   ArrayOfInput[2] =a3;
  return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
 // delete cx;
  }
//+------------------------------------------------------------------+
void OnTick()
  {
      int arr[3];
      ArrayCopy(arr,ArrayOfInput);
  }
//+------------------------------------------------------------------+
HH: 私はなぜか、代入演算子は同一の配列に対して機能すると思い込んでいました。おそらくクラスと混同したのでしょう。
 
Igor Makanu:

入力変数については、単純化することができます - それらはグローバルな可視性を持っており、任意のコードセクションで使用することができます。

またはOnInit()セクションで一度配列に書き込み、後で配列を配列にコピー することもできますが、ここでは配列が同じである必要があります - 予備で配列を取りますが、バグを避けるために配列インデックス番号を制御する必要があります - 空の配列値を使うこともできます - エラーにはなりませんが計算がおかしくなります

SZZ: なぜか、代入演算子は同一の配列に対して機能すると思っていました。おそらくクラスと混同していたのでしょう。

いいえもそのような私は(多分私はそれらを非常に良いしていないので、少しと悪いしようとしたが、限り、私はそれがコロンを通して処理する必要があるすべてのクラスにプラス動作しませんあなたが示したようにここでそうするのが良い)思ったクラスを通して多分必要ではありませんあなたが割り当てるために1行でした方法です。

 

こんにちは。

標準のアラートポップアップでタイムゾーンを 変更することが可能かどうか教えてください。

アラートの時刻をターミナルの時刻と同期させたい(ターミナルとアラートウィンドウで時刻が異なる場合)。可能なのでしょうか?
 
mql4では、int(その他の戻り値)とvoid(手続き関数)を同じように呼び出せるのですが、どうしてでしょうか?
 

質問です。等しくないステップを持つすべての列挙 値をループで処理するにはどうすればよいですか?


enum タイプ {

1=11である。

2=12である。

3=15である。

4=22です。

ファイブ=27

};

 
The_Sheikh:

質問です。等しくないステップを持つすべての列挙 値をループで処理するにはどうすればよいですか?


enum タイプ {

1=11である。

2=12である。

3=15である。

4=22である。

ファイブ=27

};

no, sizeof() は enumhttps://docs.mql4.com/ru/basis/types/integer/enumeration では動作しません。

で、型変換をすると定数名が消えてしまいます。

enum Types { One=11, Two=12, Three=15, Four=22, Five=27,Six = 111,Seven = 222};
enum Types_abc { a, b, c, d, e,f,g};
void OnStart()
  {
   int sz = sizeof(Types);
   Print("sz = ",sz);
   Types z = Two;
   Types_abc x = b;
   Print("z = ",EnumToString(z)," , x = ",EnumToString(x));
   x = (Types_abc)z;
   Print("z = ",EnumToString(z)," , x = ",EnumToString(x));
  }

2019.08.03 10:52:13.288 tst EURUSD,H1: sz = 4

2019.08.03 10:52:13.288 tst EURUSD,H1: z = Two , x = b.

2019.08.03 10:52:13.288 tst EURUSD,H1: z = Two , x = Types_abc::12


 
Elena Baranova:

こんにちは。

アラート付きの標準ポップアップでタイムゾーンを変更することは可能かどうか教えてください。

アラートの時刻をターミナルの時刻と同期させたい(ターミナルとアラートウィンドウで時刻が異なる場合)。可能な のでしょうか?
Alertは、PCのローカルタイムを表示します。端末の時刻に合わせるには、コンピュータの時刻を 変更すればよいのです。
 
Seric29:
なぜmql4ではint(その他の戻り値)とvoid(手続き型関数)の関数を同じように呼び出せるのですか?

というのは、「オーバーロード」と呼ばれるものです。

Документация по MQL5: Основы языка / Функции / Перегрузка функций
Документация по MQL5: Основы языка / Функции / Перегрузка функций
  • www.mql5.com
Обычно в названии функции стремятся отобразить ее основное назначение. Читабельные программы, как правило, содержат разнообразные и грамотно подобранные идентификаторы. Иногда различные функции используются для одних и тех же целей. Например, рассмотрим функцию, которая вычисляет среднее значение массива чисел двойной точности, и такую же...
 

こんにちは。イルミネーターインジケーターからの入力信号をコードでキャッチするには?チャート上にローソク足を描き、エントリーのためのアラートを出力するインジケーターです。

簡単に言うと、このインジケータのロボットを書きたい のです。

 
Alexey Viktorov:
Alertは、PCのローカルタイムを表示します。端末の時刻と同じにするには、コンピューターの時刻を変更すればよいのです。

ありがとうございます )これしかないのか、Alertで時刻を設定する方法は他にないのか。また、MQL4の標準のAlert()関数の 代わりに、アラート時刻をターミナル時刻に設定できるものはありますか?