mt4のEAで、複数ある変数の順番を拾い出したい。

例えば、冒頭で定義している5つの変数、A,B,C,D,Eがあったとして、
これらの大小の順位を拾い出したいのです。
例えば、実際、B>C>D>E>A なら、
A=5、B=1、C=2、D=3、E=4 のように代入してくれる、様な感じです。

最大値、最小値程度なら、if文でも長々と書けば事足りるのですが、
さすがに順位となると、if文では長すぎて、大変です。
ArrayMaximum()は変数に対応していないようで、
コンパイルエラーでした。

どなたか、うまい短縮した書き方で、良い方法は無いでしょうか?
よろしくお願いします。

回答1

nozone49jp さん、はじめまして、マオといいます。

以下のように考えたら、順位付けは可能かと思います。

配列A(0〜4番)に次のような数値が入っているとします。
配列A (0.36, 0.96, 0.25, 0.21, 0.83)

これらの数値を配列Bへコピーします。
配列B (0.36, 0.96, 0.25, 0.21, 0.83)

この配列Bを降順で並び替えます。
配列B (0.96, 0.83, 0.36, 0.25, 0.21)

while を使ってサーチ
配列Aの 0番に入っている 0.36 を配列Bで探す→2番(先頭は0番)
配列Aの 1番に入っている 0.96 を配列Bで探す→0番
以下同様

具体的なプログラミングは nozone49jp さんにお任せします。

//————————————————–
よく読んだら、『変数』の 膂棉佞韻覆鵑任垢諭

変数 A,B,C,D,E を用意するのではなく、配列 A(0), A(1), A(2), A(3), A(4)
を用意したらできそうな気がするのですが。。。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA