技術辞典

MQL5ポジション・注文・約定・履歴用語辞典|Order・Position・Deal・Historyの違い

EAファンクラブ

MQL5でEAの取引処理を確認する時に混同しやすいのが、OrderPositionDealHistoryの違いです。

注文を出した後に、Orderがあるのか、Positionができたのか、Dealが発生したのか、Historyへ記録されたのかを分けて確認できないと、注文失敗、約定確認、決済確認、損益集計、Magic Number別管理で原因を追いにくくなります。

この記事では、MQL5のポジション・注文・約定・履歴まわりの用語を、EA開発や不具合調査で確認しやすい辞典形式で整理します。公式リファレンスの代わりに丸暗記するためではなく、どの状態を、どの関数で確認し、どのログと照合するかを整理するための記事です。

注意:この記事はMQL5開発・EA動作確認・不具合調査のための技術解説です。特定の売買判断、推奨エントリー、推奨ロット、推奨銘柄、利益保証、勝率保証、損失回避保証を行うものではありません。実運用前には、必ずデモ環境や検証環境で動作を確認してください。

Order・Position・Deal・Historyの基本

MQL5では、注文、保有中ポジション、約定、履歴を分けて扱います。MQL4の感覚で「注文」と「ポジション」を同じものとして扱うと、現在状態と履歴状態を混同しやすくなります。

用語意味主に確認する場面代表的な確認関数
Order注文。未約定注文や注文リクエストの管理対象pending order、注文受付、注文取消、注文変更OrdersTotal、OrderGetTicket、OrderSelect、OrderGetInteger
Position現在保有中のポジション保有確認、決済対象確認、SL/TP変更、含み損益確認PositionsTotal、PositionSelect、PositionSelectByTicket、PositionGetDouble
Deal約定。注文が実際に執行された記録新規約定、決済約定、損益集計、履歴監査HistoryDealGetTicket、HistoryDealGetInteger、HistoryDealGetDouble
History過去の注文・約定履歴を確認する領域過去注文、過去約定、日次損益、決済履歴確認HistorySelect、HistoryOrdersTotal、HistoryDealsTotal

取引処理の流れで見る用語の違い

EAが注文を出した後は、必ずしもすぐにPositionだけを見ればよいわけではありません。注文種別や約定状態によって、見る場所が変わります。

段階状態主に見る場所確認する値
1EAが注文リクエストを作るMqlTradeRequestaction、symbol、volume、type、price、sl、tp、magic
2注文前チェックを行うMqlTradeCheckResultretcode、margin、margin_free、comment
3取引サーバーへ送信するMqlTradeResultretcode、order、deal、comment
4pending orderとして残るOrderorder ticket、注文種別、価格、volume、状態
5約定するDealdeal ticket、DEAL_ENTRY、DEAL_TYPE、volume、price
6保有中になるPositionposition ticket、type、volume、price_open、profit、magic
7決済されるDeal / History決済deal、profit、commission、swap、DEAL_ENTRY_OUT

Orderとは

Orderは、注文を表します。特にMQL5では、現在保有しているポジションと、未約定注文を区別することが重要です。

pending orderを管理する場合、現在の保有ポジションではなくOrderを確認します。一方、すでに約定して保有中になったものはPositionとして確認します。

項目内容
主な意味注文。未約定注文、注文受付、注文変更、注文取消で確認する対象
主な用途pending orderの確認、注文削除、注文変更、注文状態確認
代表関数OrdersTotal、OrderGetTicket、OrderSelect、OrderGetInteger、OrderGetDouble、OrderGetString
混同しやすい点現在保有中のPositionと、未約定または履歴側のOrderを混同しやすい
確認ログORDER_AUDIT、ORDER_SELECT、PENDING_SCAN、ORDER_DELETE

Orderでよく確認する値

