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

 
Askr:
MT5では、どのように見積もりアーカイブをダウンロードするのですか?MT4では例えばF2をしてから更新を押すのですが、ここでは?

MetaTrader 5に何かをダウンロードする必要はありません。接続中の取引サーバーの相場を利用することができます。必要であればCopyRates、必要であればCopyTicksを 使用することができます。

 
Askr:
MT5では、どのように相場アーカイブをダウンロードするのですか?MT4などではF2で更新を押すのですが、ここでは?

直接は無理です。履歴をインポートできるカスタムシンボルを作成 した場合を除く。カスタムシンボルは、履歴との連動にのみ使用できます。それによって取引することができなくなります。

 
Ihor Herasko:

その時、EAがアクティブでなかった場合はどうするのですか?やはり、アカウント履歴からデータを取得したいところです。しかし、これは残念ながら、曖昧なままではできない。多くの予約がなければできないことです。

なぜ開発者がOrderCloseTime()をMT5に 実装しなかったのか不思議です。どうやら、それなりの理由があったようだ)。

 
lil_lil:

なぜMT5でOrderCloseTime() を作らなかったのか不思議なくらいです。どうやら、それには重大な理由があったようだ)。

MT5とMql5ではオーダーの意味が違うから。ポジションのクローズ時間を見つけるには、そのポジションの注文と取引を選択し、その中から DEAL_ENTRY_OUT 修飾子を持つ取引を見つけ、この取引の時間がポジションのクローズ時間と同じに なるようにする必要があります。

 

インジケータを起動し、適切な価格パラメータがろうそくに表示され、グラフィック表示が描画されますが、それはまだろうそくが閉じる前に遠い場合、インジケータはこの場所で別のろうそくの組み合わせを検出することができるとしましょう:こんにちは、私は次の条件に対する構築を行うことができませんアドバイスしてください。問題は、2回目以降の監視の過程で、このロウソクの条件が動かなくなったときに、前の結果を削除するようなコードを書くにはどうしたらいいかということです。

これはレンダリングの適切な例ですが、もし私がここでテスターを実行すると、誤ったローソク足の読みが出ます。どのように修正するのですか?

そしてもう一つの質問ですが、次のような設計思想に基づいたアラートを作るにはどうしたらよいでしょうか。

タスク - 与えられたもの:TF 1時間

条件 - インジケータの検索部分のみを実行し、例えば、現在のローソク足の55分後と60分後まで、その後、サイクルを再起動すること。

この構成をどのように実装するか?

 
clickaider:

インジケータを起動し、適切な価格パラメータがろうそくに表示され、グラフィック表示が描画されますが、それはまだろうそくが閉じる前に遠い場合、インジケータはこの場所で別のろうそくの組み合わせを検出することができるとしましょう:こんにちは、私は次の条件に対する構築を行うことができませんアドバイスしてください。問題は、2回目以降の監視の過程で、このロウソクの条件が動かなくなったときに、前の結果を削除するようなコードを書くにはどうしたらいいかということです。

これはレンダリングの適切な例ですが、もし私がここでテスターを実行すると、誤ったローソク足の読みが出ます。どうすれば直るのか?

1.テスターは昔も今もエラーなく正常に動作しています。

2.テストプロセスの理解の誤り:インジケータまたはページング履歴の最初の実行が発生したとき(この符号はprev_calculated=0であることを思い出してください)、ループですべてのバーを回ります。つまり、このループでは、arrays-timeseries を使用しています。

int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])

ループの i 番目のメンバーに対して、Open、High、Low、Close の値を 1 つだけ持つものです。

しかし、すべてのバーが通過すると、テスターは各バーでティックモードで動作し始めます - これが、Highが上昇しLowが下降する様子を見ることができる理由です。

 
Vladimir Karputov:

1.テスターが動作し、正常に動作し、エラーはない。

2) テストプロセスに対するあなたの理解に誤りがあります:最初のインジケータの実行または履歴のページングが発生したとき(このサインはprev_calculated=0であることを忘れないでください)、ループ内のすべてのバーをバイパスしてください。つまり、このループでは、arrays-timeseries を使用しています。

ループの i 番目のメンバーに対して、Open、High、Low、Close の値を 1 つだけ持つものです。

そして、すべてのバーがパスされると、テスターはティックモードで各バーに対して作業を開始します - これが、Highが上がり、Lowが下がる様子を見ることができる理由です。

そうですね、テスターが起動したときに、価格値が埋まっていて結果が違うというのは納得できますが、問題は、例えば一つのローソク足で、最初に一つのパターンができて、最後に別のパターンが出てきても、対応する条件が定められていないため、他のインジケーターのエントリーに置き換えられない場合に、どのように条件を挿入するかということです。どのように指定するのですか?

if(Cmp(shadow_upper_1,shadow_lower_0)<0 && body_size_0 < body_size_1 && shadow_lower_0 >= 0.7*shadow_upper_0 && 8*body_size_0 >= shadow_lower_0 && 7*body_size_0 <= shadow_upper_0 && close_0 >= Upper1_0 && close_0 <= body_Upper_Upper1_mediane75_0 && Upper1_1 >= Upper1_2)
         if(InpEnablePAT_DOJIUP_UPPER1) DrawPattern(index,PATTERN_TYPE_DOJIUP_UPPER1,high,low,time);

ローソク足表示を形成するコードはこちらですが、再描画可能にするにはどうしたらよいでしょうか?

 
clickaider:

そうですね、テスターを走らせたときに、価格値の埋め合わせで結果が違うというのは納得できますが、問題は、例えば1本のローソク足で、最初に1つのパターンができて、最後に別のパターンが出てきたときに、適切な条件が書かれていないため、他のインジケーターのエントリーに置き換えられない、というような条件を、どうやって構築するのか、ということです。どのように指定するのですか?

ローソク足表示を形成するコードはこちらですが、再描画可能にするにはどうしたらよいでしょうか?

インデックスに小節番号を格納する。描画前に確認するバー上にオブジェクトがある場合は、それを削除します。ObjectDelete です。

 
clickaider:

そうですね、テスターを走らせたときに、価格値の埋め合わせで結果が違うというのは納得できますが、問題は、例えば1本のローソク足で、最初に1つのパターンができて、最後に別のパターンが出たときに、適切な条件が定められていないため、他のインジケーターのエントリーに置き換えられない、という条件をどう作るか、ということですね。どのように指定するのですか?

ローソク足表示を形成するコードはこちらですが、再描画可能にするにはどうしたらよいでしょうか?

ただ、3つの状態を提供すること。

//--- установим пустое значение 
   PlotIndexSetDouble(индекс_построения_DRAW_ARROW,PLOT_EMPTY_VALUE,0);
 
Vladimir Karputov:

単純に3つの状態を用意する。

  • ドローパターン1
  • ドローパターン2
  • 何も描画しない (例えば DRAW_ARROW の場合、インジケータバッファに"0" を渡し、インジケータの先頭に記述した場合)

ソースコードを送りましたので、どこに置くか見ていただけませんか?
ファイル:
PatternsBB.ex5  81 kb
理由: