技術辞典

MQL5注文関数・取引構造体辞典|OrderSend・MqlTradeRequest・MqlTradeResultの基本

MQL5注文関数・取引構造体辞典|OrderSend・MqlTradeRequest・MqlTradeResultの基本の内容を表す、OrderSend・Request・Resultの確認用アイキャッチ画像
EAファンクラブ

MQL5でEAの注文処理を作る場合、まず理解しておきたいのが、OrderSend、OrderCheck、MqlTradeRequest、MqlTradeResult、MqlTradeCheckResultの関係です。

MQL5では、注文内容を構造体へ入れて取引サーバーへ送信し、その結果をretcode、order、deal、commentなどで確認します。MQL4のOrderSend感覚だけで扱うと、注文送信、注文受付、約定、決済、履歴反映を混同しやすくなります。

この記事では、MQL5の注文関数と取引構造体を、EA開発や不具合調査で確認しやすい辞典形式で整理します。公式リファレンスの代わりに丸暗記するためではなく、どの関数・構造体を、どの場面で使い、どの戻り値とログを確認するかを整理するための記事です。

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

MQL5の注文処理は「関数」と「構造体」で分けて理解する

MQL5の注文処理は、単にOrderSendを呼び出すだけではありません。注文内容をMqlTradeRequestへまとめ、必要に応じてOrderCheckで事前確認し、OrderSendでサーバーへ送信し、MqlTradeResultで結果を確認します。

特にEA開発では、発注条件が成立したこと、注文リクエストを送信したこと、取引サーバーに受け付けられたこと、約定したこと、ポジションや履歴へ反映されたことを分けてログ化することが重要です。

段階使うもの役割確認すること
1MqlTradeRequest注文内容を入れる構造体銘柄、ロット、注文種別、価格、SL、TP、deviation、magic、comment
2OrderCheck注文前チェック証拠金、余剰証拠金、check.retcode、check.comment
3MqlTradeCheckResultOrderCheckの結果を受け取る構造体retcode、margin、margin_free、margin_level、comment
4OrderSend取引サーバーへリクエストを送信する関数関数戻り値、GetLastError、result.retcode
5MqlTradeResultOrderSendの結果を受け取る構造体retcode、order、deal、price、volume、comment
6Position / History注文後の現在状態・履歴を確認する領域PositionSelect、HistorySelect、deal、order、profit、magic

OrderSend

OrderSend()がtrueを返しても、売買処理の完了そのものを保証するわけではありません。MqlTradeResult.retcodeを確認し、必要に応じてOnTradeTransactionで後続のorder・deal・position変化まで追います。

OrderSendは、MqlTradeRequestで作成した注文リクエストを取引サーバーへ送信する関数です。

OrderSendの戻り値がtrueでも、必ずしも期待どおりの約定が完了したとは限りません。MqlTradeResult.retcode、order、deal、commentを確認し、必要に応じてPositionやHistoryも確認します。

項目内容
主な用途新規成行注文、指値・逆指値注文、決済、SL/TP変更、注文取消など
主な確認値OrderSend戻り値、GetLastError、result.retcode、result.order、result.deal、result.comment
よくある失敗ロット不正、証拠金不足、SL/TP距離不正、価格不正、filling方式不一致、取引時間外
確認ログORDER_SEND、ORDER_RESULT、TRADE_RESULT、RETCODE_CHECK、Journalログ

OrderSendで確認すること

確認対象確認内容理由
request.actionTRADE_ACTION_DEAL、TRADE_ACTION_PENDING、TRADE_ACTION_SLTPなど実行したい処理種別と一致しているか確認するため
request.symbol対象銘柄チャート銘柄、発注対象、suffix違いを確認するため
request.volume発注ロット最小ロット、最大ロット、lot stepに合っているか確認するため
request.typeBUY / SELL / pending種別方向や注文種別の誤りを防ぐため
request.price発注価格成行、指値、逆指値で必要な価格の意味が異なるため
request.sl / request.tpSL / TP価格StopsLevel、FreezeLevel、価格方向の確認に必要なため
request.type_filling約定方式銘柄仕様と合っていないとINVALID_FILLになりやすいため
result.retcode取引サーバー側の結果コード注文拒否、約定、保留、価格変更などを確認するため

OrderCheck

OrderCheckは、OrderSendの前に注文内容をチェックするための関数です。証拠金、余剰証拠金、注文条件の妥当性を確認できます。

OrderCheckは、すべての失敗を完全に防ぐものではありません。OrderCheckで問題がなくても、OrderSend時点の価格変動、取引時間、サーバー応答、filling方式、外部環境によって失敗する場合があります。

項目内容
主な用途発注前の証拠金確認、ロット確認、リスク確認、事前validation
主な確認値check.retcode、check.margin、check.margin_free、check.margin_level、check.comment
よくある失敗証拠金不足、volume不正、価格不正、SL/TP不正
確認ログORDER_CHECK、MARGIN_CHECK、LOT_CHECK、REQUEST_VALIDATE

OrderCheckを使う場面

場面確認内容補足
ロット計算後必要証拠金、余剰証拠金、volumeの妥当性ロット正規化後に確認します。
成行発注前現在価格、証拠金、取引可能状態価格変動があるため、OrderSend直前にもtick確認が必要です。
pending order前注文価格、StopsLevel、注文種別BUY LIMIT / SELL LIMIT / BUY STOP / SELL STOPの価格方向に注意します。
SL/TP設定前StopsLevel、FreezeLevel、価格方向SL/TP変更はPositionModifyやTRADE_ACTION_SLTPとも関係します。

MqlTradeRequest

MqlTradeRequestは、注文内容を格納する構造体です。OrderSendやOrderCheckへ渡す前に、必要なフィールドへ値を設定します。

requestの内容が不十分、または銘柄仕様に合っていない場合、OrderCheckやOrderSendで失敗します。EA開発では、requestを作成した時点で主要項目をログに残すと、原因調査がしやすくなります。

フィールド用途確認ポイント
action取引操作の種類新規注文、pending、SL/TP変更、注文削除などの処理種別を指定します。
symbol対象銘柄チャート銘柄と同じか、suffixや別銘柄指定がないか確認します。
volumeロット数SYMBOL_VOLUME_MIN、SYMBOL_VOLUME_STEP、SYMBOL_VOLUME_MAXに合わせます。
type注文種別ORDER_TYPE_BUY、ORDER_TYPE_SELL、pending order種別などを指定します。
price注文価格成行、指値、逆指値で意味が異なります。
sl損切り価格BUYとSELLで価格方向が異なります。
tp利確価格StopsLevel未満にならないよう確認します。
deviation許容価格差成行注文時の価格変動許容に関係します。
type_filling約定方式銘柄のSYMBOL_FILLING_MODEと整合させます。
magicEA識別番号EA別、ロジック別、チャート別の識別に使います。
comment注文コメント履歴確認やサポート時の補助になります。ただし長すぎる文字列は避けます。

MqlTradeResult

MqlTradeResultは、OrderSendの結果を受け取る構造体です。注文が成功したか、拒否されたか、どのticketが発行されたかを確認するために使います。

OrderSendの戻り値だけで判断せず、MqlTradeResultの各値を確認します。特にretcode、order、deal、commentは重要です。

フィールド用途確認ポイント
retcode取引サーバー側の結果コードTRADE_RETCODE_DONE、INVALID_VOLUME、NO_MONEYなどを確認します。
deal約定ticket成行で約定した場合などに確認します。pendingでは0の場合があります。
order注文ticketpending orderや注文受付の追跡に使います。
volume約定数量部分約定や想定ロットとの差を確認します。
price約定価格または処理価格リクエスト価格との差、price changedの確認に使います。
commentサーバーコメント拒否理由や補足情報が入る場合があります。

MqlTradeCheckResult

MqlTradeCheckResultは、OrderCheckの結果を受け取る構造体です。発注前の余剰証拠金、必要証拠金、チェック結果を確認できます。

フィールド用途確認ポイント
retcodeOrderCheckの結果コード発注条件が通るかどうかを確認します。
balance残高発注前の口座状態確認に使います。
equity有効証拠金含み損益込みの口座状態を確認します。
margin必要証拠金発注に必要な証拠金を確認します。
margin_free余剰証拠金発注後の余剰証拠金を確認します。
margin_level証拠金維持率リスク管理や発注制限の確認に使います。
commentチェック結果コメント失敗理由や補足情報を確認します。

