[ARCHIVE] フォーラムを散らかさないように、どんなルーキーでも質問してください。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 3. - ページ 366

 

こんにちは。

ある期間のグラフで3つの最大値(または最小値)を見つけ、それを記憶し、さらに計算に使用する方法を教えてください。

または、コードのリンクを教えてください。

フォーラムでコードを探したのですが、検索でうまくいきませんでした。

ありがとうございます。

 
LOA:

こんにちは。

ある期間のグラフで3つの最大値(または最小値)を見つけ、それを記憶し、さらに計算に使用する方法を教えてください。

または、コードのリンクを教えてください。

フォーラムでコードを探したのですが、検索でうまくいきませんでした。

ありがとうございます。


例えば、ユーロバックスに1日という期間を設定しました。M15を開く。下のスクリーンショットをご覧ください。赤色の縦線がその日の境界線です。フラクタル指標は、この区間に3つ以上の最小値と最大値があることを示している。では、どのようなコードで、どの極限が必要なのかを把握すればよいのでしょうか。

 
LOA:

こんにちは。

ある期間のグラフで3つの最大値(または最小値)を見つけ、それを記憶し、さらに計算に使用する方法を教えてください。

または、コードのリンクを教えてください。

フォーラムでコードを探したのですが、検索でうまくいきませんでした。

ありがとうございます。

https://docs.mql4.com/ru/series/iHighest

https://docs.mql4.com/ru/series/iLowest
 

Vladimirさん、Vadimさん、ご返信ありがとうございました。

私が感じる最大限の...

1.

mas_UP[]// 上限値の配列.

int index = iHighest(NULL,0,2,MODE_HIGH,20,i);
      double MAX = mas_UP[index];//первый максимум

2.またはこんな感じ(フラクタル入り)

int size_up=ArrayRange(mas_UP,0);
      for (s=i;s<=size_up;s++);
      int index=ArrayMaximum(mas_UP);
      double MAX = UP[s];

でも、どうやって進めればいいのか、難しいですね。

最大値として見つかった要素をゼロにして、もう一度同じ配列をスクロールする方法が考えられます。2番目の最大値を見つけ、次に3番目の最大値を見つける......という具合です。

if (MAX>0)
      int n=n+1; //счётчик экстремумов
      mas_UP[index]=0;

しかし、そうとは言い切れない。

 
LOA:

Vladimirさん、Vadimさん、ご返信ありがとうございました。

1つの最大値を見つけると...

1.

2.程度(フラクタルあり)

しかし、どうすればいいのか、途方に暮れています(まだまだ勉強中です)。

最大値として見つかった要素をゼロにして、もう一度同じ配列をスクロールして、2番目の最大値を見つけ、3番目の最大値を見つけ......という方法が思いつきます。

しかし、そうとは言い切れない。


では、与えられた区間での 最後の3つの 最大値が欲しいのでしょうか、それとも他の最大値が欲しいのでしょうか?
 
drknn:

では、与えられた区間内の 最後の3つの 最大値と、それ以外の最大値のどちらを求めるのでしょうか?


直近ではなく、期間中の最高値が3つ。というか、必ずしも最新のものではありません。

 
LOA:


1期で3回の最大値、最後の1回ではない。というか、必ずしも最後の1枚とは限りません。


ああ。では、満を持しての挑戦です。

所定の時間間隔がある。この区間から3つのサンプル最大値が必要である。

この問題を解決するためには、次のものが必要です。

- 与えられた区間の境界を認識するためのアルゴリズム

- 最大値を求めるためのアルゴリズム

- 見つかった極大値から目的の極大値を認識するアルゴリズム。

追伸

どのような最大値が必要で、具体的にどのように最大値を特定するのかが事前に分からないため、レディメイドのコードは見当たりません。つまり、上記の問題を順番に解いていけば、まさに必要なコードが得られるということです。

 
drknn:


まいったなぁ。では、問題の全容を説明します。

所定の時間間隔がある。この区間から3つの最大値のサンプルが必要です。

この問題を解決するためには、次のものが必要です。

- 与えられた区間の境界を認識するためのアルゴリズム

- 最大値を求めるためのアルゴリズム

- 見つかった極大値から適切な極大値を認識するアルゴリズム。


正しく定式化された問題は、ほとんど解決策になる。ありがとうございます。

最初の1枚は何とかなるが、2枚目も......。しかし、最後のポイントは......正直、わからないが、考えてみる。

int n=0;//счётчик максимумов
      if (MAX>0)
      int n=n+1;
      mas_UP[index]=0;

このオプションは正しい考えなのか、それとも別の方向、つまり、掘り下げるべきものなのか。

を実行して、最大値として見つかった配列の要素を ゼロにし、同じ配列を再びスクロールします - 2 番目の最大値を見つけ、次に 3 番目を見つけます...。

 
LOA:


正しく定式化された問題は、ほとんど解決策になる。ありがとうございます。

1つ目も2つ目も対応できる。最後のポイントは......正直、わからないが、考えてみる。

これは正しい考えなのか、それとも違う方向で掘り下げるのか、つまり。

最大値となった配列の要素をゼロにし、同じ配列を再びスクロールします - 2 番目の最大値を見つけ、次に 3 番目を見つけます....


今すぐコードに興味を持つのではなく、アルゴリズムを作って、具体的にどのようにプログラムを作るべきか?そうでなければ、停滞してしまいます。どんなプログラムも間抜けなもので、正確な指示を必要とします。そのためには、プログラムが何をすることになっているのかを正確に知る必要がある。そして、それをどのようにプログラムコードに落とし込むかは、その時初めて選択できるのです。
 
drknn:

今はコードには全く興味がないかもしれませんが、アルゴリズム、つまりプログラムをどのように行うべきかを正確に作ってください。そうでなければ、その場に停滞することになります。どんなプログラムも間抜けなもので、正確な指示を必要とします。そのためには、プログラムが何をすることになっているのかを正確に知る必要がある。そして、それをどのようにプログラムコードに落とし込むかは、その時初めて選択できるのです。

オッケーです。アルゴリズムは明日にしよう。サンクトペテルブルクではすでに午前2時半を過ぎており、エネルギーが切れているからだ。