初心者の方からの質問 MQL5 MT5 MetaTrader 5 - ページ 185

 
Vikon:

こんにちは。

5に変換しようとしているのですが、未だに構文のロジックが理解できません。

double i= iHigh(Symbol(),0,1); をインジケータ4からmql5へ変換する方法です。

まだ何とも言えません。

感謝

double i[]; CopyHigh(Symbol(),PERIOD_CURRENT,0,1,i).Double(i)(i)です。
 
pronych:
double i[]; CopyHigh(Symbol(),PERIOD_CURRENT,0,1,i).Double(i)(i)です。

いや、mql4のように、アラートで高い値を出すのは無理です

double i= iHigh(Symbol(),0,1)とする。

アラート(i)。

そして、私が理解しているように、最大値を持つintバーの配列を私に提供します。

私の理解では、この2つの文字列は、どんなレベルのプログラマーにとっても明確であり、どのようにmql5に変換するのかが問題です。

 
Vikon:

いや、mql4のように、アラートで高い値を出すのは無理です

double i= iHigh(Symbol(),0,1)とする。

アラート(i)。

そして、私が理解しているように、最大値を持つintバーの配列を私に提供します。

この2つの文字列は、どんなレベルのプログラマでも理解できるものですが、これをどうやってmql5に変換するのか、これが私の理解する上での難題です。

これはヘルプからです
int  CopyHigh(
   string           symbol_name,      // имя символа
   ENUM_TIMEFRAMES  timeframe,        // период
   int              start_pos,        // откуда начнем 
   int              count,            // сколько копируем
   double           high_array[]      // массив для копирования максимальных цен
   );

すべて正しくあなたはアドバイスされていますが、アラートのバーがゼロでない場合は、2つのバッファ(またはあなたが適用する必要があるいくつ)コピーする必要があります。

double i[];
ArraySetAsSeries(i,true); // массив как таймсерия
CopyHigh(Symbol(),PERIOD_CURRENT,0,2,i);
Alert(i[1]);
 
lewvik:
これはヘルプからです

アラートのバーがゼロでない場合のみ、2つのバッファをコピーする必要があります(または、適用する必要がある数だけ)。

正常に動作しています。感謝

 

こんにちは。

インジケーターについての質問です。私は、4つのMACDタイムフレームを任意のタイムフレームで使用するMACDインジケーターを書きたいと思って います。

そこで質問です。

ハンドルは4本(各時間軸)か1本か、どちらを宣言すればいいのか。

もしあれば、4つの時間枠のコード実行中にパラメータを変更する可能性があります。

ハンドルは関数にロールインして、与えられた時間枠のコードで呼び出すことができるかもしれません。

 
どこかに「EAが遅くなる最も一般的な理由」みたいな記事ないかなぁ?テスターのEAが最初は飛ぶだけで、進めば進むほど遅くなるのはなぜなのか、理解しようとしています。そこまでクリティカルになるような開発段階ではない(基本的な機構やツールの開発には十分な速度がある)。でも、1週間以上かかると、それ以降はスピードがゼロになりがちなので、やはり違和感がありますね。
 
Lone_Irbis:
どこかに「EAが遅くなる最も一般的な理由」みたいな記事ないかなぁ?テスターのEAが最初は飛ぶだけで、進めば進むほど遅くなるのはなぜなのか、理解しようとしています。そこまでクリティカルになるような開発段階ではない(基本的な機構やツールの開発には十分な速度がある)。しかし、1週間以上のセグメントを取る意味がないのはやはり不便で、それ以降はすでに速度がゼロになる傾向にあるからです。
テスト終了までに増加する全履歴の計算を伴う指標を使用することがほとんどです。
 
Lone_Irbis:
どこかに「EAが遅くなる最も一般的な理由」みたいな記事ないかなぁ?テスターのEAが最初は飛ぶだけで、進めば進むほど遅くなるのはなぜなのか、理解しようとしています。そこまでクリティカルになるような開発段階ではない(基本的な機構やツールの開発には十分な速度がある)。しかし、1週間以上セグメントをとっても、それ以降はすでに速度がゼロになりがちなので、意味がないのはやはり不便です。
代替案として:テスト期間を2つに分け、別々にテスターで実行する。こうすることで、指定された期間、入力への信号がちょうど少なくなったかどうかを判断することができる。
 
zfs:
テスト終了までに増加する全履歴の計算を伴う指標を使用することがほとんどです。

今のところ、外部インジケータを一切使用していません。でも、履歴をもとにかなり多くの計算をしていますね。しかし、分析するローソク足の最大数に制限があるようで、それらが理由なら、最初から遅くなるのではなく、徐々に遅くなるのはなぜなのか不明です(常に現在から間隔をとっているようです)。

 
Lone_Irbis:

今のところ、外部インジケータを一切使用していません。でも、履歴をもとにかなり多くの計算をしていますね。ただ、分析するローソク足の最大数に制限があるようで、それが理由なら、最初から遅くなるのではなく、徐々に遅くなる理由がよくわからない(常に今この瞬間からセグメントをとっているようだ)。

そして、「歴史に基づいたかなりの計算」がダイナミックな配列に 加算されるのですね。
理由: