技術辞典

MQL5標準ライブラリ辞典|CTrade・CPositionInfo・COrderInfo・CDealInfo一覧

EAファンクラブ

MQL5でEAを開発する場合、標準ライブラリを使うと、発注、ポジション確認、注文確認、約定履歴確認、銘柄仕様確認、口座情報確認をクラス単位で扱いやすくなります。

特に、CTradeCPositionInfoCOrderInfoCDealInfoCSymbolInfoCAccountInfoBuy / SellPositionCloseResultRetcodeCheckResult は、EA開発や不具合調査で頻繁に確認する項目です。

この記事では、MQL5標準ライブラリの主要クラス・メソッドを、EA開発や不具合調査で確認しやすい辞典形式で整理します。公式リファレンスの丸写しではなく、どのクラスを、どの場面で使い、どの戻り値・retcode・ログを確認するかを整理するための記事です。

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

MQL5標準ライブラリとは

MQL5標準ライブラリは、MQL5に用意されているクラス群です。取引処理、ポジション情報、注文情報、約定履歴、銘柄仕様、口座状態などを、関数を直接呼び出すよりも扱いやすい形で整理できます。

ただし、標準ライブラリを使えば必ず安全になるわけではありません。CTradeを使っても、発注失敗、retcode不一致、filling方式不一致、StopsLevel違反、証拠金不足、ロット不正、接続不安定などは発生します。標準ライブラリを使う場合でも、戻り値、ResultRetcode、CheckResult、Expertsログ、Journalログを確認することが重要です。

分類主な用途代表クラス・メソッド確認すること
取引操作成行発注、決済、注文変更、注文削除CTrade、Buy、Sell、PositionClose戻り値、ResultRetcode、ResultComment、発注対象
ポジション確認保有中ポジションの確認CPositionInfoticket、symbol、magic、type、volume、profit
注文確認未約定注文、注文履歴の確認COrderInfoorder ticket、type、state、price、expiration
約定確認履歴上の約定情報確認CDealInfodeal ticket、type、entry、profit、magic、comment
銘柄仕様確認point、digits、spread、ロット条件、StopsLevel確認CSymbolInfoPoint、Digits、LotsMin、LotsStep、StopsLevel、Spread
口座情報確認残高、有効証拠金、余剰証拠金、証拠金維持率確認CAccountInfoBalance、Equity、Margin、FreeMargin、MarginLevel
発注前確認注文条件が通るか事前確認CheckResult、OrderCheck系CheckResultRetcode、margin、comment、拒否理由

標準ライブラリを使う時の基本方針

標準ライブラリは、MQL5の取引関数や情報取得関数をクラスとして扱いやすくしたものです。EA開発では便利ですが、クラスを使うことと、注文結果を正しく検証することは別です。

確認項目内容注意点
戻り値Buy / Sell / PositionCloseなどの実行結果trueだけで完全成功と断定せず、retcodeも確認します。
ResultRetcodeCTrade実行後の取引結果コードTRADE_RETCODE_DONE、PLACED、REJECTなどを確認します。
ResultCommentサーバー側コメント拒否理由や補足情報の確認に使います。
CheckResultOrderCheck結果発注前の証拠金や条件確認に使います。
SymbolInfo銘柄仕様ロット、point、StopsLevel、filling方式を確認します。
AccountInfo口座状態残高、有効証拠金、余剰証拠金を分けて確認します。

CTrade

CTradeは、MQL5標準ライブラリの取引操作用クラスです。成行発注、決済、注文変更、注文削除、SL/TP変更などを、OrderSendを直接組み立てるより簡潔に扱えます。

CTradeを使う場合でも、BuyやSellの戻り値、ResultRetcode、ResultComment、ResultOrder、ResultDealを確認してください。発注関数を呼び出したことと、取引サーバーで期待どおり処理されたことは同じではありません。

クラス/メソッド用途使う場面確認する戻り値注意点関連ログ関連講座
CTrade取引操作を扱う標準ライブラリクラスEAの発注、決済、注文変更、注文削除各メソッド戻り値、ResultRetcode、ResultComment戻り値だけでなくretcodeを確認します。TRADE_SEND、TRADE_RESULT、ORDER_FAIL標準ライブラリ・CTrade
Buy買い成行注文BUYエントリー、買い方向の新規発注true/false、ResultRetcode、ResultDealAsk、volume、SL/TP、deviation、filling方式を確認します。BUY_SEND、ORDER_RESULT注文関数・取引構造体
Sell売り成行注文SELLエントリー、売り方向の新規発注true/false、ResultRetcode、ResultDealBid、volume、SL/TP、deviation、filling方式を確認します。SELL_SEND、ORDER_RESULT注文関数・取引構造体
PositionClose保有ポジションを決済する単体決済、条件決済、強制決済、手動補助決済true/false、ResultRetcode、ResultDealnetting / hedging、ticket指定、symbol指定の違いに注意します。POSITION_CLOSE、CLOSE_RESULT注文・ポジション・履歴管理
PositionModify保有ポジションのSL/TPを変更するSL設定、TP設定、建値移動、trailtrue/false、ResultRetcodeStopsLevel、FreezeLevel、価格方向を確認します。POSITION_MODIFY、TPSL_RESULTロット・証拠金・銘柄仕様
OrderDelete未約定注文を削除するpending order取消、期限切れ前の削除true/false、ResultRetcode保有Positionの決済とは別です。ORDER_DELETE、PENDING_CANCEL注文・ポジション・履歴管理
SetExpertMagicNumberCTradeで使うMagic Numberを設定するEA別、ロジック別、チャート別の発注識別設定値、発注後のmagic発注前に設定し、履歴やPositionで確認します。MAGIC_SET、REQUEST_DUMP注文・ポジション・履歴管理
SetDeviationInPoints許容スリッページを設定する成行発注、決済時の価格ズレ許容設定値、発注結果銘柄のpointと混同しないようにします。DEVIATION_SET、ORDER_SEND注文関数・取引構造体
SetTypeFilling約定方式を設定するFOK、IOC、RETURNなどのfilling指定設定値、ResultRetcodeSYMBOL_FILLING_MODEと整合させます。FILLING_SET、INVALID_FILL列挙型・定数

CTradeで確認すること

確認項目内容理由
volume発注ロットSYMBOL_VOLUME_MIN、SYMBOL_VOLUME_STEP、SYMBOL_VOLUME_MAXに合うか確認するため
price発注価格または決済価格BUYはAsk、SELLはBidを基準に確認するため
sl / tp損切り・利確価格StopsLevel、FreezeLevel、価格方向の確認に必要なため
deviation許容価格差成行注文や決済の拒否理由確認に関係するため
magicMagic NumberEA別・ロジック別のPosition / History確認に必要なため
retcode取引結果コード注文受付、約定、拒否、エラーを判定するため

CPositionInfo

CPositionInfoは、保有中ポジションの情報を確認するための標準ライブラリクラスです。PositionGetInteger、PositionGetDouble、PositionGetStringを直接使う代わりに、クラスメソッドでポジション情報を取得できます。