確認値意味使う場面
ORDER_TICKET注文ticket注文の追跡、削除、変更
ORDER_TYPE注文種別BUY LIMIT、SELL LIMIT、BUY STOP、SELL STOPなどの確認
ORDER_STATE注文状態注文が有効か、約定済みか、取消済みかの確認
ORDER_VOLUME_CURRENT現在残っている注文数量部分約定や残数量確認
ORDER_PRICE_OPEN注文価格pending orderの価格確認
ORDER_MAGICMagic NumberEA別・ロジック別の注文識別
ORDER_COMMENT注文コメント履歴やサポート時の識別補助

Positionとは

Positionは、現在保有中のポジションです。EAが保有状態を確認する場合、Positionを確認します。

Netting口座とHedging口座では、Positionの扱いが変わります。Netting口座では同一銘柄のポジションが統合されやすく、Hedging口座では複数ポジションをticket単位で保有できます。

項目内容
主な意味現在保有中のポジション
主な用途保有確認、決済対象確認、SL/TP変更、含み損益確認、Magic別管理
代表関数PositionsTotal、PositionGetTicket、PositionSelect、PositionSelectByTicket、PositionGetInteger、PositionGetDouble、PositionGetString
混同しやすい点Order、Deal、Historyと混同しやすい。現在保有しているものだけがPositionです。
確認ログPOSITION_SNAPSHOT、POSITION_SELECT、POSITION_SCOPE、CLOSE_TARGET

Positionでよく確認する値

確認値意味使う場面
POSITION_TICKETポジションticket個別決済、個別管理、Hedging口座での識別
POSITION_IDENTIFIERポジション識別子ポジションの継続追跡
POSITION_TYPEBUY / SELLの方向方向別集計、決済対象確認
POSITION_VOLUME保有ロットロット集計、部分決済、バスケット管理
POSITION_PRICE_OPEN建値平均建値、損益計算、TP/SL確認
POSITION_SL現在のSL保護設定、トレーリング、建値移動確認
POSITION_TP現在のTP利確設定、同期確認
POSITION_PROFIT含み損益決済判定、損益表示、リスク管理
POSITION_MAGICMagic NumberEA別・ロジック別の保有管理
POSITION_COMMENTポジションコメント識別補助。ただしコメントだけに依存しすぎないよう注意します。

Dealとは

Dealは、実際に約定した記録です。注文が出ただけではDealとは限りません。取引サーバーで約定が発生した時にDealとして履歴へ残ります。

日次損益、決済損益、手数料、スワップ、約定価格を確認する場合は、Deal履歴を見ることが重要です。

項目内容
主な意味約定記録。実際に売買が成立した履歴
主な用途新規約定確認、決済確認、日次損益集計、手数料・スワップ確認
代表関数HistoryDealsTotal、HistoryDealGetTicket、HistoryDealGetInteger、HistoryDealGetDouble、HistoryDealGetString
混同しやすい点Order ticketとDeal ticketは別物です。注文と約定を分けて確認します。
確認ログDEAL_AUDIT、HISTORY_AUDIT、DAILY_PNL、TRADE_TX

Dealでよく確認する値

確認値意味使う場面
DEAL_TICKET約定ticket約定の個別追跡
DEAL_ORDER関連するorder ticket注文と約定の対応確認
DEAL_POSITION_ID関連するposition識別子ポジションとの紐づけ確認
DEAL_TYPE約定種別BUY、SELL、手数料、残高調整などの区別
DEAL_ENTRY新規・決済・反転などの区分DEAL_ENTRY_IN、DEAL_ENTRY_OUT、DEAL_ENTRY_INOUTの確認
DEAL_VOLUME約定ロット部分約定、部分決済、集計確認
DEAL_PRICE約定価格想定価格との差、滑り、決済価格確認
DEAL_PROFIT損益決済損益、日次損益、EA別損益
DEAL_COMMISSION手数料正味損益集計
DEAL_SWAPスワップ正味損益集計、長期保有確認
DEAL_MAGICMagic NumberEA別・ロジック別履歴確認

