【MQL5】HistoryOrdersTotal関数について

MQL5リファレンス
スポンサーリンク
スポンサーリンク

HistoryOrdersTotal関数の働き・役割

HistoryOrdersTotal関数は、取引履歴内の注文の数を返すために使用されます。
この関数を利用することで、過去に行われた注文の総数を取得することが可能です。取引履歴の分析や統計情報を取得する際に役立ちます。

この関数を呼び出す前には、まずHistorySelect関数またはHistorySelectByPosition関数を使用して、指定期間内の約定と注文の履歴を受信する必要があります。これにより、関数が正確な注文の総数を返すことができます。

HistoryOrdersTotal関数の引数について

int HistoryOrdersTotal();

HistoryOrdersTotal関数引数を持ちません。単に履歴内の注文の数を返します。

HistoryOrdersTotal関数の戻り値について

HistoryOrdersTotal関数は、履歴内の注文の数を整数型の値として返します。例えば、過去に行われた全ての注文の総数を知りたい場合に、この関数戻り値を使用します。

戻り値が0の場合は、指定期間内に注文が存在しないことを意味します。

HistoryOrdersTotal関数を使う際の注意点

この関数を使用する際に重要なのは、履歴を正しく選択することです。つまり、HistorySelect関数またはHistorySelectByPosition関数を使用して、対象となる取引履歴を選択してからHistoryOrdersTotal関数を呼び出す必要があります。

取引履歴の注文を「ツールボックス」バーの「取引」タブに表示される待機注文と混同しないように注意してください。取引履歴には、取り消された注文や、実際にトランザクションが発生した注文も含まれています。これらの履歴は、クライアント端末の「ツールボックス」バーの「履歴」タブで確認することができます。

HistoryOrdersTotal関数を使ったサンプルコード

以下は、HistoryOrdersTotal関数を使用して取引履歴内の注文の総数を取得し、その結果をエキスパートログに出力するサンプルコードです。

void OnStart()
{
    // 取引履歴をリクエストする
    HistorySelect(0, TimeCurrent());

    // 履歴内の注文の総数を取得する
    int totalOrders = HistoryOrdersTotal();

    // 取得した注文の総数をエキスパートログに出力する
    Print("履歴内の注文の総数: ", totalOrders);
}

このサンプルコードでは、まずHistorySelect関数を使用して、現在の日時までの全ての取引履歴をリクエストします。その後、HistoryOrdersTotal関数を使用して、取引履歴内の注文の総数を取得し、その結果をエキスパートログに出力します。

サンプルコードに使われた関数や文法要素の簡単な解説

HistorySelect関数

HistorySelect関数は、指定された期間内の取引履歴を選択します。開始日時と終了日時を指定することで、その期間内の履歴を取得します。この例では、開始日時を0(1970年1月1日)、終了日時を現在の日時に設定しています。

TimeCurrent関数

TimeCurrent関数は、サーバーの現在時刻を取得します。取引履歴の選択や現在の時刻を基準にした処理に使用されます。

Print関数

Print関数は、指定されたメッセージをエキスパートログに出力します。デバッグや情報の確認に役立ちます。

これらの関数を組み合わせることで、取引履歴内の注文の総数を簡単に取得し、ログに出力することができます。

タイトルとURLをコピーしました