クラス/メソッド用途使う場面確認する戻り値注意点関連ログ関連講座
CPositionInfo保有中Position情報を扱うクラスPositionスキャン、保有確認、決済対象確認Select結果、各プロパティ値OrderやDealとは対象が違います。POSITION_SNAPSHOT、POSITION_SCOPE注文・ポジション・履歴管理
Selectsymbolでポジションを選択するnetting口座やsymbol単位確認true/falsehedging口座ではticket単位確認が必要な場合があります。POSITION_SELECT、POSITION_MISSING注文・ポジション・履歴管理
SelectByTicketticketでポジションを選択するhedging口座、複数ポジション管理true/falseticketの有効性と対象symbolを確認します。POSITION_SELECT_TICKET注文・ポジション・履歴管理
TicketPosition ticketを取得する決済対象、modify対象、ログ追跡ticketorder ticketやdeal ticketと混同しないようにします。POSITION_TICKETポジション・履歴用語
SymbolPositionの銘柄を取得するチャート銘柄との照合symbol文字列suffix付き銘柄や別銘柄混在に注意します。POSITION_SYMBOL時系列・価格取得
MagicPositionのMagic Numberを取得するEA別、ロジック別、裁量注文との分離magic値0は手動注文や未設定注文として扱う場合があります。POSITION_MAGICポジション・履歴用語
PositionTypeBUY / SELL方向を取得する方向別決済、方向別集計POSITION_TYPE_BUY / SELLOrderTypeとは別です。POSITION_TYPE列挙型・定数
Volume保有ロットを取得するロット集計、basket計算、部分決済確認volume最小ロットやlot stepと合わせて確認します。POSITION_VOLUMEロット・証拠金・銘柄仕様
PriceOpen建値を取得する含み損益、SL/TP、basket平均価格確認open priceBUY/SELLで損益方向が変わります。POSITION_PRICE_OPEN時系列・価格取得
Profit含み損益を取得するrisk表示、損益条件、決済条件profitEA別損益か口座全体損益かを分けます。POSITION_PROFIT注文・ポジション・履歴管理

COrderInfo

COrderInfoは、注文情報を扱うための標準ライブラリクラスです。現在の未約定注文や履歴注文の確認で使います。PositionやDealとは確認対象が異なるため、Order、Position、Dealを分けて扱うことが重要です。

クラス/メソッド用途使う場面確認する戻り値注意点関連ログ関連講座
COrderInfo注文情報を扱うクラス未約定注文、注文履歴、pending order確認Select結果、orderプロパティPositionやDealとは別対象です。ORDER_SNAPSHOT、ORDER_AUDIT注文・ポジション・履歴管理
Select注文を選択する注文一覧スキャン、pending確認true/false現在注文か履歴注文かを分けます。ORDER_SELECT注文関数・取引構造体
Ticket注文ticketを取得する注文変更、削除、履歴追跡order ticketposition ticketやdeal ticketと混同しないようにします。ORDER_TICKETポジション・履歴用語
OrderType注文種別を取得するBUY / SELL / LIMIT / STOPの確認ENUM_ORDER_TYPEPOSITION_TYPEとは別です。ORDER_TYPE列挙型・定数
State注文状態を取得する配置済み、約定済み、取消済み、期限切れ確認ENUM_ORDER_STATE履歴注文ではDeal履歴も合わせて確認します。ORDER_STATE列挙型・定数
PriceOpen注文価格を取得するpending価格、発注価格確認price現在価格との位置関係を確認します。ORDER_PRICE_OPEN時系列・価格取得
VolumeInitial初期注文数量を取得する注文数量確認、部分約定確認volume現在残量と分けて確認します。ORDER_VOLUME_INITIAL注文・ポジション・履歴管理
VolumeCurrent現在残量を取得する部分約定後の残量確認volumefilling方式や部分約定と関係します。ORDER_VOLUME_CURRENT注文関数・取引構造体

CDealInfo

CDealInfoは、約定履歴を扱うための標準ライブラリクラスです。売買損益、決済履歴、Magic Number別履歴、EA別集計、日次集計を行う時に使います。

Deal履歴では、BUY / SELLだけで新規・決済を断定しないようにします。DEAL_TYPE、DEAL_ENTRY、DEAL_PROFIT、DEAL_MAGIC、DEAL_COMMENTなどを組み合わせて確認します。

クラス/メソッド用途使う場面確認する戻り値注意点関連ログ関連講座
CDealInfo約定履歴を扱うクラス履歴確認、損益集計、EA別履歴確認Select結果、dealプロパティOrderやPositionとは対象が違います。DEAL_AUDIT、HISTORY_AUDIT注文・ポジション・履歴管理
Ticketdeal ticketを取得する履歴追跡、CSV出力、問い合わせ時の特定deal ticketorder ticketやposition ticketと混同しないようにします。DEAL_TICKETポジション・履歴用語
DealType約定種別を取得するBUY / SELL / balance等の分類ENUM_DEAL_TYPE新規・決済の判断にはDEAL_ENTRYも確認します。DEAL_TYPE列挙型・定数
Entry新規・決済・反転などの区分を取得する損益集計、決済履歴確認DEAL_ENTRYDEAL_TYPEだけで決済と断定しないようにします。DEAL_ENTRY注文・ポジション・履歴管理
Profit約定損益を取得する日次損益、EA別損益、決済結果確認profit手数料・スワップを別確認する場合があります。DEAL_PROFIT注文・ポジション・履歴管理
Magic約定のMagic Numberを取得するEA別、ロジック別の履歴集計magic手動注文や外部注文との分離に使います。DEAL_MAGICポジション・履歴用語
Comment約定コメントを取得するEA識別、外部連携、履歴調査comment文字列長すぎるコメントやブローカー側変更に注意します。DEAL_COMMENT注文・ポジション・履歴管理