Historyとは

Historyは、過去の注文や約定を確認する領域です。HistorySelectで対象期間を選択してから、HistoryOrdersTotalやHistoryDealsTotalで履歴を確認します。

履歴を確認する時は、期間指定が重要です。HistorySelectの期間が狭すぎると、存在するはずの履歴が取得できないことがあります。

項目内容
主な意味過去の注文・約定を確認する履歴領域
主な用途日次損益、決済履歴、注文履歴、EA別集計、検証ログ照合
代表関数HistorySelect、HistoryOrdersTotal、HistoryDealsTotal、HistoryOrderGetTicket、HistoryDealGetTicket
混同しやすい点HistorySelectを行わないまま履歴を取得しようとしても、期待どおりに取れない場合があります。
確認ログHISTORY_SELECT、HISTORY_RANGE、HISTORY_AUDIT、DAILY_SUMMARY

History確認で注意すること

注意点内容確認すること
期間指定HistorySelectのfrom/toが対象履歴を含んでいるか日次、週次、全期間などの範囲
OrderとDealの違い注文履歴と約定履歴は別です。HistoryOrdersTotalとHistoryDealsTotalを分ける
決済損益損益はDeal側で確認することが多いです。DEAL_ENTRY、DEAL_PROFIT、commission、swap
Magic NumberEA別集計ではMagicで絞る必要があります。DEAL_MAGIC、ORDER_MAGIC
時刻基準PC時刻、サーバー時刻、履歴時刻を混同しないログ左端時刻とdeal timeの違い

ticket・identifier・magic・commentの違い

EA開発では、ticket、identifier、magic、commentを混同しないことが重要です。それぞれ役割が異なります。

用語意味使う場面注意点
ticketOrder、Position、Dealなどの個別番号個別選択、個別決済、履歴追跡Order ticket、Position ticket、Deal ticketは同じ意味ではありません。
identifierポジションを継続追跡する識別子PositionとDealの関連確認ticketとは別の識別値として扱います。
magicEAやロジックを識別する番号EA別、ロジック別、チャート別の管理手動取引や他EAとの混同を防ぐために使います。
comment注文やポジションに付ける補助文字列履歴確認、サポート時の補助ブローカーや処理により完全に維持されない場合があるため、commentだけに依存しない方が安全です。

Netting口座とHedging口座の違い

MQL5では、口座方式によってPositionの見え方が変わります。EA開発や不具合調査では、Netting口座かHedging口座かを確認してください。

口座方式特徴確認ポイント
Netting口座同一銘柄のポジションが統合されやすいsymbol単位のPositionSelectを使う場面が多くなります。
Hedging口座同一銘柄で複数ポジションを持てるticket単位でPositionSelectByTicketを使う場面が多くなります。

口座方式で変わる実装上の注意

確認項目Netting口座Hedging口座
保有確認symbol単位で確認しやすいticket単位、magic単位で確認する必要がある
複数ポジション同一銘柄では統合されやすい複数ポジションを個別管理できる
決済対象symbol指定の決済になりやすいticket指定で個別決済しやすい
ナンピン管理平均化されたPositionとして見える場合がある個別ポジションを集計してバスケット化する必要がある
履歴確認Deal単位で新規・決済を追うDeal単位で各positionとの関連を追う

現在状態と履歴状態を分ける

EAの不具合調査では、「今あるもの」と「過去に起きたこと」を分けて確認します。

知りたいこと見る場所代表関数注意点
今、保有しているかPositionPositionsTotal、PositionSelect、PositionGetTicket決済済みのものはPositionには残りません。
今、未約定注文があるかOrderOrdersTotal、OrderGetTicket、OrderSelect保有中ポジションとは別に確認します。
過去に約定したかDeal HistoryHistorySelect、HistoryDealGetTicketHistorySelectの期間が重要です。
過去に注文が出たかOrder HistoryHistoryOrderGetTicket、HistoryOrderGetInteger注文履歴と約定履歴を分けます。
決済損益を知りたいDeal HistoryHistoryDealGetDoubleprofit、commission、swapを合わせて確認します。