TRADE_RETCODE

TRADE_RETCODEは、取引サーバー側の処理結果を示すコードです。注文関連の不具合調査では、GetLastErrorだけでなくTRADE_RETCODEを確認する必要があります。

retcode例意味の目安よくある原因確認すること
TRADE_RETCODE_DONE処理完了正常処理deal、order、Position、Historyを確認します。
TRADE_RETCODE_PLACED注文配置pending orderなどorder ticketと注文状態を確認します。
TRADE_RETCODE_REJECT拒否サーバー側拒否、条件不備Journalログ、request内容、取引条件を確認します。
TRADE_RETCODE_INVALID_VOLUMEロット不正最小ロット未満、step不一致、最大ロット超過SYMBOL_VOLUME_MIN、SYMBOL_VOLUME_STEP、SYMBOL_VOLUME_MAXを確認します。
TRADE_RETCODE_INVALID_PRICE価格不正価格更新不足、Bid/Ask違い、桁数不一致SymbolInfoTick、Digits、NormalizeDoubleを確認します。
TRADE_RETCODE_INVALID_STOPSSL/TP不正StopsLevel未満、価格方向不正、FreezeLevel制限SYMBOL_TRADE_STOPS_LEVEL、SYMBOL_TRADE_FREEZE_LEVEL、Bid/Askを確認します。
TRADE_RETCODE_NO_MONEY証拠金不足ロット過大、余剰証拠金不足OrderCheck、OrderCalcMargin、AccountInfoDoubleを確認します。
TRADE_RETCODE_MARKET_CLOSED市場休場取引時間外、休場、銘柄停止取引時間、SYMBOL_TRADE_MODE、Journalログを確認します。
TRADE_RETCODE_TRADE_DISABLED取引不可EA取引不可、銘柄取引不可、口座制限AutoTrading、MQLInfoInteger、TerminalInfoInteger、銘柄仕様を確認します。
TRADE_RETCODE_INVALID_FILLfilling方式不一致type_fillingが銘柄に合っていないSYMBOL_FILLING_MODE、request.type_filling、CTrade.SetTypeFillingを確認します。
TRADE_RETCODE_PRICE_CHANGED価格変動発注時と約定時の価格差deviation、最新tick、約定環境を確認します。
TRADE_RETCODE_TOO_MANY_REQUESTSリクエスト過多短時間に注文や変更を連続送信送信間隔、重複発注ガード、OnTick処理を確認します。

注文失敗時に見るログ

注文失敗時は、EA内部ログとMT5端末側ログを分けて確認します。EA側ではrequestとresult、端末側ではJournalログ、取引サーバー側の応答を確認します。

ログ名目的出すタイミング含めたい項目
ORDER_CHECKOrderCheck結果確認OrderSend前check.retcode、margin、margin_free、margin_level、comment
ORDER_SEND送信request確認OrderSend直前symbol、action、type、volume、price、sl、tp、magic
ORDER_RESULTOrderSend結果確認OrderSend直後send_return、last_error、retcode、order、deal、comment
EXEC_BLOCKEA側で発注を止めた理由OrderSend前にブロックした時spread、session、risk、auth、external control、duplicate block
SYMBOL_SPEC銘柄仕様確認OnInitまたは発注前digits、point、volume_min、volume_step、stops_level、filling_mode
POSITION_SNAPSHOT発注後の保有状態確認OrderSend後、OnTradeTransaction後ticket、symbol、type、volume、price_open、sl、tp、profit、magic
HISTORY_AUDIT約定・決済履歴確認取引後、日次集計時deal、order、DEAL_ENTRY、DEAL_TYPE、profit、commission、swap

EAが注文しない時に確認すること

EAが注文しない場合、注文関数の失敗だけが原因とは限りません。OrderSendへ到達する前に、EA側の条件で発注を止めている場合があります。