CSymbolInfo

CSymbolInfoは、銘柄仕様や現在価格を扱うための標準ライブラリクラスです。ロット条件、point、digits、spread、StopsLevel、FreezeLevel、Bid、Askなどを確認する時に使います。

クラス/メソッド用途使う場面確認する戻り値注意点関連ログ関連講座
CSymbolInfo銘柄仕様・価格情報を扱うクラス発注前確認、価格表示、ロットvalidationName、RefreshRates結果、各プロパティ銘柄ごとの仕様差をログに残します。SYMBOL_SPEC、PRICE_SNAPSHOTロット・証拠金・銘柄仕様
Name対象銘柄名を取得または設定するチャート銘柄、別銘柄、suffix銘柄確認symbol文字列ブローカーごとのsuffixに注意します。SYMBOL_NAME時系列・価格取得
RefreshRates最新価格を更新する発注前、決済前、spread確認前true/false価格未更新や休場時の確認が必要です。PRICE_REFRESH、TICK_READ時系列・価格取得
BidBid価格を取得するSELL価格、BUY決済、spread計算Bid値BUY発注価格とは異なります。BID_CHECK時系列・価格取得
AskAsk価格を取得するBUY価格、SELL決済、spread計算Ask値SELL発注価格とは異なります。ASK_CHECK時系列・価格取得
Point最小価格単位を取得するSL/TP距離、spread、point換算point値GOLDや指数などで値が異なります。POINT_CHECKロット・証拠金・銘柄仕様
Digits価格小数桁を取得する価格丸め、表示、NormalizeDoubledigits値固定桁数で決め打ちしないようにします。DIGITS_CHECK列挙型・定数
LotsMin最小ロットを取得するロットvalidation最小ロット最小未満の注文は拒否されます。LOT_SPECロット・証拠金・銘柄仕様
LotsStepロット刻みを取得するロット丸め、NormalizeVolumelot stepstep不一致はINVALID_VOLUMEの原因になります。LOT_STEPロット・証拠金・銘柄仕様
StopsLevelSL/TPやpending価格の最小距離を取得するSL/TP設定、pending注文作成stops levelINVALID_STOPS対策で重要です。STOPS_CHECK注文関数・取引構造体
Spreadスプレッドを取得するspread制限、発注前確認spread値point単位か価格差かを明確にします。SPREAD_CHECK時系列・価格取得

CAccountInfo

CAccountInfoは、口座情報を扱う標準ライブラリクラスです。残高、有効証拠金、余剰証拠金、証拠金維持率、レバレッジ、口座通貨などを確認できます。

クラス/メソッド用途使う場面確認する戻り値注意点関連ログ関連講座
CAccountInfo口座情報を扱うクラスrisk表示、発注前確認、証拠金確認各口座プロパティEA別損益と口座全体情報を混同しないようにします。ACCOUNT_STATE、MARGIN_CHECKロット・証拠金・銘柄仕様
Balance口座残高を取得するロット計算、日次確認balance含み損益は反映されません。ACCOUNT_BALANCE列挙型・定数
Equity有効証拠金を取得する含み損益込みの口座状態確認equityBalanceとは異なります。ACCOUNT_EQUITYロット・証拠金・銘柄仕様
Margin使用中証拠金を取得する保有中ポジションの証拠金確認margin保有状態により変化します。ACCOUNT_MARGINロット・証拠金・銘柄仕様
FreeMargin余剰証拠金を取得する発注前の余力確認free marginNO_MONEY対策で確認します。ACCOUNT_FREE_MARGIN注文関数・取引構造体
MarginLevel証拠金維持率を取得するrisk制御、口座状態表示margin levelポジション増減や価格変動で急変します。MARGIN_LEVELロット・証拠金・銘柄仕様
Currency口座通貨を取得する損益表示、リスク計算、通貨換算確認currency文字列JPY、USD、cent口座などの違いに注意します。ACCOUNT_CURRENCYロット・証拠金・銘柄仕様

