配列の応用操作(配列操作の基本)|MQL4プログラミング

2024年10月1日

執筆者

佐川直弘(株式会社トリロジー取締役)

配列の応用操作

配列のソート

配列のデータを特定の順序に並べ替える操作を「ソート」と呼びます。MQL4では、`ArraySort`関数を使用して配列を昇順または降順にソートすることができます。

例: ArraySort関数の使用方法

昇順ソートの例
double prices[5] = {102.5, 101.0, 103.3, 100.8, 104.1};

// 配列を昇順にソート
ArraySort(prices);

// ソートされた配列を出力
for (int i = 0; i < ArraySize(prices); i++) {
    Print(“prices[“, i, “] = “, prices[i]);
}

上記のコードでは、`ArraySort`関数を使用して`prices`配列を昇順にソートし、各要素を出力しています。

降順ソートの例
double prices[5] = {102.5, 101.0, 103.3, 100.8, 104.1};

// 配列を降順にソート
ArraySort(prices, WHOLE_ARRAY, 0, MODE_DESCEND);

// ソートされた配列を出力
for (int i = 0; i < ArraySize(prices); i++) {
    Print(“prices[“, i, “] = “, prices[i]);
}

上記のコードでは、`ArraySort`関数の第4引数に`MODE_DESCEND`を指定することで、`prices`配列を降順にソートしています。

配列からの検索

配列内の特定の値を検索するために、`ArrayBsearch`関数を使用します。この関数はバイナリサーチアルゴリズムを使用して高速に検索を行います。ただし、`ArrayBsearch`関数を使用する前に、配列をソートしておく必要があります。

例: ArrayBsearch関数の使用方法
double prices[5] = {102.5, 101.0, 103.3, 100.8, 104.1};

// 配列を昇順にソート
ArraySort(prices);

// 検索する値
double searchValue = 103.3;

// 配列内の検索
int index = ArrayBsearch(prices, searchValue);

if (index != -1) {
    Print(“値が見つかりました。インデックス: “, index, “, 値: “, prices[index]);
} else {
    Print(“値が見つかりませんでした。");
}

上記のコードでは、`ArraySort`関数で`prices`配列を昇順にソートした後、`ArrayBsearch`関数を使用して`searchValue`を検索しています。検索結果が見つかった場合、そのインデックスと値を出力し、見つからなかった場合にはその旨を出力します。

これで、配列のソートと検索の応用操作について理解できました。次章では、さらに高度な配列操作について説明します。

MQL4

Posted by 佐川直弘