確認項目内容見るべきログ
シグナル成立エントリー条件が成立しているかSIGNAL、ENTRY_SIGNAL、SCORE、GATE
スプレッド制限現在スプレッドが上限内かSPREAD_CHECK、EXEC_BLOCK
取引時間制限EA側の取引時間、ブローカー取引時間が合っているかSESSION_CHECK、MARKET_CLOSED、Journalログ
ロット条件最小ロット、最大ロット、stepに合っているかLOT_CHECK、SYMBOL_SPEC
証拠金必要証拠金と余剰証拠金に問題がないかMARGIN_CHECK、OrderCheck
SL/TP距離StopsLevel、FreezeLevelに抵触していないかSTOPS_CHECK、TRADE_RETCODE_INVALID_STOPS
filling方式銘柄仕様とtype_fillingが一致しているかFILLING_CHECK、TRADE_RETCODE_INVALID_FILL
重複発注ガード同一バー、同一方向、同一Magicの重複を止めていないかDUPLICATE_BLOCK、ENTRY_BLOCK
外部制御・認証外部制御や認証で新規Entryが止まっていないかAUTH_STATE、EXTCTRL_STATE、ENTRY_PERMISSION

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

EAがエントリーしない場合でも、必ずしも不具合とは限りません。EA側のフィルター、スプレッド制限、取引時間制限、証拠金不足、銘柄仕様、ブローカー側の取引制限で発注を止めている場合があります。

確認すること内容開発者へ伝えるとよい情報
EA名・バージョン設置しているEA名と版対象ファイルと仕様を特定するため
銘柄・時間足チャート左上のsymbol、M1/M5/M15など銘柄仕様、価格取得、時間足条件に関係します。
setファイル読み込んだ設定ファイルロット、フィルター、時間設定、通知設定の再現に必要です。
ExpertsログEA内部ログOrderCheck、OrderSend、EXEC_BLOCK、retcode確認に使います。
JournalログMT5端末側ログ取引サーバー側の拒否、接続、取引時間の確認に使います。
取引タブ・履歴タブ注文、ポジション、履歴の表示order、deal、positionの状態確認に使います。
スクリーンショットチャート、設定、ログ、取引タブ表示状態とログを照合するために役立ちます。

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

MQL5開発では、signal、execution、risk、exit、auth、external control、notificationを分けて扱うと、注文失敗時の原因を追いやすくなります。

責務主な確認内容注文処理との関係確認ログ
signal売買条件、インジケーター条件、価格条件注文を出す前の条件成立を確認します。SIGNAL、GATE、SCORE、ENTRY_SIGNAL
riskロット、証拠金、スプレッド、最大ポジションOrderSend前に発注可能か確認します。LOT_CHECK、MARGIN_CHECK、SPREAD_CHECK
executionMqlTradeRequest、OrderCheck、OrderSend、MqlTradeResult実際の注文送信と結果確認を担当します。ORDER_CHECK、ORDER_SEND、ORDER_RESULT
exit決済、SL/TP変更、トレーリングポジション管理と決済リクエストを扱います。EXIT_CHECK、POSITION_CLOSE、SLTP_MODIFY
auth利用許可、ライセンス、口座認証新規注文を許可するかを決める場合があります。AUTH_STATE、AUTH_RESULT
external control外部シート、外部API、稼働ON/OFF新規Entry停止や方向制御に関係します。EXTCTRL_STATE、ENTRY_PERMISSION
notificationDiscord通知、ログ通知、外部通知注文成否とは別責務として扱います。NOTIFY_SEND、HTTP_STATUS

実装時の注意点

  • OrderSendの戻り値だけで成功判定しない
  • MqlTradeResult.retcodeを必ず確認する
  • result.orderとresult.dealの意味を混同しない
  • Order、Position、Deal、Historyを分けて確認する
  • ロットはSYMBOL_VOLUME_MIN、SYMBOL_VOLUME_STEP、SYMBOL_VOLUME_MAXに合わせる
  • SL/TPはStopsLevelと価格方向を確認する
  • filling方式は銘柄仕様に合わせる
  • signal不成立とexecution失敗を同じログにしない
  • 通知失敗と注文失敗を混同しない
  • 同一バー重複発注、同一方向重複発注のガードを入れる

注文関数・取引構造体の辞典表