Buy / Sell / PositionClose

Buy、Sell、PositionCloseは、CTradeで特によく使うメソッドです。EAの基本的な新規発注と決済に関係するため、戻り値とResultRetcodeをセットで確認します。

メソッド用途使う場面確認する戻り値注意点関連ログ
Buy買い成行注文BUYシグナル成立後の新規発注true/false、ResultRetcode、ResultDeal、ResultOrderAsk、volume、SL/TP、spread、filling方式を確認します。BUY_SEND、ORDER_RESULT、ENTRY_EXEC
Sell売り成行注文SELLシグナル成立後の新規発注true/false、ResultRetcode、ResultDeal、ResultOrderBid、volume、SL/TP、spread、filling方式を確認します。SELL_SEND、ORDER_RESULT、ENTRY_EXEC
PositionCloseポジション決済条件決済、手動補助決済、risk決済true/false、ResultRetcode、ResultDealticket指定、symbol指定、hedging / netting差に注意します。CLOSE_SEND、CLOSE_RESULT、EXIT_EXEC

確認ポイント:Buy / Sell / PositionCloseの戻り値がtrueでも、期待どおりに約定・決済されたかはResultRetcode、ResultDeal、Position状態、History履歴で確認してください。

ResultRetcodeとCheckResult

ResultRetcodeは、CTradeで取引操作を行った後に、取引サーバーから返された結果コードを確認するために使います。CheckResultは、OrderCheckによる発注前確認結果を確認するために使います。

項目用途使う場面確認すること注意点関連ログ
ResultRetcode取引実行後のretcode確認Buy、Sell、PositionClose、OrderDeleteなどの後TRADE_RETCODE_DONE、PLACED、REJECT、INVALID_VOLUMEなど戻り値だけでなく必ず確認します。RESULT_RETCODE、ORDER_RESULT
ResultComment取引結果コメント確認注文拒否、価格不正、条件不備の補足確認comment文字列ブローカーやサーバーにより表記が異なる場合があります。RESULT_COMMENT
ResultOrder注文ticket確認注文受付後、pending作成後order ticketdeal ticketとは別です。RESULT_ORDER
ResultDeal約定ticket確認成行約定、決済約定後deal ticket約定がない場合は0になることがあります。RESULT_DEAL
CheckResult発注前確認結果OrderCheck、証拠金・条件確認retcode、margin、commentCheckが通っても実発注時に失敗する場合があります。CHECK_RESULT、ORDER_CHECK

OrderSend直接実装との違い

CTradeは便利ですが、内部では取引リクエストを組み立てて取引操作を行います。細かい制御や詳細なrequestログを重視する場合は、MqlTradeRequest、MqlTradeResult、OrderSend、OrderCheckを直接使う設計もあります。

比較項目CTradeを使う場合OrderSend直接実装の場合確認ポイント
実装量短く書きやすいrequestを自分で組み立てるため長くなりやすい保守性と詳細制御のどちらを優先するか
発注制御標準メソッドで扱いやすいaction、type、price、fillingなどを明示できる特殊注文や詳細ログが必要か
ログ追跡ResultRetcode等を確認するrequest / resultを丸ごと記録しやすいORDER_FAIL時の追跡粒度
学習しやすさEA初期開発では扱いやすいMQL5の取引構造を理解しやすい開発者の習熟度
拡張性一般的なEAでは十分な場合が多い特殊なretry、filling、複雑な注文制御に向く将来の拡張範囲
不具合調査retcodeとCTrade結果を確認するrequest内容とresultを細かく照合できるログ設計の有無

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