EA利用者向けの確認ポイント

EAが注文したか、保有しているか、決済されたかを確認する時は、MT5画面上の「取引」タブや「口座履歴」タブだけでなく、ExpertsログとJournalログも合わせて確認してください。

確認すること内容開発者へ伝えるとよい情報
EA名・バージョン設置しているEA名と版対象ファイルと仕様を特定するため
銘柄・時間足チャート左上のsymbol、M1/M5/M15など銘柄仕様や履歴確認に関係します。
口座方式Netting口座かHedging口座かPosition管理方式が変わります。
取引タブ現在のPositionとOrder保有中か、pending orderが残っているかを確認できます。
口座履歴タブ過去の注文、約定、決済決済済みか、損益が出ているかを確認できます。
ExpertsログEA内部の判定、選択、決済、履歴確認ログPositionSelect、HistorySelect、Deal集計の確認に使います。
JournalログMT5端末側・サーバー側ログ注文処理、約定、拒否、接続状態の確認に使います。
スクリーンショットチャート、設定、ログ、取引タブ、履歴タブ表示状態とログを照合するために役立ちます。

MQL5開発者向けの実装確認ポイント

MQL5開発では、現在状態のPosition確認、未約定注文のOrder確認、過去約定のDeal確認、履歴範囲のHistorySelectを分けて実装することが重要です。

責務主な確認対象実装上の注意確認ログ
entry後確認OrderSend結果、Position、Dealresult.retcode、order、deal、Position反映を分けて確認します。ORDER_RESULT、POSITION_SNAPSHOT、DEAL_AUDIT
保有管理Positionsymbol、ticket、magic、type、volumeを確認します。POSITION_SELECT、POSITION_SCOPE
pending管理OrderOrdersTotalとOrderSelectで未約定注文を確認します。PENDING_SCAN、ORDER_AUDIT
決済確認Deal / History決済後はPositionが消えるため、Deal履歴で確認します。CLOSE_RESULT、HISTORY_AUDIT
日次損益Deal HistoryHistorySelectの期間、DEAL_ENTRY、profit、commission、swapを確認します。DAILY_PNL、HISTORY_RANGE
Magic別管理Order / Position / DealORDER_MAGIC、POSITION_MAGIC、DEAL_MAGICを混同しないよう確認します。MAGIC_SCOPE、LOGIC_SCOPE
バスケット管理Position群 / Deal履歴同一symbol、同一magic、同一方向で集計します。BASKET_SNAPSHOT、BASKET_AUDIT

実装時の注意点

  • Order、Position、Deal、Historyを同じ意味で扱わない
  • 現在保有中かどうかはPositionで確認する
  • 未約定注文はOrderで確認する
  • 過去の約定や決済損益はDeal履歴で確認する
  • 履歴確認前にHistorySelectで対象期間を指定する
  • Order ticket、Position ticket、Deal ticketを混同しない
  • Netting口座とHedging口座でPosition管理方式が変わる
  • Magic Numberとcommentの役割を分ける
  • commentだけに依存したEA管理は避ける
  • ログにはsymbol、ticket、magic、type、volume、price、profitをセットで残す

よく使う確認関数一覧

