記事"MQL5でのインディケーター の呼び方"についてのディスカッション

 

新しい記事 MQL5でのインディケーター の呼び方 はパブリッシュされました:

MQLプログラミング言語の新バージョンでは、 インディケーター扱いアプローチが変化しただけでなく、インディケーター作成の新しい方法があります。さらに、 インディケーターバッファーの取り組みがより柔軟になり、今では希望のインデックス方向を指定し、好きなだけインディケーター値を入手できます。本記事ではインディケーター呼び出しとインディケーターバッファーからのデータ検索の基本方法を 説明します。

MQL5ではインディケーターを呼び出す方法がいくつかあり、ほとんどがIndicatorCreate() と iCustom() 関数を使って実行されます。 さらに、 これらの関数はインディケーター ハンドルを戻すだけで、さらなるインディケーターの仕事はそれを通して行われます。 ではハンドルとは何か?どのようにIndicatorCreate()iCustom() 関数を扱うのか?そしてあなたのエキスパートがどのようにインディケーター データを入手するのか?これらの質問に本記事ですべて答えます。

作者: KlimMalgin

 
役に立つ記事だ。
 

良い++。

ありがとう。

 

説明してください。

"IndicatorCreate()を 使用したインジケータハンドルの取得 "では

配列を作成する

MqlParam params[];      // インジケーターのパラメーターを格納する配列

型を指定せずに、必要に応じて配列の型を変更する。

これはどのように機能するのでしょうか?どのような構造体にも使えるのでしょうか?既存の配列の型だけを変更することは可能ですか?

 
MqlParam型のパラメータ配列は、ハンドルを作成するときにのみIndicatorCreate()関数に必要である。何かを変更したい場合は、IndicatorReleaseを使って 現在のハンドルを「消滅」させ、新しいハンドルを作成する必要がある。移動中のインジケータ "エンジン・チェンジ "は提供されない。
 

しかし、記事の中では

   ***
   // スローMAの期間を設定する
   params[0].type         =TYPE_INT;
   params[0].integer_value=21;
   ***

とそれに続く

   ***
   ArrayResize(params,2);
   // ステップ
   params[0].type         =TYPE_DOUBLE;
   params[0].double_value = 0.02;
   ***
は何も削除されておらず、型が変わっている......。
 
ケータリングのレベルで考えてみよう。ウェイターがトレイに料理を載せ、あなたの注文を受ける。次にウェイターは別の客の料理を同じトレイに載せ、あなたの注文をその客に伝える。これは、あなたが他の客と同じ食事をすることを意味するのだろうか?
 

だから、違うディナーはウェイターのトレイにしか乗せられない。よし、実験してみよう。

int][double]のような型が混在した配列の予定はありますか?

 
Silent:

だから、違うディナーはウェイターのトレイにしか乗せられない。よし、実験してみよう。

int][double]のような型が混在した配列の予定はないのですか?

構造体を使いましょう。ヘルプの例 -https://www.mql5.com/ru/docs/basis/types/casting#casting_structure:

別の例では、カラータイプからRGB(Red,Green,Blue)カラー 表現を取得する独自の関数を構成する方法を示しています。これを行うには、サイズは同じで内部構成が異なる 2つの構造体を作成します。便宜上、構造体にRGB表現の色を文字列として返す関数を追加してみましょう。

#property script_show_inputs
input color          testColor=clrBlue;// テスト用の色を設定する
//--- RGB色表現のための構造体
struct RGB
  {
   uchar             blue;          // 青色コンポーネント
   uchar             green;         // グリーン・カラー・コンポーネント
   uchar             red;           // 赤色コンポーネント
   uchar             empty;         // このバイトは使用されない
   string            toString();    // 文字列として受け取る関数
  };
//--- 色を文字列として出力する関数
string RGB::toString(void)
  {
   string out="("+(string)red+":"+(string)green+":"+(string)blue+")";
   return out;
  }
//--- 組み込み型カラーを格納する構造体 
struct builtColor
  {
   color             c;
  };
//+------------------------------------------------------------------+
//| スクリプト番組開始機能|
//+------------------------------------------------------------------+
void OnStart()
  {
//--- RGBを格納する変数
   RGB colorRGB;
//--- カラータイプを格納する変数
   builtColor test;
   test.c=testColor;
//--- 2つの構造体の内容をコピーして変換する
   colorRGB=test;
   Print("color ",test.c," = ",colorRGB.toString());
//---
  }

Документация по MQL5: Основы языка / Типы данных / Приведение типов
Документация по MQL5: Основы языка / Типы данных / Приведение типов
  • www.mql5.com
Основы языка / Типы данных / Приведение типов - Документация по MQL5
 

構造体については多少理解していますが、配列に興味があります。

ありがとうございます。

 
Silent:

構造体についてはだいたい理解しているので、配列に興味があります。

ありがとうございます。

構造体を作り、この型の配列をタイプしてください。