EAが発注しない、決済しない、注文エラーが出る、ポジションが選択されない、履歴集計が合わない場合は、標準ライブラリの使い方そのものよりも、戻り値、retcode、対象ticket、symbol、magic、銘柄仕様、口座状態の確認が重要です。

確認すること内容開発者へ伝えるとよい情報
EA名・バージョン設置しているEA名と版対象仕様を特定するため
対象機能新規発注、決済、SL/TP変更、pending削除、履歴集計などCTrade、CPositionInfo、CDealInfoなど見る範囲を絞るため
銘柄・時間足symbol、timeframe、ブローカー表記CSymbolInfoや価格取得の確認に必要です。
注文結果ResultRetcode、ResultComment、GetLastError発注拒否や条件不一致を確認するため
ポジション状態ticket、type、volume、magic、profitCPositionInfoで正しく選択できているか確認するため
履歴状態deal、order、entry、profit、magicCDealInfoやCOrderInfoの確認に必要です。
ExpertsログORDER_SEND、RESULT_RETCODE、POSITION_SNAPSHOTなどEA内部で何を実行したか確認するため
Journalログ端末側・取引サーバー側ログサーバー拒否や接続状態を確認するため
setファイルInputs設定ロット、Magic、spread、filling、risk条件の再現に必要です。
スクリーンショットチャート、設定、ログ、取引タブ、履歴タブ表示状態とログを照合するために役立ちます。

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

MQL5開発では、標準ライブラリを使う場合でも、signal、execution、risk、exit、history、symbol spec、account stateを分けて設計することが重要です。

責務主な確認対象実装上の注意確認ログ
executionCTrade、Buy、Sell、PositionClose戻り値、ResultRetcode、ResultCommentを必ず確認します。ORDER_SEND、ORDER_RESULT、CLOSE_RESULT
position snapshotCPositionInfosymbol、ticket、magic、type、volume、profitを分けて確認します。POSITION_SNAPSHOT、POSITION_SCOPE
order auditCOrderInfopending orderと履歴注文を分けて確認します。ORDER_AUDIT、PENDING_SCAN
deal historyCDealInfoDEAL_TYPEとDEAL_ENTRYをセットで確認します。DEAL_AUDIT、HISTORY_AUDIT
symbol validationCSymbolInfopoint、digits、lot step、StopsLevel、spreadを確認します。SYMBOL_SPEC、LOT_SPEC、STOPS_CHECK
account validationCAccountInfobalance、equity、free margin、margin levelを分けます。ACCOUNT_STATE、MARGIN_CHECK
precheckCheckResult、OrderCheck発注前確認と実発注結果を混同しないようにします。ORDER_CHECK、CHECK_RESULT

実装時の注意点

  • CTradeの戻り値だけで成功判定を完結しない
  • ResultRetcode、ResultComment、ResultOrder、ResultDealをログに残す
  • Buy / Sell前にvolume、price、SL/TP、spread、filling方式を確認する
  • PositionCloseではticket指定とsymbol指定の違いを確認する
  • CPositionInfoではOrderやDealとticketを混同しない
  • CDealInfoではDEAL_TYPEとDEAL_ENTRYをセットで確認する
  • CSymbolInfoでpoint、digits、lot step、StopsLevelを確認する
  • CAccountInfoでBalanceとEquityを混同しない
  • CheckResultは発注前確認であり、実発注成功とは別に扱う
  • 標準ライブラリを使う場合でも、ExpertsログとJournalログを必ず確認する

標準ライブラリ主要クラス・メソッド辞典表