関数分類主な用途確認ポイント
OrdersTotalOrder現在の未約定注文数を確認するPosition数とは別に確認します。
OrderGetTicketOrderindexからorder ticketを取得する注文ループ時に使います。
OrderSelectOrder注文を選択する選択後にOrderGet系で情報を取得します。
PositionsTotalPosition現在保有中のポジション数を確認するHedging口座では複数ポジションになる場合があります。
PositionGetTicketPositionindexからposition ticketを取得するポジションループ時に使います。
PositionSelectPositionsymbolでPositionを選択するNetting口座やsymbol単位確認で使います。
PositionSelectByTicketPositionticketでPositionを選択するHedging口座や個別ポジション管理で使います。
HistorySelectHistory履歴の対象期間を選択する履歴確認前に必要です。
HistoryOrdersTotalHistory Order選択期間内の注文履歴数を確認する注文履歴のループに使います。
HistoryDealsTotalHistory Deal選択期間内の約定履歴数を確認する約定・損益集計のループに使います。
HistoryDealGetTicketHistory Dealindexからdeal ticketを取得するDeal履歴の個別確認に使います。
HistoryDealGetIntegerHistory Deal整数系のDeal情報を取得するDEAL_TYPE、DEAL_ENTRY、DEAL_MAGICなどを確認します。
HistoryDealGetDoubleHistory Deal数値系のDeal情報を取得するvolume、price、profit、commission、swapなどを確認します。
HistoryDealGetStringHistory Deal文字列系のDeal情報を取得するsymbol、commentなどを確認します。

開発依頼前に整理する情報

ポジション・注文・約定・履歴まわりの不具合調査や改修依頼を行う場合は、次の情報を整理してください。

整理する情報内容理由
対象EA名・バージョンmq5/ex5名、商品名、バージョン対象ファイルと仕様を特定するため
対象機能新規注文、決済、SL/TP変更、履歴集計、バスケット管理などOrder、Position、Deal、Historyのどこを見るかを絞るため
対象銘柄・時間足symbol、timeframe、ブローカー表記銘柄仕様、履歴、Magic別管理を確認するため
口座方式Netting / HedgingPosition管理方式が変わるため
エラー内容GetLastError、TRADE_RETCODE、表示メッセージ実行時エラーと取引サーバー結果を分けるため
ExpertsログEA内部ログ、PositionSelect、HistorySelect、Deal集計などEA内部の確認経路を追うため
Journalログ端末側・サーバー側ログ注文、約定、決済、接続状態を確認するため
setファイルInputs設定Magic、ロット、決済条件、履歴集計条件の再現に必要です。
取引タブ・履歴タブ画像現在保有、未約定注文、履歴の画面EAログとMT5表示を照合するため
再現手順どの操作・条件で発生したかOnTick、OnTradeTransaction、決済後処理などの発生箇所を特定するため

送ってはいけない情報:口座パスワード、投資家パスワード、Webhook URL、GAS URL、APIキー、認証トークン、口座番号の全桁、個人情報は、そのまま送らないでください。必要に応じて必ずマスクしてください。

関連するMQL5技術辞典

ポジション・注文・約定・履歴の確認では、注文関数、エラーコード、関数分類、列挙型、標準ライブラリの理解も関係します。関連するMQL5技術辞典もあわせて確認してください。

技術辞典確認できる内容リンク
MQL5エラーコード辞典GetLastError、TRADE_RETCODE、コンパイルエラー、WebRequest、Strategy Tester関連エラーを確認できます。MQL5エラーコード辞典
MQL5関数辞典EA・インジケーター開発で使う主要関数を、目的別・確認ログ別に確認できます。MQL5関数辞典
MQL5注文関数・取引構造体辞典OrderSend、OrderCheck、MqlTradeRequest、MqlTradeResult、TRADE_RETCODEなどを確認できます。MQL5注文関数・取引構造体辞典
MQL5インジケーター関数辞典iCustom、CopyBuffer、SetIndexBuffer、OnCalculate、IndicatorRelease、buffer index、shiftなどを確認できます。MQL5インジケーター関数辞典
MQL5時系列・価格取得関数辞典CopyRates、CopyClose、iClose、iTime、SymbolInfoDouble、TimeCurrentなどを確認できます。MQL5時系列・価格取得関数辞典
MQL5ファイル操作関数辞典FileOpen、FileRead、FileWrite、FileClose、FILE_COMMON、CSV出力、ログ保存を確認できます。MQL5ファイル操作関数辞典
MQL5チャートオブジェクト辞典ObjectCreate、ObjectSetInteger、ObjectSetString、OBJ_LABEL、OBJ_BUTTON、OnChartEventなどを確認できます。MQL5チャートオブジェクト辞典
MQL5列挙型・定数辞典ENUM_TIMEFRAMES、ENUM_ORDER_TYPE、ORDER_FILLING、POSITION_TYPE、SymbolInfo系定数などを確認できます。MQL5列挙型・定数辞典
MQL5標準ライブラリ辞典CTrade、CPositionInfo、COrderInfo、CDealInfo、CSymbolInfo、CAccountInfoなどを確認できます。MQL5標準ライブラリ辞典

確認ポイント:Order、Position、Deal、Historyを混同せず、現在状態はPosition、未約定注文はOrder、約定・決済履歴はDeal、過去確認はHistorySelect後の履歴として分けて確認してください。

FAQ

OrderとPositionは同じ意味ですか?

同じ意味ではありません。Orderは注文、Positionは現在保有中のポジションです。pending orderはOrderとして確認し、保有中のものはPositionとして確認します。

Dealとは何ですか?

Dealは約定記録です。注文が実際に執行された記録であり、新規約定、決済約定、損益集計の確認に使います。

決済済みのポジションはPositionで確認できますか?

決済済みのものは現在のPositionには残りません。決済済みの内容は、HistorySelect後にDeal履歴やOrder履歴で確認します。

HistorySelectはなぜ必要ですか?

MQL5では、履歴を確認する前に対象期間を選択する必要があります。期間が狭いと、確認したい履歴が取得できない場合があります。

ticketとmagicは何が違いますか?

ticketはOrder、Position、Dealなどの個別番号です。magicはEAやロジックを識別する番号です。個別取引の追跡にはticket、EA別管理にはmagicを使います。

commentだけでEAの取引を管理してもよいですか?

commentは補助情報として使えますが、commentだけに依存する管理は避けた方が安全です。Magic Number、symbol、ticket、position identifier、deal情報も合わせて確認してください。

Netting口座とHedging口座で何が変わりますか?

Netting口座では同一銘柄のポジションが統合されやすく、Hedging口座では複数ポジションをticket単位で管理できます。EAの保有確認や決済対象の選び方が変わります。

EAが決済したか確認するには何を見ればよいですか?

現在のPositionが消えているか、Deal履歴に決済約定があるか、HistorySelect後のDEAL_ENTRYやDEAL_PROFITを確認します。ExpertsログとJournalログも合わせて確認してください。

開発依頼前に何を送ればよいですか?

EA名、バージョン、対象銘柄、時間足、口座方式、setファイル、Expertsログ、Journalログ、取引タブ・履歴タブのスクリーンショット、再現手順を整理してください。口座番号、Webhook URL、GAS URL、APIキー、認証トークンなどは必ずマスクしてください。

まとめ

MQL5では、Order、Position、Deal、Historyを分けて確認することが重要です。Orderは注文、Positionは現在保有中のポジション、Dealは約定記録、Historyは過去の注文・約定を確認する領域です。

EAが注文したか、保有しているか、決済されたかを確認する場合は、OrderSend結果だけで判断せず、Position、Deal、History、Expertsログ、Journalログを合わせて確認してください。

Netting口座とHedging口座ではPositionの見え方が変わります。EA開発や不具合調査では、口座方式、symbol、ticket、magic、comment、identifierを分けて整理することが重要です。

不具合調査や開発依頼を行う場合は、EA名、バージョン、銘柄、時間足、口座方式、setファイル、Expertsログ、Journalログ、スクリーンショット、再現手順を整理してください。

ABOUT ME
記事URLをコピーしました