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

 
-Aleks-:

エラーが発生する - 何が問題なのか?MQL4では動作するのですが・・・。


'{' - 初期化子が多すぎる TZ_Sky_and_Ground_V_04.mq5 2484 6

arrFibo[18]を入れるべきですね。18個の要素だそうです。
 
Vladimir Karputov:

iMAの ヘルプはご覧になりましたか?

ステップ1:「ヘッダー」でiMAインジケータ・ハンドルを格納する変数を宣言します。

ステップ2:OnInit()でインジケータハンドルを作成します。

そして、その結果(スクリーンショットの十字キーはバー#1に設定されています)。

質問: インジケータをループする場合、double MA[1]も設定すべきでしょうか; それとも、より大きな配列を要求/受信すべきでしょうか?ただ、この複雑さは何なのか、MQL4と比較して何が有利なのか、理解できません。
 
-Aleks-:

ループ内でdouble MA[1]を使おうとすると、double MA[1]を使うべきか、それとも大きな配列サイズを要求/受信する方が良いのか?ただ、なぜこのような複雑な仕組みが必要なのか、MQL4と比較して何が優れているのかが理解できません。


iMAGet関数を使った私の例は、インジケータから一度に1つの値を受け取るために設計された例 です。インジケータからより多くの値を取得したい 場合は、CopyBufferにfromとtoのパラメータを付けて、結果を配列に保存 する必要があります。


追記:後日、例があります.


約束された例。

入力パラメータ。

  • 配列に値を 取り込む - "true "の場合は配列に値を取り込み、"false "の場合は一度に一つの値を取り込みます。
  • count-> "get values into an array"==trueの場合のみ - 配列にコピーされた小節の数
  • 開始位置-> "get values into an array"==trueの場合のみ - 配列にコピーされる最初の要素(バー)の番号。

Expert Advisorで配列とMoving Avegaregeインジケータを使用する。

EAで配列とMoving Avegaregeインジケータを操作する

配列arr_maと インデックス#0とインデックス#8の要素の値に注意してください。

ds

ファイル:
iMAGet.mq5  12 kb
 
Vladimir Karputov:


iMAGet関数を使った私の例は、インジケータから一度に1つの値を受け取るために設計された例 です。インジケータから複数の値を取得 したい場合は、CopyBufferにfromとtoのパラメータを付けて、結果を配列に保存 する必要があります。

追記:後日、例があります.

約束された例。

入力パラメータ。

  • 配列に値を 取り込む - "true "の場合は配列に値を取り込み、"false "の場合は一度に一つの値を取り込みます。
  • count-> "get values into an array"==trueの場合のみ - 配列にコピーされた小節の数
  • 開始位置-> "get values into an array"==trueの場合のみ - 配列にコピーされる最初の要素(バー)の番号。

Expert Advisorで配列とMoving Avegaregeインジケータを使用する。

配列arr_maと インデックス#0とインデックス#8の要素の値に注意してください。

ds

お手本をありがとうございました

一つの指標値を要求して、何十もの指標値をコピーすることに何か利点があるのかどうか、私にとっては非常に重要なことなのですが、もしかしたら、それについて何か研究があったのでしょうか。

時系列が逆になっているのは......困りますね。標準では0123というバーの番号に慣れていますが、ここでは1230が逆順に表示されます。

検索中に必要なバーの数がわからない場合(例えば、MAとバーのクロスポイントを検索する場合)、最大限の数を要求すればいいのでしょうか?性能に何らかの影響を与えるのでしょうか?

 
-Aleks-:

お手本をありがとうございました

一つの指標値を要求することと、十数個の指標値をコピーすることに利点があるのかどうか、私にとっては非常に重要なことなのですが、もしかしたらこれに関する研究がなされているのでしょうか?

...


自分たちで研究することを誰が止めるんだ :)?

...

時系列が逆になっているのは......まずいですね。標準的なバーの番号付けである0123に慣れているのに、ここでは1230が逆順になっています。

...