クラス/メソッド用途使う場面確認する戻り値注意点関連ログ関連講座
CTrade取引操作クラス発注、決済、SL/TP変更、注文削除各メソッド戻り値、ResultRetcoderetcode確認を省略しないTRADE_RESULT標準ライブラリ・CTrade
Buy買い成行注文BUYエントリーtrue/false、ResultRetcode、ResultDealAsk、volume、SL/TPを確認BUY_SEND注文関数・取引構造体
Sell売り成行注文SELLエントリーtrue/false、ResultRetcode、ResultDealBid、volume、SL/TPを確認SELL_SEND注文関数・取引構造体
PositionCloseポジション決済条件決済、手動補助決済、risk決済true/false、ResultRetcode、ResultDealhedging / netting差に注意CLOSE_RESULT注文・ポジション・履歴管理
ResultRetcode取引結果コード確認CTrade実行後TRADE_RETCODE戻り値と別に確認RESULT_RETCODEエラーコード辞典
CheckResult発注前確認結果OrderCheck後、証拠金確認retcode、margin、comment実発注成功とは別CHECK_RESULT注文関数・取引構造体
CPositionInfo保有ポジション情報Positionスキャン、保有確認、決済対象確認Select結果、ticket、type、volumeOrder / Dealと混同しないPOSITION_SNAPSHOTポジション・履歴用語
COrderInfo注文情報pending order確認、注文履歴確認Select結果、type、state、pricePositionとは別対象ORDER_AUDIT注文・ポジション・履歴管理
CDealInfo約定履歴情報履歴確認、損益集計、EA別集計deal ticket、type、entry、profitDEAL_TYPEだけで新規/決済を断定しないDEAL_AUDITポジション・履歴用語
CSymbolInfo銘柄仕様・価格情報発注前確認、ロット確認、spread確認Point、Digits、LotsStep、StopsLevel銘柄差・ブローカー差を確認SYMBOL_SPECロット・証拠金・銘柄仕様
CAccountInfo口座情報risk確認、証拠金確認、口座状態表示Balance、Equity、FreeMargin口座全体情報とEA別損益を分けるACCOUNT_STATEロット・証拠金・銘柄仕様

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

標準ライブラリ、CTrade、Position確認、Order確認、Deal履歴、銘柄仕様、口座情報まわりの不具合調査や改修依頼を行う場合は、次の情報を整理してください。

整理する情報内容理由
対象EA名・インジ名・バージョンmq5/ex5名、商品名、バージョン対象ファイルと仕様を特定するため
対象機能発注、決済、SL/TP変更、pending削除、履歴集計などCTrade、CPositionInfo、CDealInfoなど見る範囲を分けるため
対象銘柄・時間足symbol、timeframe、ブローカー表記CSymbolInfo、価格取得、spread確認に必要です。
注文条件Buy / Sell、volume、SL/TP、deviation、filling方式CTrade実行時の条件確認に必要です。
retcodeResultRetcode、ResultComment、GetLastError注文結果・拒否理由を確認するため
Position情報ticket、symbol、magic、type、volume、profitCPositionInfoで選択対象を確認するため
Order / Deal履歴order ticket、deal ticket、type、entry、profit、magicCOrderInfo / CDealInfoで履歴を照合するため
銘柄仕様point、digits、lot step、StopsLevel、spread、filling modeINVALID_VOLUME、INVALID_STOPS、INVALID_FILL確認に必要です。
口座情報Balance、Equity、FreeMargin、MarginLevelNO_MONEYやrisk制御の確認に必要です。
ExpertsログORDER_SEND、RESULT_RETCODE、POSITION_SNAPSHOT、HISTORY_AUDITなどEA内部の実行経路を追うため
Journalログ端末側・サーバー側ログサーバー拒否や接続状態を確認するため
setファイルInputs設定ロット、Magic、risk、filling、spread条件の再現に必要です。
スクリーンショットチャート、設定画面、Expertsログ、Journalログ、取引タブ、履歴タブ表示状態とログを照合するため

送ってはいけない情報:口座パスワード、投資家パスワード、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ポジション・注文・約定・履歴用語辞典Order、Position、Deal、History、ticket、magic、commentなど、取引管理で混同しやすい用語を確認できます。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列挙型・定数辞典

確認ポイント:標準ライブラリでは、CTradeの戻り値だけで判断せず、ResultRetcode、ResultComment、Position状態、Order履歴、Deal履歴、CSymbolInfo、CAccountInfoをセットで確認してください。

関連する技術講座

