
MQL5 MQL5 の取引関数
HistorySelect()
- できること
- 期間を指定して取引履歴を読み込む
- 対応
- MQL5
HistorySelect() とは
MQL5 で、指定した期間の取引履歴(約定=ディールと、過去の注文)を読み込む関数です。読み込んだあと HistoryDealsTotal()・HistoryDealGetTicket() で約定を1つずつ調べられます。
HistorySelect() の書式と引数
bool HistorySelect(datetime from_date, datetime to_date)| 引数 | 型 | 省略時 | 説明 |
|---|---|---|---|
from_date | datetime | 必須 | 期間の開始(サーバー時刻)。 |
to_date | datetime | 必須 | 期間の終了(サーバー時刻)。今までなら TimeCurrent()。 |
戻り値
読み込めたら true を返します。
HistorySelect() の使い方(コード例)
// 今日の確定損益(スワップ・手数料込み)
datetime from = iTime(_Symbol, PERIOD_D1, 0);
if(HistorySelect(from, TimeCurrent() + 60))
{
double total = 0;
for(int i = HistoryDealsTotal() - 1; i >= 0; i--)
{
ulong deal = HistoryDealGetTicket(i);
if(deal == 0) continue;
if(HistoryDealGetInteger(deal, DEAL_ENTRY) != DEAL_ENTRY_OUT) continue;
total += HistoryDealGetDouble(deal, DEAL_PROFIT) + HistoryDealGetDouble(deal, DEAL_SWAP) + HistoryDealGetDouble(deal, DEAL_COMMISSION);
}
Print("今日の確定損益:", total);
}OnTick()・OnStart() などの関数の中に書いて使う例です。MetaEditor でコンパイルできることを確認済みです。
HistorySelect() の注意点
- HistoryDealsTotal() などの前に必ず呼びます。呼ばないと 0 件になります。
- 直前に約定した取引を確実に含めたいときは、終了を TimeCurrent() より少し先にしておきます。
MQL4 と MQL5 の違い
MQL4 では期間の指定はなく、OrdersHistoryTotal() と OrderSelect(i, SELECT_BY_POS, MODE_HISTORY) で「口座履歴」タブに読み込まれた履歴を読みます。
関連する関数
MQL5 の取引関数の関数一覧
- OrderCheck
- OrderCalcMargin
- OrderCalcProfit
- PositionsTotal
- PositionGetTicket
- PositionGetSymbol
- PositionSelect
- PositionSelectByTicket
- PositionGetDouble
- PositionGetInteger
- PositionGetString
- OrderGetTicket
- OrderGetDouble
- OrderGetInteger
- HistorySelect
- HistoryDealsTotal
- HistoryDealGetTicket
- HistoryDealSelect
- HistoryDealGetDouble
- HistoryDealGetInteger
- HistoryDealGetString