関数/構造体/フィールド役割使う場面確認値出やすいエラー関連ログ
OrderSend注文リクエストを送る新規注文、決済、SL/TP変更、注文取消bool戻り値、result.retcode、order、dealINVALID_VOLUME、INVALID_STOPS、NO_MONEY、INVALID_FILLORDER_SEND、ORDER_RESULT、ORDER_FAIL
OrderCheck注文前の妥当性確認発注前の証拠金・ロット・価格確認check.retcode、margin、margin_free、comment証拠金不足、ロット不正、SL/TP距離不正ORDER_CHECK、MARGIN_CHECK
MqlTradeRequest注文内容の入れ物OrderSend / OrderCheck前action、symbol、volume、type、price、sl、tprequest不備、type不一致、価格不正REQUEST_DUMP、EXEC_ROUTE
MqlTradeResult注文結果の入れ物OrderSend後retcode、order、deal、price、volume、comment約定未完了、拒否、部分約定ORDER_RESULT、RETCODE_CHECK
MqlTradeCheckResult注文前チェック結果OrderCheck後retcode、balance、equity、margin、margin_free証拠金不足、volume不正ORDER_CHECK_RESULT
request.type_filling約定方式指定ブローカー仕様に合わせる時FOK、IOC、RETURNTRADE_RETCODE_INVALID_FILLFILLING_CHECK、SYMBOL_SPEC
request.magicEA識別番号EA別・ロジック別管理magic値他EAとの混同、決済対象ミスMAGIC_CHECK、POSITION_SCOPE
request.comment注文コメント履歴・サポート時の識別補助comment文字列長すぎるコメント、識別不能ORDER_COMMENT、HISTORY_AUDIT
result.retcode取引サーバー結果コードOrderSend後TRADE_RETCODE系定数拒否、価格変動、証拠金不足、取引不可RETCODE_CHECK、TRADE_RESULT
result.order注文ticket注文受付・pending追跡order ticketorderとdealの混同ORDER_TICKET、ORDER_AUDIT
result.deal約定ticket約定確認deal ticketpending時0、未約定との混同DEAL_TICKET、HISTORY_AUDIT

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

注文処理や取引構造体まわりの不具合調査・改修依頼を行う場合は、次の情報を整理してください。

整理する情報内容理由
対象EA名・バージョンmq5/ex5名、商品名、バージョン対象ファイルと仕様を特定するため
対象機能新規注文、決済、SL/TP変更、pending、ナンピンなど確認するrequest.actionや処理経路を絞るため
対象銘柄・時間足symbol、timeframe、ブローカー表記銘柄仕様、価格、スプレッド、StopsLevelを確認するため
エラー内容GetLastError、TRADE_RETCODE、表示メッセージ端末側エラーと取引サーバー側結果を分けるため
ExpertsログEA内部ログ、OrderCheck、OrderSend、retcodeEA内部の発注経路を追うため
Journalログ端末側・サーバー側ログ取引サーバー拒否や接続状態を確認するため
setファイルInputs設定ロット、SL/TP、スプレッド、時間制御などの再現に必要です。
スクリーンショットチャート、設定画面、ログ、取引タブ、履歴タブ表示状態とログを照合するため
再現手順どの操作・条件で発生したかOnInit、OnTick、OnTimer、OnTradeTransactionなどの発生箇所を特定するため

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

FAQ

OrderSendの戻り値がtrueなら注文成功ですか?

OrderSendの戻り値だけでは判断しない方が安全です。MqlTradeResult.retcode、order、deal、comment、Position、History、Journalログを合わせて確認してください。

OrderCheckで問題がなければOrderSendも必ず成功しますか?

必ず成功するとは限りません。OrderCheck後に価格が変わる、取引時間外になる、サーバー側で拒否される、filling方式が合わないなどの理由でOrderSendが失敗する場合があります。

GetLastErrorとTRADE_RETCODEはどちらを見ればよいですか?

両方を分けて確認します。GetLastErrorはMQL5実行時エラーの確認に使い、TRADE_RETCODEは取引サーバー側の結果確認に使います。注文関連ではTRADE_RETCODEの確認が特に重要です。

orderとdealは何が違いますか?

orderは注文、dealは約定を表します。pending orderではorder ticketが発行されても、まだdealがない場合があります。成行注文でも、注文受付と約定を分けて確認してください。

TRADE_RETCODE_INVALID_VOLUMEが出た場合は何を確認しますか?

SYMBOL_VOLUME_MIN、SYMBOL_VOLUME_STEP、SYMBOL_VOLUME_MAX、ロット正規化、口座条件、EA側のロット計算を確認してください。