関連ページ確認できる内容
技術講座ハブMT5・MQL5・EA開発関連の技術講座一覧を確認できます。
MQL5標準ライブラリ・CTrade完全ガイドCTrade、Buy、Sell、PositionClose、ResultRetcodeの確認に使えます。
MQL5注文・ポジション・履歴管理完全ガイドOrder、Position、Deal、History、ticket、magic、commentの確認に使えます。
MQL5ロット・証拠金・銘柄仕様完全ガイドCSymbolInfo、CAccountInfo、ロット条件、証拠金確認に使えます。
MT5 EA・インジケーター開発代行の選び方EA作成、インジ作成、標準ライブラリ利用、改修依頼の違いを確認できます。
MT5開発依頼前に用意する資料まとめ開発依頼前に整理するログ、setファイル、再現条件を確認できます。

FAQ

CTradeを使えばOrderSendを理解しなくてもよいですか?

基本的な発注はCTradeで扱いやすくなりますが、OrderSend、MqlTradeRequest、MqlTradeResultの考え方も理解しておくと、不具合調査や詳細なログ確認がしやすくなります。

BuyやSellの戻り値がtrueなら発注成功ですか?

trueだけで期待どおりの約定と断定しないでください。ResultRetcode、ResultDeal、ResultOrder、Position状態、History履歴を確認する必要があります。

PositionCloseで決済できない場合は何を確認しますか?

対象ticket、symbol、position type、volume、現在価格、spread、ResultRetcode、ResultComment、Journalログを確認してください。hedging口座とnetting口座の違いも確認対象です。

CPositionInfoとCOrderInfoは何が違いますか?

CPositionInfoは保有中ポジションを確認するためのクラスです。COrderInfoは注文情報、特に未約定注文や注文履歴を確認するためのクラスです。PositionとOrderは別の概念として扱います。

CDealInfoは何に使いますか?

約定履歴の確認に使います。決済損益、EA別履歴、Magic別集計、日次損益確認などで使います。DEAL_TYPEだけでなくDEAL_ENTRYも確認してください。

CSymbolInfoでは何を確認しますか?

Bid、Ask、Point、Digits、最小ロット、ロット刻み、StopsLevel、Spreadなどを確認します。発注前のvalidationやINVALID_VOLUME、INVALID_STOPSの原因確認に重要です。

CAccountInfoでは何を確認しますか?

Balance、Equity、Margin、FreeMargin、MarginLevel、Currencyなどを確認します。残高と有効証拠金、口座全体損益とEA別損益を混同しないようにしてください。

CheckResultは実発注結果ですか?

CheckResultは発注前確認の結果です。証拠金や注文条件の事前確認には使えますが、実際のOrderSendやCTrade実行結果とは別に扱います。

標準ライブラリと直接OrderSend実装はどちらがよいですか?

一般的なEAではCTradeが扱いやすい場合が多いです。特殊な発注制御、詳細なrequestログ、独自retry、細かいfilling制御が必要な場合は、OrderSend直接実装も検討します。

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

EA名、バージョン、対象機能、銘柄、時間足、注文条件、ResultRetcode、Expertsログ、Journalログ、setファイル、スクリーンショット、再現手順を整理してください。

まとめ

MQL5標準ライブラリでは、CTrade、CPositionInfo、COrderInfo、CDealInfo、CSymbolInfo、CAccountInfoを目的別に使い分けることが重要です。

CTradeは発注や決済を簡潔に扱える便利なクラスですが、Buy、Sell、PositionCloseの戻り値だけで成功判定を完結しないようにしてください。ResultRetcode、ResultComment、ResultOrder、ResultDeal、Position状態、History履歴を確認します。

CPositionInfo、COrderInfo、CDealInfoは、それぞれPosition、Order、Dealを確認するためのクラスです。ticket、type、state、entry、magic、commentなどを混同しないようにしてください。

CSymbolInfoとCAccountInfoは、発注前validationやrisk確認に重要です。point、digits、lot step、StopsLevel、spread、Balance、Equity、FreeMargin、MarginLevelを整理して確認してください。

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

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