配列を取得した後(iMAGetArrayを呼び出した後)、ArraySetAsSeries('our array',true) を実行するだけでよいのです。
...

検索に必要なバーの本数がわからない場合(例えばMAとバーのクロスポイントを検索する場合)、最大限の本数を要求すればよいのでしょうか。性能に何らかの影響を与えるのでしょうか?


そのような場合は、何度か問い合わせをするのがよいでしょう。例えば、最初のクエリ-50要素、必要に応じて-2回目のクエリ(再び50要素)...。
 
Vladimir Karputov:

自分たちで研究することを誰が止めるんだ :)?


私はMQL5の文盲に阻まれています。コードの間違いで皆に誤解を与えてしまうのですが、あなたのプロ意識は、このような勉強にもっと自信を与えてくれるはずです

ウラジーミル・カルプトフ


必要なのは、配列を取得した後(iMAGetArrayを呼んだ後)、ArraySetAsSeries('our array',true) を実行することだけです。

機能で一気にやるってこと?


ウラジーミル・カルプトフ


そのような場合は、何度か問い合わせをするのがよいでしょう。例えば、最初のリクエスト - 50要素、そして必要に応じて2番目のリクエスト(再び50要素)...。
ブルブル...つまり、ループをループに入れる?また、なぜ100ではなく50なのか?このテーマについては、同じような研究が必要であり、1本分以上の情報を受け取っても意味がないのかもしれない...。
 
このトピックに関連しないコメントは、「MQL4 MT4 MetaTrader 4初心者からの質問」に移動しました。
 
-Aleks-:

...

I.e.関数で一度に行う?

...


アレイを反転させた方が良い。

ウラジーミル・カルプトフ

配列を受け取った後(iMAGetArrayを呼び出した後)、ArraySetAsSeries('our array',true)実行する必要が あります。

-Aleks- です。

...

ブルブル...I.e.ループにループを入れる?なぜ100ではなく50なのか?いずれにしても、このテーマに関する研究は必要であり、複数のバーの情報を得ることに意味はないのかもしれない......。

ネストされたループはありません - すべての値に対してループは1つだけです:すべての処理は順次行われます - 検索結果は別の関数で(その中で、特定の値を要求します - たとえば、50個の値)。結果が見つからなければ、新しいリクエストをする。

 

MQL4の後にMQL5でインジケーターを操作するのは最悪です本当に気分が悪くなる。

インジケーターの呼び出しをコード中にちりばめるのではなく、ハンドルも含めて1つの関数にまとめられないのか、理解できない!

また、インジケータが 配置されている関数によってインジケータの設定が 変更される場合、どうすればいいのかがわかりません!?インジケーターのすべてのバリエーションを起動する必要がありますか?


MQL4で例を見たのですが、MQL5ではどうすればいいのでしょうか?


int BarPeresek_iMAf(int PeriodMA)
  {
   int TFT=0;
   int shiftMAT=0;
   int typeMAT=0;
   int priceMAT=0;
   int BarPeresek=0;
   if(Bars(Symbol(),0)>PeriodMA)
     {
      for(int X=1;X<1000; X++)
        {
         double MAT=NormalizeDouble(iMA(Symbol(),TFT,PeriodMA,shiftMAT,typeMAT,priceMAT,X),Digits());
         if((Low(X)>MAT && High(X)>MAT) || 
            (Low(X)<MAT && High(X)<MAT))BarPeresek++;
         else {BarPeresek++; break;}
        }

     }
   return BarPeresek;
  }
Торговые советники и собственные индикаторы - Алгоритмический трейдинг, торговые роботы - Справка по MetaTrader 5
Торговые советники и собственные индикаторы - Алгоритмический трейдинг, торговые роботы - Справка по MetaTrader 5
  • www.metatrader5.com
Среди программ для автоматического трейдинга можно выделить две большие категории: торговые роботы и индикаторы. Первые предназначены для...
 

ポジションを決済 した後、マーカーを表示させないように削除する方法を教えてください。

プログラム的に削除することは可能ですか?

ありがとうございました。

理由: