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

 
barabashkakvn:

こんにちは。

1.記事の最後にアーカイブがないため、"Blau_Ergodic "インジケータを使用できないのですが、どうしたらいいですか?ここで、インクルードファイル「WilliamBlau.mqh」が必要です。このファイルを送ってください(プロフィールメッセージ経由が良い)。

2.すべての指標は...MQL5 INDICATORS INDEXAMPLES - これらは カスタム・インディケータで、コードを修正できるインディケータ です。

送信されました。
 
forexman77:

カスタムインジケーターを ベースにした売買シグナルジェネレーターを作ろうとしています。

以下のような疑問が出てきました。

1.CiCustomの後の行で、例えば "m_ind; "とマークするなど、任意の名前を指定することができるんだ。

2.この線で合っていますか?

正しく理解すると、ここでインジケータ自体の値を取得するのですね。

3.インジケータの値をプログラムがどのように取得しているのかがわからない。つまり、MQL4を使用する場合、インジケータ名を指定すれば、プログラムはその名前で検索してくれます。では、その名前をクラスのどこに入力すればいいのでしょうか?

私はこのコードを作成しました)私は私の作成でより多くのExpert Advisorを必要とするので、私は先に行きません。

一般的には、すべて正しいです。ここでは、そのコードだけを紹介します。

   double             Custom(int index)                   { return(m_ind.ParamDouble(index));}
   double             Open(int index)                     { return(m_open.GetData(index));  }
   double             Close(int index)                    { return(m_close.GetData(index)); }

は疑問を投げかける。ParamDouble - インジケーターの作成に使用された、指定された浮動小数点パラメーターの値を取得します。インジケーターバッファの値にアクセスする必要があるのかもしれません。

   double             Custom(int index)                   { return(m_open.GetData(index));  }
   double             Open(int index)                     { return(m_open.GetData(index));  }
   double             Close(int index)                    { return(m_close.GetData(index)); }

?

 
barabashkakvn:

すべてにおいて、すべてが正しいのです。コード以外はね。

は疑問を投げかける。ParamDouble - インジケーターの作成時に使用される、指定された浮動小数点パラメータの値を取得します。インジケータ・バッファの値にアクセスする必要があるのかもしれません。

?

ヘルプを見ると、" ParamDouble "が必要なようです。実際には、バッファから値を取得する必要があります。

CiCustom"クラスには、"NumBuffers" しかありませんでした。

 
forexman77:
ヘルプを見ると、" ParamDouble "が必要なようです。一般的にはもちろん、バッファから値を取得する必要があります。
まあ、何事もうまくいくのは目に見えていますからね。
 
barabashkakvn:
なるほど、すべてうまくいくんですね。
私の理解が正しければ
double             Custom(int index)                   { return(m_ind.ParamDouble(index));}

は、この行でインジケータ値を要求しているのでしょうか?

標準のインジケータでは、バッファの値はデータアクセスによって取得されますが、カスタムインジケータでは、データアクセスに関するものはありません。

テクニカル指標や時系列の基本クラスと補助 クラスのグループに機能がありますが、どのように付ければいいのでしょうか?それとも、私に必要なものではないのでしょうか?

 
forexman77:
私の理解が正しければ

は、この行でインジケータ値を要求しているのでしょうか?

標準のインジケータでは、バッファの値はデータアクセスによって取得されますが、カスタムインジケータでは、データアクセスに関するものはありません。

テクニカル指標や時系列の基本クラスと補助 クラスのグループに機能がありますが、どのように付ければいいのでしょうか?それとも、正しいものではないのでしょうか?

1.はい パラメータ値 - 例えば、インジケータが計算される入力パラメータです。

2.混同しないでください - あなたがコードを変更することができるインジケータは、カスタムインジケータです。たとえ、その名前が標準ライブラリに付属するインジケータと同じであったとしても。カスタムインジケータの例 - ...MQL5Indicators, and any other where you can change code.インジケーターバッファは、その内容(データ)をチャート上に描画します。インジケーターバッファのデータを変更するだけで、チャート上に描画されます。どのようなアクセスについて質問しているのですか?

3.よくわからない

 
barabashkakvn:

1.Yes パラメータ値 - 例:インジケータが計算される入力パラメータ。

2.混同しないでください - あなたがコードを変更することができるインジケータは、カスタムインジケータです。たとえ、その名前が標準ライブラリに付属するインジケータと同じであったとしても。カスタムインジケータの例 - ...MQL5Indicators, and any other where you can change code.インジケーターバッファは、その内容(データ)をチャート上に描画します。インジケーターバッファのデータを変更するだけで、チャート上に描画されます。どのようなアクセスについて質問しているのですか?

3.よくわからない

ここでは、指標 "q "を算出するための入力パラメータ "period "について説明します。

class CSampleSignal : public CExpertSignal
  {
protected:
   CiCustom           m_ind;              // объект для доступа к значениям ind
   CiOpen             m_open;            // объект для доступа к ценам открытия баров
   CiClose            m_close;           // объект для доступа к ценам закрытия баров
  //--- настраиваемые параметры
   int      q;  // q - период, по которому вычисляется индикатор
   double             m_stop_loss;       // уровень установки ордера "stop loss" относительно цены открытия
   double             m_take_profit;     // уровень установки ордера "take profit" относительно цены открытия
public:
              CSampleSignal();
   //--- методы установки параметров настройки
   void               Q(int value)                 { q=value;   }
   void               StopLoss(double value)       { m_stop_loss=value;   }
   void               TakeProfit(double value)     { m_take_profit=value; }

質問2へさて、次のようなコードです。

protected:
   //--- метод инициализации объектов
   bool               Initind(CIndicators* indicators);
   bool               InitOpen(CIndicators* indicators);
   bool               InitClose(CIndicators* indicators);
   //--- методы доступа к данным объектов
   double             Custom(int index)                   { return(m_ind.ParamDouble(index));}//знаю, что не правильно
   double             Open(int index)                     { return(m_open.GetData(index));  }
   double             Close(int index)                    { return(m_close.GetData(index)); }
  };

私の理解が正しければ、私たちはここで、指標バッファから開閉価格、値についての情報を受け取りたいと指定するのですか?

標準のインジケーターの意味がよくわかりました。バッファのデータは"Main " を通して取得する。例えば、以下のようなコードになります。

 double             MA(int index)                       { return(m_MA.Main(index));       }
 double             Open(int index)                     { return(m_open.GetData(index));  }
 double             Close(int index)                    { return(m_close.GetData(index)); }

3番目の質問へカスタムインジケータから データを取得する方法は?

トレーディングシグナルのジェネレーターを作成する過程で、どのようなステップを経なければならないか、簡単に教えてください。

 
私の理解が正しければ、私たちはここで、指標バッファから始値と終値、値の情報を取得したいことを指定するのですか?

はい。

標準的な指標は明確です。バッファのデータは "Main "を介して取り出される。例えば、以下のコードのように。

CiMA クラスにはMain メソッドがあります。

カスタムインジケータから データを取得する方法は?

.GetData(index))
ここで、index はインジケータ・バッファ番号である。
 
barabashkakvn:

はい。

CiMA クラスにはMain メソッドがあります。

ここで、index はインジケータバッファの番号である。
double             Main(int ind)                       { return(m_ind.GetData(0,ind));   }
ですよね)?
 


メタトレーダーがウィンドウズ・フォン8で使えるようになるのはいつ?

理由: