[ARCHIVE!] フォーラムを散らかさないように、どんなルーキーの質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしではどこにも行けない - 4. - ページ 478

 

そして、あなたの主な間違いはここにあります。

      ExtMapBuffer3[i]=iMAOnArray(ExtMapBuffer4,0,МА_ТЛ,0,Вид_МА_ТЛ,0); //рассчет значения для расчета Третьей Линии (ТЛ)

という感じです。

      ExtMapBuffer3[i]=iMAOnArray(ExtMapBuffer4,0,МА_ТЛ,0,Вид_МА_ТЛ,i); //рассчет значения для расчета Третьей Линии (ТЛ)
 
midorum:

まず、4番目の非表示バッファであるExtMapBuffer4をインジケータバッファにリンクしてみる

だって

冒頭で、3つのライン/バッファについて説明しています。

ちなみに、その場合は、タイムスリップとして宣言してチェックする必要はありません。

返信ありがとうございます・・・。最後にiの点数をつけると、これについてはもっと調べたいですね。

1.あなたは、「まず、4番目の非マップバッファExtMapBuffer4とインジケータバッファを関連付けてみてください」と書きました。クライアントターミナルの画面に一方的に表示される配列のみをバインドし、カスタムインジケータの 計算に参加する全配列の総数をIndicatorBuffers関数で指定すればよいと思っていたのです。では、私の勘違いなのでしょうか?

2.もしよろしければ、この配列を時系列で宣言してみてはいかがでしょうか?何らかの形で時系列として自己組織化されているのでしょうか?

 
7777877:

ご返信ありがとうございました...最後に、もう1つ確認したいことがあります。

1.まず、4番目の非マップバッファExtMapBuffer4とインジケータバッファを接続してみてください」と書かれていますね。クライアントターミナルの画面に一方的に表示される配列のみをバインドし、カスタムインジケータの計算に参加する全配列の総数をIndicatorBuffers関数で指定すればよいと思っていたのです。では、私は間違っていたのですか?

2.もし難しくなければ、なぜこの配列を時系列として宣言してはいけないのか、説明してください。時系列として何らかの自己組織化をしているのでしょうか?

その通り、自動的に時系列で整理されます

冒頭で可視インジケータ・バッファについて説明していますね

IndicatorBuffers()を使用すると、自動的に整理される時系列の数を8個に増やし、それらを配列にリンク させることができます。

 
また質問を重複させて、古いものを削除して、できる人を助けてください


オッケーです。私は問題の要点を伝えるようにします、多分誰かがそれを提案するか、より簡単に実装するのを助けるでしょう。

1分足チャートに取り組んでいます。29/10/12 00:00のチャートの分足バー(高値+安値/2 - バーの平均値)を参考にしましょう。

そして、この価格から10ピップ上方への乖離を確認します(1回の正しい乖離は+1)。

スタート地点からの乖離が10ポイントに達すると、+1カウンターになり、さらに乖離をチェックし始めますが、10ポイントに達した地点から、次の10ポイントの値上がりを待ちます。

例えば、次のようになる。

(開始点) + 10 pips <= 価格 (開始点から続くすべてのバーの価格を使用します。) カウンター = カウンター +1; を取得し、開始点はすでにこの点 - (開始点 + 10 pips) から開始されます。

(開始点+10pips)+10pips <= 価格 (基準点から続く全てのバーの価格が使用される)の場合、counter=Counter +1; となり、この点から開始します - (開始点+10pips)+10pips.

(スタートポイント+10pips+10pips)+10pips<=価格(基準点からその後の全てのバーの価格を使用します。)の場合、カウンター=カウンター+1となり、この点からスタートします-(スタートポイント+10pips+10pips)+10pips.

などなど...。

カウンタが10になるまで(counter == 10)。

そして、新しく形成された1分足のバー(high+low/2 - バーの平均値)ごとに、この条件をチェックし、カウンターが10に達するまで待ちます(カウンター== 10)。仮に2日経過して、新しいバーができるたびに、条件が合っているかどうかをチェックしてシフトしていった・・・・・。

そして、counter =10になったとき - "Counter == 10 "というメッセージを出力するのです。最初のユーザー定義ポイントから2日先に開始ポイントを移動させる。つまり、2012年10月29日00:00から2012年10月31日00:00に移動させ、このサイクルを繰り返す。

このサイクルを繰り返すことで、スケジュールを進めていきます。

つまり、新しく形成されたバーを取り、(高値+低値/2 - バーの平均値)を描画する必要があります。そして、その状態を確認し、正しければ上記のようにシフトします。

配列で実装しようとしたのですが、非常にわかりにくく、間違った値を与えてしまいます。このアルゴリズムを実装する方法を教えてください。
ファイル:
qawer.mq4  3 kb
 
merkulov.artem:

配列で実装しようとすると、非常にわかりにくく、間違った値を与えてしまうのです!このアルゴリズムを実装する方法を教えてください。

何が何のために行われているのかが分かりにくいので、アルゴリズムの詳細(各コマンドと使用データ)をコメントしてもらえるとありがたいです。

そうすれば、何か助けが得られるかもしれないし、あるいは自分で問題を発見できるかもしれない。

 

ヘルプによると、SetIndexDrawBegin 関数は、どのバーから描画を開始するかを示すそうです。標準的なAC インジケーターをテストするために、パラメータを変更しました。

SetIndexDrawBegin(0,8);
   SetIndexDrawBegin(1,38);
   SetIndexDrawBegin(2,38);

まで

   SetIndexDrawBegin(0,8);
   SetIndexDrawBegin(1,8);
   SetIndexDrawBegin(2,8);

何も変わっていません。8小節から0小節までではなく、何小節から描画を開始するのかが不明です。

8ではないことがわかると思います...。


 
hoz:

ヘルプによると、SetIndexDrawBegin 関数は、どのバーから描画を開始するかを示すそうです。標準的なAC インジケーターをテストするために、パラメータを変更しました。

まで

何も変わっていません。8小節から0小節までではなく、何小節から描画を開始するのかが不明です。

8ではないことがわかると思います...。


データの先頭から(「チャートの先頭から」「左側から」と読みます)、インジケータの選択線を引くべきバーの通し番号です。インジケーターの描画は、左から右へ行います。
 
midorum:
データの先頭から(「チャートの先頭から」「チャートの左端から」と読みます)、指示線の描画を開始するバーの通し番号を設定します。インジケーターは左から右へ描かれています。

また、例えば過去30本のバーを描画する必要がある場合、どのようにすればよいのでしょうか。

 
hoz:

また、最後の30本のバーを描画したい場合は、どのようにすればよいのでしょうか。

トライバーズ-30
 
midorum:
Bars-30を試す
いいえ、そんなことはありません。論理的には左に30本インデントして、0本目に描画することになります。