TRADE_RETCODE_INVALID_STOPSが出た場合は何を確認しますか?

SL/TPの価格方向、StopsLevel、FreezeLevel、Bid/Ask、Digits、NormalizeDoubleを確認してください。BUYとSELLではSL/TPの方向が異なります。

TRADE_RETCODE_INVALID_FILLが出た場合は何を確認しますか?

request.type_fillingと銘柄のSYMBOL_FILLING_MODEを確認してください。CTradeを使っている場合はSetTypeFillingや銘柄仕様との整合も確認します。

EAが注文しない場合、注文関数だけ見ればよいですか?

いいえ。OrderSendへ到達する前に、シグナル不成立、スプレッド制限、取引時間制限、リスク制限、認証、外部制御、同一バー重複発注ガードで止まっている場合があります。EXEC_BLOCKやENTRY_PERMISSIONのログも確認してください。

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

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

注文要求と結果を一つの記録で追う

注文が出ない場合、最初に確認したいのは、発注前の判定で見送ったのか、注文要求を作ったのか、送信後に失敗したのかという段階の違いです。チャートに条件が見えていることだけを、注文要求を送信した証拠にはできません。本記事の関数と構造体の対応を使い、発注前の値、OrderCheckの結果、OrderSendの結果を分けて記録してください。

MqlTradeRequestは、何を注文しようとしたのかを確認するための中心になります。action、symbol、volume、price、sl、tp、type、type_filling、magicなどを、実際の用途に応じて照合します。注文種類や銘柄仕様が異なるのに同じ設定値だけで比較せず、どの要求内容に対する結果なのかを後から分かるようにすることが大切です。

MqlTradeCheckResultとMqlTradeResultは、記録する段階が異なります。注文前の確認値と注文送信後の結果を同じ成功欄へまとめるのではなく、戻り値、retcode、comment、関連するチケットなどをそれぞれ残します。エラー番号だけを抜き出すよりも、要求の内容と結果の内容を並べる方が、数量、資金、価格、取引条件のどこを確認するべきか判断しやすくなります。

決済を調べる場合も、現在のポジションを見た記録と、閉じる要求を出した記録、結果を確認した記録を区別します。複数EAやコピーEAでは、銘柄だけでなく管理対象を示す情報も確認してください。依頼前には、送信したかった注文と実際に得られた結果を文章で説明し、同じ時点のログを添えると、必要な確認範囲を共有しやすくなります。

たとえば数量を変更した後に注文の結果が変わった場合は、変更したLot設定だけでなく、requestへ入ったvolumeと銘柄条件、注文前に確認した資金情報を並べます。送信後は、dealやorder、retcode、commentの記録を、直前の要求と対応させます。片方の記録だけを残すと、要求値が違っていたのか、取引結果が違っていたのかを説明できません。調査用の一覧には、確認した関数、要求の時刻、対象銘柄、方向、数量、価格、確認結果を同じ並びで記録してください。新規注文と決済要求も別に整理し、見送り時にはどこまで処理が進んだかを残します。この対応付けをそろえることで、注文前の確認と注文結果の確認を混ぜずに、修正前後の違いを読み取れます。

関連ページ

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

確認ポイント:OrderSendの戻り値だけで原因を断定せず、MqlTradeRequest、MqlTradeResult、OrderCheck、TRADE_RETCODE、GetLastError、Expertsログ、Journalログ、Position、Historyをセットで確認してください。

このページでは、MQL5の注文関数と取引構造体の全体像を整理しています。具体的なエラー確認、証拠金確認、約定方式、Magic Number、CTradeとの使い分けを確認したい場合は、目的に近い子記事をあわせて確認してください。

注文エラーを調べる時は、OrderSendだけで原因を判断せず、MqlTradeRequest、OrderCheck、MqlTradeResult、銘柄仕様、retcode、Expertsログ、Journalログを組み合わせて確認してください。

