
MQL4 MQL4 の注文関数
OrdersHistoryTotal()
- できること
- 決済済み・取消済みの注文の数を取得する
- 対応
- MQL4
OrdersHistoryTotal() とは
MQL4 で、口座履歴にある決済済みの注文・取り消した待機注文の数を返す関数です。OrderSelect(i, SELECT_BY_POS, MODE_HISTORY) と組み合わせて、過去の取引の損益を集計するときに使います。
OrdersHistoryTotal() の書式と引数
int OrdersHistoryTotal()引数はありません。
戻り値
履歴にある注文の数。
OrdersHistoryTotal() の使い方(コード例)
// 今日決済した取引の損益合計(スワップ・手数料込み)
datetime today = iTime(_Symbol, PERIOD_D1, 0);
double total = 0;
for(int i = OrdersHistoryTotal() - 1; i >= 0; i--)
{
if(!OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) continue;
if(OrderType() > OP_SELL) continue; // 取消した待機注文・入出金を除く
if(OrderCloseTime() < today) continue;
total += OrderProfit() + OrderSwap() + OrderCommission();
}
Print("今日の損益:", total);OnTick()・OnStart() などの関数の中に書いて使う例です。MetaEditor でコンパイルできることを確認済みです。
OrdersHistoryTotal() の注意点
- 数えられるのは、ターミナルの「口座履歴」タブに読み込まれている期間の履歴だけです。タブで「全履歴」を選んでおくと、すべての履歴を扱えます。
- 入出金の記録も履歴に含まれます(OrderType() が 6)。集計するときは OP_BUY・OP_SELL だけを対象にします。
MQL4 と MQL5 の違い
MQL5 では HistorySelect(開始, 終了) で期間を指定してから、HistoryDealsTotal()・HistoryDealGetTicket() で約定(ディール)を読みます。