確認したい内容関連ページ
GetLastError、TRADE_RETCODE、コンパイルエラー、WebRequest、Strategy Tester関連エラーを確認できます。MQL5エラーコード辞典|GetLastError・TRADE_RETCODE・コンパイルエラー一覧
EA・インジケーター開発で使う主要関数を、目的別・確認ログ別に確認できます。MQL5関数辞典|EA・インジケーター開発で使う主要関数一覧
iCustom、CopyBuffer、SetIndexBuffer、OnCalculate、IndicatorRelease、buffer index、shiftなどを確認できます。MQL5インジケーター関数辞典|iCustom・CopyBuffer・SetIndexBuffer・OnCalculate一覧
CopyRates、CopyClose、iClose、iTime、SymbolInfoDouble、TimeCurrentなどを確認できます。MQL5時系列・価格取得関数辞典|CopyRates・iClose・SymbolInfo・Time系まとめ
FileOpen、FileRead、FileWrite、FileClose、FILE_COMMON、CSV出力、ログ保存を確認できます。MQL5ファイル操作関数辞典|FileOpen・FileRead・FileWrite・CSV出力の基本
ObjectCreate、ObjectSetInteger、ObjectSetString、OBJ_LABEL、OBJ_BUTTON、OnChartEventなどを確認できます。MQL5チャートオブジェクト辞典|ObjectCreate・OBJ_LABEL・OBJ_BUTTON・OnChartEvent一覧
CTrade、CPositionInfo、COrderInfo、CDealInfo、CSymbolInfo、CAccountInfoなどを確認できます。MQL5標準ライブラリ辞典|CTrade・CPositionInfo・COrderInfo・CDealInfo一覧
Order、Position、Deal、History、ticket、magic、commentなど、取引管理で混同しやすい用語を確認できます。MQL5ポジション・注文・約定・履歴用語辞典|Order・Position・Deal・Historyの違い
ENUM_TIMEFRAMES、ENUM_ORDER_TYPE、ORDER_FILLING、POSITION_TYPE、SymbolInfo系定数などを確認できます。MQL5列挙型・定数辞典|ENUM_ORDER_TYPE・ENUM_TIMEFRAMES・ORDER_FILLINGの基本
EA・MT4/MT5を使う前に知っておきたい基本用語を確認する際の関連ページです。FX用語辞典|EA・MT4/MT5を使う前に知っておきたい基本用語

EA・MT5・MQL5 技術辞典|用語・関数・設定を目的別に探す

MT4/MT5 技術講座|EA・インジケーター・MQL開発を学ぶ

あわせて確認したいページ

今回の確認内容に関連する補足ページです。必要な項目だけ確認してください。

確認目的関連ページ
「MQL5 注文関数 取引構造体 一覧」の読後に「MQL5注文・ポジション・履歴管理完全ガイド」を補足確認MQL5注文・ポジション・履歴管理完全ガイド
総合説明から主題に対応した専門説明へMQL5 ENUM_ORDER_TYPEの基本
総合説明から主題に対応した専門説明へMQL5 ORDER_FILLINGの違い
総合説明から主題に対応した専門説明へMQL5 OrderCalcMargin / OrderCalcProfitの使い方
「MQL5 注文関数 取引構造体 一覧」の読後に「MQL5 CTradeとMqlTradeRequestの違い」を補足確認MQL5 CTradeとMqlTradeRequestの違い
総合説明から主題に対応した専門説明へ / 「MQL5 注文関数 取引構造体 一覧」の読後に「MQL5 OrderCheckの使い方」を補足確認MQL5 OrderCheckの使い方

まとめ

MQL5の注文処理では、OrderSend、OrderCheck、MqlTradeRequest、MqlTradeResult、MqlTradeCheckResult、TRADE_RETCODEの役割を分けて理解することが重要です。

OrderSendの戻り値だけで約定成功と判断せず、MqlTradeResult.retcode、order、deal、comment、Position、History、Journalログを合わせて確認してください。

注文できない原因は、注文関数の失敗だけでなく、ロット不正、証拠金不足、SL/TP距離不正、filling方式不一致、取引時間外、スプレッド制限、EA側の発注ガード、認証、外部制御などに分かれます。

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

お問い合わせはEAFC公式LINEへ

EAFCサイト内の記事、商品、導入前確認、設定確認、ログ確認、開発依頼前のご相談など、各種お問い合わせはEAFC公式LINEより受け付けています。

※投資助言、売買指示、利益保証、推奨ロット、推奨銘柄の案内は行っておりません。

口座番号、認証情報、Webhook URL、GAS URL、APIキーなどの機密情報は送信しないでください。

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