MQL5関数辞典|EA・インジケーター開発で使う主要関数一覧
MQL5でEAやインジケーターを開発する場合、イベント処理、注文処理、ポジション確認、履歴確認、インジケーター連携、価格取得、ファイル操作、外部連携、チャート表示など、目的ごとに使う関数が変わります。
このページでは、EA・インジケーター開発でよく使うMQL5関数を、目的別に整理します。公式リファレンスの代わりに丸暗記するための記事ではなく、どの関数を、どの場面で使い、戻り値やログのどこを確認するかを整理するための関数辞典です。
関数名だけを見ても、原因や使い方は判断できません。たとえば、OrderSendで注文できない場合でも、原因はロット、証拠金、銘柄仕様、取引時間、type_filling、EAの発注ガード、取引サーバー側retcodeなどに分かれます。CopyBufferで値が取れない場合も、インジケーターハンドル、バッファ番号、必要本数、確定足、履歴データ、BarsCalculatedなどを合わせて確認します。
注意:この記事は、MQL5開発・EA動作確認・インジケーター連携・不具合調査のための技術解説です。特定の売買判断、推奨エントリー、推奨ロット、推奨銘柄、利益保証、勝率保証、損失回避保証、特定ブローカーへの誘導を目的としたものではありません。実運用前には、必ずデモ環境や検証環境で動作を確認してください。
MQL5関数を目的別に調べる考え方
MQL5の関数は、名前だけでなく、処理の責務ごとに分けて確認すると理解しやすくなります。
| 分類 | 主な用途 | 代表関数・クラス | 最初に確認すること |
|---|---|---|---|
| イベント関数 | EA・インジケーターの処理入口 | OnInit / OnTick / OnDeinit / OnTimer / OnCalculate / OnChartEvent | どのイベントで処理しているか |
| 注文・取引関数 | 注文送信、注文前チェック、決済、注文変更 | OrderSend / OrderCheck / CTrade.Buy / CTrade.Sell / PositionClose | 戻り値、retcode、request/result |
| ポジション関数 | 現在保有中ポジションの確認 | PositionSelect / PositionGetInteger / PositionGetDouble / PositionsTotal | 選択対象、ticket、symbol、magic |
| 履歴関数 | 過去の注文・約定履歴の確認 | HistorySelect / HistoryDealGetTicket / HistoryDealGetInteger | 履歴期間、OrderとDealの違い |
| インジケーター関数 | インジケーターハンドル作成、値取得 | iCustom / iMA / iATR / CopyBuffer / IndicatorRelease | handle、buffer番号、取得本数 |
| 時系列・価格取得関数 | ローソク足、価格、時刻、銘柄情報の取得 | CopyRates / CopyClose / iClose / iTime / SymbolInfoDouble | 現在足と確定足、symbol、timeframe |
| ファイル操作関数 | CSV保存、ログ出力、設定ファイル読み込み | FileOpen / FileWrite / FileReadString / FileClose | 保存先、FILE_COMMON、文字コード |
| 外部連携関数 | Webhook、外部API、Google Sheets、通知連携 | WebRequest / StringToCharArray / CharArrayToString | 許可URL、HTTPステータス、timeout |
| チャートオブジェクト関数 | ラベル、ボタン、ライン、パネルUI | ObjectCreate / ObjectSetInteger / ObjectSetString / ObjectDelete | object名、subwindow、z-order、イベント |
| 標準ライブラリ | CTradeやInfo系クラスによる取引・状態管理 | CTrade / CPositionInfo / COrderInfo / CDealInfo / CSymbolInfo / CAccountInfo | Select結果、ResultRetcode、Info値 |
EA開発では、signal、execution、risk、exit、auth、external control、notification、UI表示、loggingを分けて考えると、関数の使いどころを整理しやすくなります。
イベント関数一覧
イベント関数は、EA・インジケーター・スクリプトの処理入口です。どのイベントで何を処理しているかを分けると、不具合調査がしやすくなります。
| 関数名 | 分類 | 主な用途 | 戻り値 / 確認値 | よく使う場面 | 関連エラー | 関連講座 |
|---|---|---|---|---|---|---|
| OnInit | イベント関数 | EA・インジケーター起動時の初期化 | INIT_SUCCEEDED / INIT_FAILEDなど | 入力値validation、ハンドル作成、タイマー設定、初期ログ | 初期化失敗、INVALID_HANDLE、設定不備 | MQL5開発入門 |
| OnDeinit | イベント関数 | 終了時・削除時・再初期化時の後片付け | deinit reason | Timer解除、IndicatorRelease、Object cleanup、終了ログ | 削除漏れ、重いcleanup、異常終了 | MQL5開発入門 |
| OnTick | イベント関数 | 新しいtick受信時のEA処理 | 戻り値なし。処理頻度・判定ログを確認 | 価格監視、エントリー判定、決済判定、トレーリング | 処理過多、重いPrint、重複発注 | MQL5開発入門 |
| OnTimer | イベント関数 | 一定間隔での処理 | 戻り値なし。timer設定状態を確認 | 外部連携、定期ログ、パネル更新、状態監視 | Timer未設定、EventKillTimer漏れ、処理重複 | MQL5開発入門 |
| OnCalculate | イベント関数 | インジケーター計算処理 | 計算済み本数、rates_total、prev_calculated | カスタムインジケーター、バッファ計算、サイン描画 | 配列範囲外、バッファ未設定、計算本数不足 | MQL5インジケーター開発・EA連携完全ガイド |
| OnChartEvent | イベント関数 | チャートイベント・ボタンクリック処理 | id、lparam、dparam、sparam | OBJ_BUTTON、パネルEA、チャート操作、キー入力 | イベント未取得、object名不一致、z-order不整合 | MQL5開発入門 |
| OnTradeTransaction | イベント関数 | 取引イベントの監視 | transaction、request、result | 注文・約定・決済の変化検出、取引監査ログ | 注文と約定の混同、イベント処理過多 | MQL5注文・ポジション・履歴管理完全ガイド |
ログ・エラー確認関数一覧
エラー確認では、GetLastErrorだけを見ても原因を断定できません。発生関数、戻り値、直前処理、Expertsログ、Journalログ、取引サーバーretcodeを合わせて確認します。
| 関数名 | 分類 | 主な用途 | 戻り値 / 確認値 | よく使う場面 | 関連エラー | 関連講座 |
|---|---|---|---|---|---|---|
| ログ出力 | Expertsログへ情報を出す | 戻り値なし。ログ出力内容を確認 | 初期化、判定理由、注文結果、デバッグ | ログ過多、BT速度低下、情報不足 | MQL5エラーコード辞典 | |
| PrintFormat | ログ出力 | 整形したログを出す | 戻り値なし。書式と出力値を確認 | 関数名、symbol、timeframe、retcode、価格の整形 | 書式不一致、型不一致、ログ不足 | MQL5エラーコード辞典 |
| GetLastError | エラー確認 | 直近のMQL5実行時エラーを取得する | エラーコード | FileOpen、CopyBuffer、WebRequest、Object操作の失敗確認 | 直前エラーの残存、原因断定ミス | MQL5エラーコード辞典 |
| ResetLastError | エラー確認 | 直近エラーコードをリセットする | 戻り値なし | 関数呼び出し前にエラー状態を明確化 | 古いエラーコードの誤参照 | MQL5エラーコード辞典 |
| TerminalInfoInteger | 端末状態確認 | 端末・自動売買・接続状態などを確認する | integer / bool系の端末情報 | 自動売買許可、接続状態、VPS確認 | EAが注文できない、端末設定不足 | MQL5エラーコード辞典 |
| MQLInfoInteger | プログラム状態確認 | EA側の許可状態や実行環境を確認する | integer / bool系のMQL情報 | 自動売買許可、DLL許可、テスター判定 | 取引不可、環境差、Tester制約 | MQL5エラーコード辞典 |
注文・取引関数一覧
注文関数では、関数の戻り値だけでなく、取引サーバー側の結果コードを確認します。特にOrderSendやCTrade系では、送信できたことと、約定・決済が成立したことを分けて確認します。
| 関数名 | 分類 | 主な用途 | 戻り値 / 確認値 | よく使う場面 | 関連エラー | 関連講座 |
|---|---|---|---|---|---|---|
| OrderSend | 注文・取引 | MqlTradeRequestを送信する | bool戻り値、MqlTradeResult.retcode、order、deal | 新規注文、決済、SL/TP変更、Pending order | INVALID_VOLUME、INVALID_STOPS、NO_MONEY、INVALID_FILL | MQL5注文・ポジション・履歴管理完全ガイド |
| OrderCheck | 注文・取引 | 注文前に証拠金や条件をチェックする | MqlTradeCheckResult、retcode、margin、margin_free | 発注前validation、ロット確認、証拠金確認 | 証拠金不足、volume不正、価格不正 | MQL5注文・ポジション・履歴管理完全ガイド |
| OrderCalcMargin | 注文・取引 | 必要証拠金を計算する | bool戻り値、margin値 | ロット計算、証拠金確認、発注前チェック | 計算失敗、symbol未選択、価格不正 | MQL5注文・ポジション・履歴管理完全ガイド |
| OrderCalcProfit | 注文・取引 | 想定損益を計算する | bool戻り値、profit値 | リスク計算、SL距離確認、ロット計算補助 | 計算失敗、tick value不整合、価格指定ミス | MQL5注文・ポジション・履歴管理完全ガイド |
| CTrade.Buy | 標準ライブラリ | CTrade経由で買い注文を出す | method戻り値、ResultRetcode、ResultDeal、ResultOrder | BUYエントリー、標準ライブラリ実装 | ResultRetcode未確認、type_filling不一致 | MQL5標準ライブラリ・CTrade完全ガイド |
| CTrade.Sell | 標準ライブラリ | CTrade経由で売り注文を出す | method戻り値、ResultRetcode、ResultDeal、ResultOrder | SELLエントリー、標準ライブラリ実装 | ResultRetcode未確認、価格変動、証拠金不足 | MQL5標準ライブラリ・CTrade完全ガイド |
| CTrade.PositionClose | 標準ライブラリ | ポジションを決済する | method戻り値、ResultRetcode、ResultDeal | 決済処理、停止時決済、条件決済 | 対象ポジションなし、決済数量不正、FIFO制限 | MQL5標準ライブラリ・CTrade完全ガイド |
| CTrade.PositionModify | 標準ライブラリ | SL/TPを変更する | method戻り値、ResultRetcode | 建値移動、トレーリング、保護設定 | INVALID_STOPS、FROZEN、FreezeLevel制限 | MQL5標準ライブラリ・CTrade完全ガイド |
ポジション関数一覧
現在保有中の状態を確認する時は、OrderではなくPositionを確認します。Netting口座とHedging口座では、同一シンボルのポジション管理方式が異なるため、symbol単位かticket単位かを明確にします。
| 関数名 | 分類 | 主な用途 | 戻り値 / 確認値 | よく使う場面 | 関連エラー | 関連講座 |
|---|---|---|---|---|---|---|
| PositionsTotal | ポジション | 現在保有中のポジション数を取得する | int件数 | 保有数制限、ループ処理、口座状態確認 | Netting/Hedgingの意味差、件数誤認 | MQL5注文・ポジション・履歴管理完全ガイド |
| PositionGetTicket | ポジション | indexからポジションticketを取得する | position ticket | ポジションループ、ticket単位管理 | index範囲外、ticket更新、決済済み参照 | MQL5注文・ポジション・履歴管理完全ガイド |
| PositionSelect | ポジション | symbolでポジションを選択する | true / false | シンボル単位の保有確認、Netting口座 | symbol違い、未保有、Hedgingでの誤認 | MQL5注文・ポジション・履歴管理完全ガイド |
| PositionSelectByTicket | ポジション | ticketでポジションを選択する | true / false | Hedging口座、個別ポジション管理、個別決済 | ticket違い、決済済み、古いticket参照 | MQL5注文・ポジション・履歴管理完全ガイド |
| PositionGetInteger | ポジション | integer系ポジション情報を取得する | POSITION_TYPE、POSITION_MAGIC、POSITION_IDENTIFIERなど | 方向確認、Magic確認、Position ID追跡 | 選択漏れ、プロパティ種別違い | MQL5注文・ポジション・履歴管理完全ガイド |
| PositionGetDouble | ポジション | double系ポジション情報を取得する | volume、price、profit、SL、TPなど | ロット、建値、損益、SL/TP確認 | 0値と取得失敗の混同、選択漏れ | MQL5注文・ポジション・履歴管理完全ガイド |
| PositionGetString | ポジション | string系ポジション情報を取得する | symbol、commentなど | 銘柄確認、コメント確認、識別補助 | comment依存、選択漏れ、symbol違い | MQL5注文・ポジション・履歴管理完全ガイド |
注文・履歴関数一覧
MQL5では、Order、Position、Deal、Historyを分けて確認します。未約定注文を見る関数と、現在ポジションを見る関数と、過去の約定履歴を見る関数は別です。
| 関数名 | 分類 | 主な用途 | 戻り値 / 確認値 | よく使う場面 | 関連エラー | 関連講座 |
|---|---|---|---|---|---|---|
| OrdersTotal | 注文 | 現在の未約定注文数を取得する | int件数 | Pending orderの件数確認、注文取消前確認 | Position数との混同、履歴注文との混同 | MQL5注文・ポジション・履歴管理完全ガイド |
| OrderGetTicket | 注文 | indexから現在注文ticketを取得する | order ticket | 未約定注文ループ、注文変更、注文削除 | index範囲外、履歴注文との混同 | MQL5注文・ポジション・履歴管理完全ガイド |
| OrderSelect | 注文 | 現在の注文を選択する | true / false | Pending order確認、注文変更前確認 | 対象注文なし、ticket違い、履歴側との混同 | MQL5注文・ポジション・履歴管理完全ガイド |
| OrderGetInteger | 注文 | integer系注文情報を取得する | ORDER_TYPE、ORDER_STATE、ORDER_MAGICなど | 注文種別、注文状態、Magic確認 | プロパティ種別違い、未選択注文 | MQL5注文・ポジション・履歴管理完全ガイド |
| OrderGetDouble | 注文 | double系注文情報を取得する | price、volume、SL/TPなど | Pending order価格、数量、変更確認 | 現在価格との混同、Position volumeとの混同 | MQL5注文・ポジション・履歴管理完全ガイド |
| OrderGetString | 注文 | string系注文情報を取得する | symbol、commentなど | 注文コメント、銘柄確認 | comment依存、symbol違い | MQL5注文・ポジション・履歴管理完全ガイド |
| HistorySelect | 履歴 | 指定期間の履歴を選択する | true / false、履歴件数 | 日次損益、決済履歴、注文履歴確認 | 期間指定ミス、履歴0件、時間基準混同 | MQL5注文・ポジション・履歴管理完全ガイド |
| HistorySelectByPosition | 履歴 | 指定Position IDに関連する履歴を選択する | true / false、履歴件数 | 1ポジションの新規から決済まで追跡 | Position ID混同、履歴範囲不足 | MQL5注文・ポジション・履歴管理完全ガイド |
| HistoryDealsTotal | 履歴 | 選択済み履歴内のDeal件数を取得する | int件数 | 履歴ループ、日次損益集計 | HistorySelect漏れ、OrderとDealの混同 | MQL5注文・ポジション・履歴管理完全ガイド |
| HistoryDealGetTicket | 履歴 | indexからDeal ticketを取得する | deal ticket | 約定履歴ループ、決済履歴確認 | 履歴未選択、index範囲外、Dealなし | MQL5注文・ポジション・履歴管理完全ガイド |
| HistoryDealGetInteger | 履歴 | integer系Deal情報を取得する | DEAL_TYPE、DEAL_ENTRY、DEAL_MAGICなど | 新規・決済分類、EA別履歴、Deal監査 | DEAL_TYPEとDEAL_ENTRYの混同 | MQL5注文・ポジション・履歴管理完全ガイド |
| HistoryDealGetDouble | 履歴 | double系Deal情報を取得する | volume、price、profit、commission、swapなど | 損益集計、約定価格確認、決済履歴確認 | 手数料・swap漏れ、履歴範囲不足 | MQL5注文・ポジション・履歴管理完全ガイド |
| HistoryDealGetString | 履歴 | string系Deal情報を取得する | symbol、commentなど | 履歴の銘柄確認、コメント確認 | comment依存、symbol違い | MQL5注文・ポジション・履歴管理完全ガイド |
銘柄・価格・口座情報関数一覧
発注前やリスク計算では、銘柄仕様と口座状態の確認が重要です。point、digits、tick value、volume step、stops level、filling modeを固定値で決め打ちすると、ブローカーや銘柄差で不具合が出やすくなります。
| 関数名 | 分類 | 主な用途 | 戻り値 / 確認値 | よく使う場面 | 関連エラー | 関連講座 |
|---|---|---|---|---|---|---|
| SymbolInfoDouble | 銘柄情報 | double系銘柄情報を取得する | Bid、Ask、Point、TickValue、VolumeMinなど | 発注価格、スプレッド、ロット正規化、損益計算 | 銘柄未選択、プロパティ種別違い、値0誤認 | MQL5時系列データ・価格取得完全ガイド |
| SymbolInfoInteger | 銘柄情報 | integer / bool系銘柄情報を取得する | Digits、Spread、TradeMode、StopsLevel、FillingMode | 取引可否、SL/TP距離、filling mode確認 | INVALID_FILL、INVALID_STOPS、銘柄条件違い | MQL5時系列データ・価格取得完全ガイド |
| SymbolInfoString | 銘柄情報 | string系銘柄情報を取得する | symbol description、currency、pathなど | 銘柄名、基軸通貨、損益通貨、suffix確認 | 銘柄名違い、通貨解決ミス | MQL5時系列データ・価格取得完全ガイド |
| SymbolInfoTick | 銘柄情報 | 最新tick情報を取得する | bid、ask、last、volume、time | 発注前価格更新、価格配信確認、現在価格ログ | tick未配信、価格なし、休場、接続不安定 | MQL5時系列データ・価格取得完全ガイド |
| SymbolSelect | 銘柄情報 | Market Watchへ銘柄を選択する | true / false | マルチシンボルEA、別銘柄価格取得 | 不明なsymbol、Market Watch未選択 | MQL5時系列データ・価格取得完全ガイド |
| AccountInfoDouble | 口座情報 | double系口座情報を取得する | Balance、Equity、FreeMargin、MarginLevelなど | 証拠金確認、リスク管理、表示 | 口座状態誤認、balance/equity混同 | MQL5注文・ポジション・履歴管理完全ガイド |
| AccountInfoInteger | 口座情報 | integer / bool系口座情報を取得する | ACCOUNT_MARGIN_MODE、TRADE_ALLOWEDなど | Netting/Hedging判定、取引許可確認 | 口座方式誤認、EA取引不可 | MQL5注文・ポジション・履歴管理完全ガイド |
| AccountInfoString | 口座情報 | string系口座情報を取得する | server、currency、companyなど | ログ表示、口座通貨確認、環境確認 | 公開ログへの情報出しすぎ | MQL5エラーコード辞典 |
時系列・価格取得関数一覧
時系列・価格取得では、現在足と確定足を分けることが重要です。shift=0やstart_pos=0は現在形成中の足を指すため、バー確定型EAではshift=1や確定足basisを明示します。
| 関数名 | 分類 | 主な用途 | 戻り値 / 確認値 | よく使う場面 | 関連エラー | 関連講座 |
|---|---|---|---|---|---|---|
| CopyRates | 時系列 | MqlRates配列でOHLC・時刻・volume・spreadを取得する | コピー件数。失敗時-1 | ローソク足一括取得、MTF判定、検証ログ | 履歴不足、取得件数不足、symbol/timeframe違い | MQL5時系列データ・価格取得完全ガイド |
| CopyOpen | 時系列 | 始値配列を取得する | コピー件数 | ローソク足形状、ギャップ確認 | 履歴不足、配列サイズ不足 | MQL5時系列データ・価格取得完全ガイド |
| CopyHigh | 時系列 | 高値配列を取得する | コピー件数 | 高値ブレイク、レンジ上限、SL/TP補助 | 履歴不足、start_posミス | MQL5時系列データ・価格取得完全ガイド |
| CopyLow | 時系列 | 安値配列を取得する | コピー件数 | 安値割れ、レンジ下限、SL/TP補助 | 履歴不足、必要本数不足 | MQL5時系列データ・価格取得完全ガイド |
| CopyClose | 時系列 | 終値配列を取得する | コピー件数 | 確定足判定、MA計算、終値ベース判定 | 現在足と確定足の混同、履歴不足 | MQL5時系列データ・価格取得完全ガイド |
| CopyTime | 時系列 | バー開始時刻配列を取得する | コピー件数 | 新バー判定、MTF同期、履歴確認 | timeframe違い、履歴未同期 | MQL5時系列データ・価格取得完全ガイド |
| iOpen / iHigh / iLow / iClose | 時系列 | 指定shiftのOHLCを取得する | 価格値。取得失敗時0の可能性 | 単発確認、簡易判定、デバッグ | 0値誤認、履歴不足、shift違い | MQL5時系列データ・価格取得完全ガイド |
| iTime | 時系列 | 指定shiftのバー開始時刻を取得する | datetime値。失敗時0の可能性 | 新バー判定、MTF同期、バー確定確認 | 履歴不足、対象時間足違い | MQL5時系列データ・価格取得完全ガイド |
| Bars | 時系列 | 指定symbol/timeframeのバー数を確認する | バー数 | 必要本数確認、初期ロード確認 | バー不足、履歴未ロード、期間不足 | MQL5時系列データ・価格取得完全ガイド |
| SeriesInfoInteger | 時系列 | 時系列データの同期状態などを確認する | integer / bool系の系列情報 | 履歴同期、データ準備確認 | 履歴未同期、Copy系取得失敗 | MQL5時系列データ・価格取得完全ガイド |
| PeriodSeconds | 時系列 | 時間足の秒数を取得する | 秒数 | バー時間幅、タイマー補助、MTF処理 | PERIOD_CURRENT依存、時間足誤認 | MQL5時系列データ・価格取得完全ガイド |
時間関数一覧
EAの時間制御では、PC時刻、サーバー時刻、バー時刻を混同しないことが重要です。ログには、どの時刻をbasisにしているかを明示します。
| 関数名 | 分類 | 主な用途 | 戻り値 / 確認値 | よく使う場面 | 関連エラー | 関連講座 |
|---|---|---|---|---|---|---|
| TimeCurrent | 時間 | 最後に受信した気配値に基づくサーバー時刻を取得する | datetime | 取引時間判定、日次制御、ログ | 無tick時間帯、サーバー時刻誤認 | MQL5時系列データ・価格取得完全ガイド |
| TimeTradeServer | 時間 | 取引サーバー時刻を取得する | datetime | サーバー時刻基準の制御、外部時間制御 | PC時刻との混同、時刻basis不明 | MQL5時系列データ・価格取得完全ガイド |
| TimeLocal | 時間 | PCローカル時刻を取得する | datetime | ログ補助、端末環境確認 | PC時刻ズレ、サーバー時刻との混同 | MQL5エラーコード辞典 |
| TimeToString | 時間 | datetimeを文字列へ変換する | 時刻文字列 | ログ、CSV、画面表示 | 書式不統一、時刻basis不明 | MQL5エラーコード辞典 |
| StringToTime | 時間 | 文字列をdatetimeへ変換する | datetime | 設定ファイル、外部CSV、時間制御 | 文字列形式不正、タイムゾーン誤認 | MQL5エラーコード辞典 |
インジケーター関数一覧
EAからインジケーター値を使う場合は、ハンドル作成、BarsCalculated、CopyBuffer、buffer番号、shift、IndicatorReleaseを分けて確認します。
| 関数名 | 分類 | 主な用途 | 戻り値 / 確認値 | よく使う場面 | 関連エラー | 関連講座 |
|---|---|---|---|---|---|---|
| iCustom | インジケーター | カスタムインジケーターのハンドルを作成する | indicator handle。失敗時INVALID_HANDLE | サインインジEA化、外部インジ参照 | インジ名違い、Inputs不一致、ファイル配置ミス | MQL5インジケーター開発・EA連携完全ガイド |
| iMA | インジケーター | 移動平均のハンドルを作成する | indicator handle | トレンド判定、フィルター、MAクロス | handle作成失敗、パラメータ不正 | MQL5インジケーター開発・EA連携完全ガイド |
| iATR | インジケーター | ATRのハンドルを作成する | indicator handle | ボラティリティ判定、SL/TP幅、フィルター | 履歴不足、handle不正、CopyBuffer失敗 | MQL5インジケーター開発・EA連携完全ガイド |
| iRSI | インジケーター | RSIのハンドルを作成する | indicator handle | 逆張り判定、過熱感フィルター | パラメータ不正、buffer取得失敗 | MQL5インジケーター開発・EA連携完全ガイド |
| iBands | インジケーター | ボリンジャーバンドのハンドルを作成する | indicator handle | レンジ判定、バンドタッチ、幅判定 | buffer番号違い、CopyBuffer不足 | MQL5インジケーター開発・EA連携完全ガイド |
| BarsCalculated | インジケーター | インジケーター計算済みバー数を確認する | 計算済みバー数 | CopyBuffer前の準備確認 | 計算不足、初回ロード中、handle不正 | MQL5インジケーター開発・EA連携完全ガイド |
| CopyBuffer | インジケーター | インジケーターバッファ値を取得する | コピー件数。失敗時-1 | サイン値取得、MA値取得、確定足判定 | buffer番号違い、必要本数不足、handle不正 | MQL5インジケーター開発・EA連携完全ガイド |
| IndicatorRelease | インジケーター | インジケーターハンドルを解放する | bool戻り値 | OnDeinit、ハンドル再作成、リソース管理 | 解放済み参照、handleリーク | MQL5インジケーター開発・EA連携完全ガイド |
| SetIndexBuffer | インジケーター | カスタムインジケーターのバッファを設定する | bool戻り値 | 描画バッファ、計算バッファ、サインバッファ | buffer番号違い、宣言数不足、描画不具合 | MQL5インジケーター開発・EA連携完全ガイド |
| PlotIndexSetInteger | インジケーター | 描画プロパティを設定する | bool戻り値 | 矢印、ライン、色、描画開始位置 | 描画されない、plot番号違い | MQL5インジケーター開発・EA連携完全ガイド |
ファイル操作関数一覧
ファイル操作では、通常のMQL5\Files、Strategy Tester側Files、FILE_COMMONの共通フォルダを混同しないことが重要です。CSVログでは、列構成、文字コード、区切り文字、出力頻度も確認します。
| 関数名 | 分類 | 主な用途 | 戻り値 / 確認値 | よく使う場面 | 関連エラー | 関連講座 |
|---|---|---|---|---|---|---|
| FileOpen | ファイル操作 | ファイルを開いてhandleを取得する | file handle。失敗時INVALID_HANDLE | CSV出力、設定ファイル読み込み、ログ保存 | ファイル未作成、保存先違い、権限、flags不備 | MQL5ファイル操作・CSVログ出力完全ガイド |
| FileClose | ファイル操作 | 開いたファイルを閉じる | 戻り値なし | CSV保存後、読み込み後、OnDeinit | close漏れ、handle再利用、ファイルロック | MQL5ファイル操作・CSVログ出力完全ガイド |
| FileWrite | ファイル操作 | CSV形式で値を書き込む | 書き込みバイト数または結果 | 注文ログ、サインログ、検証ログ、状態履歴 | handle不正、列順不統一、出力過多 | MQL5ファイル操作・CSVログ出力完全ガイド |
| FileWriteString | ファイル操作 | 文字列をそのまま書き込む | 書き込み文字数または結果 | TXTログ、JSON風テキスト、独自形式出力 | 文字コード、改行、出力位置不明 | MQL5ファイル操作・CSVログ出力完全ガイド |
| FileReadString | ファイル操作 | 文字列を読み込む | 文字列 | 設定ファイル、CSV読み込み、外部制御ファイル | 文字化け、区切り文字不一致、空行処理 | MQL5ファイル操作・CSVログ出力完全ガイド |
| FileReadNumber | ファイル操作 | 数値を読み込む | double値など | 数値設定、検証値、パラメータ読み込み | 空欄、型不一致、列位置ズレ | MQL5ファイル操作・CSVログ出力完全ガイド |
| FileIsExist | ファイル操作 | ファイル存在を確認する | true / false | 読み込み前、削除前、初期化時 | FILE_COMMON指定違い、ファイル名違い | MQL5ファイル操作・CSVログ出力完全ガイド |
| FileDelete | ファイル操作 | ファイルを削除する | true / false | 一時ファイル削除、古いログ削除、cleanup | 使用中ファイル、保存先違い、権限 | MQL5ファイル操作・CSVログ出力完全ガイド |
| FolderCreate | ファイル操作 | フォルダを作成する | true / false | logs、reports、snapshotsなどのサブフォルダ作成 | 相対パス違い、Common指定違い、既存フォルダ | MQL5ファイル操作・CSVログ出力完全ガイド |
| FileFlush | ファイル操作 | バッファ内容をファイルへ反映する | 戻り値なし | 長時間稼働ログ、異常終了対策 | 呼び出し過多、負荷増加 | MQL5ファイル操作・CSVログ出力完全ガイド |
外部連携・WebRequest関数一覧
WebRequestや外部API連携では、MQL5コードだけでなく、MT5側の許可URL、外部サービス側の権限、HTTPステータス、VPS通信状態を確認します。Webhook URL、APIキー、GAS URL、認証トークンは本文や公開ログに入れないでください。
| 関数名 | 分類 | 主な用途 | 戻り値 / 確認値 | よく使う場面 | 関連エラー | 関連講座 |
|---|---|---|---|---|---|---|
| WebRequest | 外部連携 | HTTPリクエストを送信する | HTTPステータス、レスポンス、GetLastError | Discord通知、Google Sheets、外部API、外部認証 | WebRequest未許可、HTTP 403、timeout、URL不正 | MQL5エラーコード辞典 |
| StringToCharArray | 外部連携 | 文字列を送信用char配列へ変換する | 変換文字数 | JSON、payload、POSTデータ作成 | 文字コード、終端文字、payload不正 | MQL5エラーコード辞典 |
| CharArrayToString | 外部連携 | レスポンス配列を文字列へ変換する | 文字列 | HTTPレスポンス確認、JSON風レスポンス解析 | 文字化け、空レスポンス、サイズ不足 | MQL5エラーコード辞典 |
| StringFormat | 外部連携 | 文字列を整形する | 整形済み文字列 | JSON文字列、通知文、ログ文、CSV行作成 | エスケープ不足、型不一致、引用符不足 | MQL5エラーコード辞典 |
| StringReplace | 外部連携 | 文字列の一部を置換する | 置換回数 | 改行除去、エスケープ、CSV整形、ログ整形 | 置換漏れ、不要置換、JSON破損 | MQL5エラーコード辞典 |
| StringSplit | 外部連携 | 文字列を区切り文字で分割する | 分割数 | CSV読み込み、外部設定、簡易レスポンス解析 | 区切り文字違い、空欄、列ズレ | MQL5ファイル操作・CSVログ出力完全ガイド |
外部連携の確認:WebRequestはMT5側で許可URLを登録する必要があります。また、Strategy Testerやインジケーター側では利用制約があります。EA本体の判定、通知処理、外部通信処理、外部サービス側の権限は分けて確認してください。
チャートオブジェクト関数一覧
チャートオブジェクト関数は、画面表示やボタン操作に使います。表示系と判定系を混同しないことが重要です。表示用objectをEAの判定truthとして扱うと、残存objectや削除漏れで誤動作につながる可能性があります。
| 関数名 | 分類 | 主な用途 | 戻り値 / 確認値 | よく使う場面 | 関連エラー | 関連講座 |
|---|---|---|---|---|---|---|
| ObjectCreate | チャートオブジェクト | ラベル、ボタン、ラインなどを作成する | true / false、GetLastError | パネルUI、ステータス表示、価格ライン表示 | 作成失敗、名前衝突、subwindow違い | MQL5開発入門 |
| ObjectSetInteger | チャートオブジェクト | integer / bool / color系プロパティを設定する | true / false | 位置、色、z-order、選択可否、背景設定 | プロパティID違い、z-order不整合、表示崩れ | MQL5開発入門 |
| ObjectSetDouble | チャートオブジェクト | double系プロパティを設定する | true / false | 価格ライン、座標、補助ライン | 価格桁数違い、対象object違い | MQL5開発入門 |
| ObjectSetString | チャートオブジェクト | 文字列プロパティを設定する | true / false | ラベル文字、ボタン文字、tooltip | 文字更新失敗、object名違い、古い表示残り | MQL5開発入門 |
| ObjectGetInteger | チャートオブジェクト | integer系プロパティを取得する | 対象プロパティ値 | 状態確認、z-order確認、ボタン状態確認 | object未作成、プロパティ種別違い | MQL5開発入門 |
| ObjectFind | チャートオブジェクト | objectが存在するか確認する | subwindow index。見つからない場合-1 | upsert処理、残存object確認、初期化時監査 | object名不一致、別チャート参照 | MQL5開発入門 |
| ObjectDelete | チャートオブジェクト | 指定objectを削除する | true / false | 不要表示削除、モード切替、cleanup | 削除漏れ、他EA object削除、対象名違い | MQL5開発入門 |
| ObjectsDeleteAll | チャートオブジェクト | 条件に合うobjectをまとめて削除する | 削除数 | prefix cleanup、再初期化、表示リセット | 削除範囲過大、手動ライン削除、他EA object削除 | MQL5開発入門 |
| ChartRedraw | チャートオブジェクト | チャート再描画を促す | 戻り値なし | 表示更新、パネル更新、オブジェクト反映 | 呼び出し過多、描画負荷、ちらつき | MQL5開発入門 |
標準ライブラリ関数・クラス一覧
MQL5標準ライブラリを使うと、取引処理や状態確認をクラスで扱えます。ただし、CTradeを使っても、注文結果の確認が不要になるわけではありません。メソッド戻り値、ResultRetcode、ResultDeal、ResultOrder、PositionInfoの選択結果を確認します。
| 関数名・クラス名 | 分類 | 主な用途 | 戻り値 / 確認値 | よく使う場面 | 関連エラー | 関連講座 |
|---|---|---|---|---|---|---|
| CTrade | 標準ライブラリ | 注文・決済・注文変更を扱う取引クラス | 各メソッド戻り値、ResultRetcode | CTrade.Buy、Sell、PositionClose、PositionModify | ResultRetcode未確認、filling不一致、注文失敗誤認 | MQL5標準ライブラリ・CTrade完全ガイド |
| CTrade.ResultRetcode | 標準ライブラリ | 最後の取引結果コードを取得する | TRADE_RETCODE系コード | Buy/Sell/Close後の結果確認 | メソッドtrueだけで成功扱いにするミス | MQL5標準ライブラリ・CTrade完全ガイド |
| CTrade.ResultDeal | 標準ライブラリ | 最後の取引結果のdeal ticketを取得する | deal ticket | 約定確認、履歴追跡 | orderとdealの混同、Pendingでdeal 0 | MQL5標準ライブラリ・CTrade完全ガイド |
| CTrade.ResultOrder | 標準ライブラリ | 最後の取引結果のorder ticketを取得する | order ticket | 注文受付確認、Pending追跡 | dealとorderの混同 | MQL5標準ライブラリ・CTrade完全ガイド |
| CPositionInfo | 標準ライブラリ | 保有ポジション情報を取得する | Select結果、Volume、PriceOpen、Profitなど | 保有確認、決済対象確認、損益表示 | Select漏れ、Position未選択、ticket違い | MQL5標準ライブラリ・CTrade完全ガイド |
| COrderInfo | 標準ライブラリ | 未約定注文情報を取得する | Select結果、OrderType、State、VolumeCurrentなど | Pending order確認、注文変更、注文削除 | Positionとの混同、履歴注文との混同 | MQL5標準ライブラリ・CTrade完全ガイド |
| CDealInfo | 標準ライブラリ | 約定履歴情報を取得する | DealType、Entry、Volume、Price、Profitなど | 決済履歴、日次損益、約定監査 | HistorySelect漏れ、Order/Deal混同 | MQL5標準ライブラリ・CTrade完全ガイド |
| CSymbolInfo | 標準ライブラリ | 銘柄情報をクラスで扱う | Bid、Ask、Point、Digits、LotsMin、StopsLevelなど | 発注前確認、銘柄仕様確認、ロット正規化 | RefreshRates漏れ、銘柄未選択、仕様誤認 | MQL5標準ライブラリ・CTrade完全ガイド |
| CAccountInfo | 標準ライブラリ | 口座情報をクラスで扱う | Balance、Equity、FreeMargin、TradeAllowedなど | 証拠金確認、取引許可確認、リスク表示 | 口座状態誤認、EA取引不可、証拠金不足 | MQL5標準ライブラリ・CTrade完全ガイド |
文字列・配列・変換系関数一覧
ログ、CSV、外部連携、設定読み込みでは、文字列・配列・変換系関数をよく使います。文字コード、区切り文字、配列サイズ、添字、空欄処理を確認します。
| 関数名 | 分類 | 主な用途 | 戻り値 / 確認値 | よく使う場面 | 関連エラー | 関連講座 |
|---|---|---|---|---|---|---|
| StringLen | 文字列 | 文字列長を取得する | 文字数 | 空文字チェック、通知文、CSV列確認 | 空文字誤認、長すぎる通知 | MQL5エラーコード辞典 |
| StringSubstr | 文字列 | 文字列の一部を取り出す | 部分文字列 | ログ整形、CSV解析、URL加工 | 位置範囲外、検索結果-1の未確認 | MQL5エラーコード辞典 |
| StringFind | 文字列 | 文字列内の位置を検索する | 位置。見つからない場合-1 | レスポンス判定、CSV列確認、ログ解析 | -1未確認、大小文字差、空文字 | MQL5エラーコード辞典 |
| StringSplit | 文字列 | 区切り文字で文字列を分割する | 分割数 | CSV読み込み、設定行、外部レスポンス解析 | 区切り文字違い、列数不足、空欄 | MQL5ファイル操作・CSVログ出力完全ガイド |
| ArraySize | 配列 | 配列サイズを取得する | 要素数 | CopyBuffer後、CopyRates後、ループ前確認 | 配列外参照、サイズ0配列 | MQL5エラーコード辞典 |
| ArrayResize | 配列 | 動的配列のサイズを変更する | 新サイズまたは失敗値 | 履歴保存、CSV読み込み、計算配列 | メモリ不足、静的配列、巨大配列 | MQL5エラーコード辞典 |
| ArraySetAsSeries | 配列 | 配列の時系列方向を設定する | true / false | 価格配列、インジバッファ、Copy系取得後 | 添字方向の混同、現在足/過去足の誤参照 | MQL5時系列データ・価格取得完全ガイド |
| NormalizeDouble | 変換・丸め | 小数桁を丸める | 丸め後double値 | 価格、ロット、SL/TP、ログ表示 | digits違い、volume step未考慮、丸め誤差 | MQL5注文・ポジション・履歴管理完全ガイド |
| DoubleToString | 変換・表示 | double値を文字列化する | 文字列 | 価格ログ、CSV、通知文、画面表示 | 桁数不統一、丸め誤認 | MQL5エラーコード辞典 |
関数辞典の使い方
この関数辞典は、関数名を単独で覚えるためではなく、目的別に確認するために使います。
| 状況 | 最初に見る分類 | 確認する関数・値 | 次に確認するログ |
|---|---|---|---|
| EAが起動しない | イベント関数、ログ・エラー確認 | OnInit、GetLastError、Print | Experts、Journal |
| 注文できない | 注文・取引、銘柄・口座情報 | OrderSend、OrderCheck、SymbolInfoInteger、AccountInfoDouble | retcode、Journal、取引タブ |
| ポジションが見つからない | ポジション関数 | PositionSelect、PositionSelectByTicket、PositionsTotal | POSITION_SELECT、ticket、symbol、magic |
| 履歴が取れない | 履歴関数 | HistorySelect、HistoryDealsTotal、HistoryDealGetTicket | 履歴期間、DEAL_ENTRY、DEAL_PROFIT |
| インジケーター値が取れない | インジケーター関数 | iCustom、BarsCalculated、CopyBuffer | handle、buffer番号、取得件数 |
| ローソク足がずれる | 時系列・価格取得 | CopyRates、iTime、CopyClose、PeriodSeconds | bar_time、shift、timeframe |
| CSVが保存されない | ファイル操作 | FileOpen、FileWrite、FileIsExist、FolderCreate | FileOpen戻り値、GetLastError、保存先 |
| 外部通知が届かない | 外部連携 | WebRequest、StringToCharArray、CharArrayToString | HTTPステータス、WebRequest許可、timeout |
| ボタンが反応しない | チャートオブジェクト、イベント関数 | ObjectCreate、ObjectSetInteger、OnChartEvent | sparam、object名、z-order |
| CTradeで注文した結果が分からない | 標準ライブラリ | CTrade.Buy / Sell、ResultRetcode、ResultDeal、ResultOrder | TRADE_RESULT、POSITION_SNAPSHOT |
EA利用者向けの確認ポイント
EA利用者がMQL5コードを直接編集しない場合でも、関数まわりの不具合調査で整理できる情報があります。
| 確認項目 | 利用者が確認できる内容 | 開発者へ伝えるとよい情報 |
|---|---|---|
| EA名・インジ名 | 設置しているファイル名・商品名 | 対象ファイルを特定するため |
| バージョン | ログや画面に表示される版 | 古い版・別版との混同を防ぐため |
| 対象銘柄・時間足 | チャート左上のsymbol、M1/M5/M15など | 価格取得、symbol、timeframeの確認に必要 |
| 発生した操作 | 起動、注文、決済、ボタン押下、バックテストなど | どの分類の関数を見るかを絞るため |
| 表示されたエラー | コード、定数名、メッセージ全文 | GetLastError系かTRADE_RETCODE系かを分けるため |
| Expertsログ | EA・インジ側のログ | 関数戻り値、retcode、判定理由の確認に使う |
| Journalログ | 端末側・サーバー側ログ | 注文、接続、テスター、端末状態の確認に使う |
| スクリーンショット | チャート、Experts、Journal、取引タブ、設定画面 | 実際の表示状態とログを照合するため |
MQL5開発者向けの実装確認ポイント
MQL5開発では、関数を目的別に分け、戻り値とログを必ず確認します。特に、表示系と判定系、input初期値とruntime状態、推奨値とruntime調整値を混同しないことが重要です。
| 責務 | 主に使う関数 | 確認するログ | 混同すると起きる問題 |
|---|---|---|---|
| signal | CopyBuffer、CopyRates、iClose、iCustom | SIGNAL_CONTEXT、COPYBUFFER_READ、BAR_BASIS | 現在足と確定足の混同、サイン再現ズレ |
| execution | OrderSend、OrderCheck、CTrade.Buy/Sell | ORDER_SEND、TRADE_RESULT、RESULT_RETCODE | 注文送信と約定成功の混同 |
| risk | SymbolInfoDouble、AccountInfoDouble、OrderCalcMargin | LOT_CHECK、MARGIN_CHECK、SYMBOL_SPEC | ロット不正、証拠金不足、銘柄仕様ズレ |
| exit | PositionSelect、PositionClose、PositionModify | EXIT_CHECK、POSITION_CLOSE、SLTP_MODIFY | 決済対象違い、SL/TP変更失敗 |
| history audit | HistorySelect、HistoryDealGetInteger、HistoryDealGetDouble | HISTORY_SELECT、DEAL_AUDIT、DAILY_PNL | 履歴0件、日次損益ズレ、Deal/Order混同 |
| external control | WebRequest、FileReadString、StringSplit | EXT_CONTROL、WEBREQUEST_RESULT、CSV_READ | 外部通信失敗とEA判定不成立の混同 |
| notification | WebRequest、SendNotification、PrintFormat | NOTIFY_SEND、HTTP_STATUS、NOTIFY_THROTTLE | 通知過多、HTTPエラー、送信先不明 |
| UI / object | ObjectCreate、ObjectSetInteger、OnChartEvent | OBJECT_UPSERT、BUTTON_CLICK、EVENT_ROUTE | 表示状態とruntime状態の不一致 |
開発依頼前に整理する情報
MQL5関数まわりの開発や修正を依頼する場合は、次の情報を整理しておくと原因確認が早くなります。
| 整理する情報 | 内容 | 理由 |
|---|---|---|
| 対象EA・インジ名 | mq5/ex5名、バージョン | 対象ファイルと版を特定するため |
| 該当する機能 | 注文、決済、インジ連携、CSV、通知、パネルなど | 見るべき関数分類を絞るため |
| 対象銘柄・時間足 | symbol、timeframe、ブローカー表記 | SymbolInfo、CopyRates、iCustomの確認に必要 |
| エラー内容 | コード、定数名、メッセージ全文 | GetLastError系かretcode系かを分けるため |
| Expertsログ | EA側ログ、関数戻り値、判定理由 | 内部処理の流れを追うため |
| Journalログ | 端末側・サーバー側ログ | 注文・接続・テスター状態を確認するため |
| setファイル | Inputs設定 | 再現条件と設定差を確認するため |
| 再現手順 | 何をしたら発生したか | OnInit、OnTick、OnChartEventなどの発生箇所を特定するため |
| スクリーンショット | チャート、設定、ログ、取引タブ、履歴タブ | 表示状態とログを照合するため |
開発依頼前に必要な資料の整理については、次のページも確認してください。
関連する技術講座
| 関連ページ | 確認できる内容 |
|---|---|
| 技術講座ハブ | MT5・MQL5・EA開発関連の技術講座一覧を確認できます。 |
| MQL5開発入門 | MQL5開発全体の基本構造、EA・インジケーター開発の入口を確認できます。 |
| MQL5エラーコード辞典 | GetLastError、TRADE_RETCODE、コンパイルエラー、WebRequest関連エラーを確認できます。 |
| MQL5注文・ポジション・履歴管理完全ガイド | Order、Position、Deal、History、OrderSend、PositionSelect、HistorySelectの確認に使えます。 |
| MQL5インジケーター開発・EA連携完全ガイド | iCustom、CopyBuffer、インジケーターバッファ、EA連携の確認に使えます。 |
| MQL5時系列データ・価格取得完全ガイド | CopyRates、CopyClose、iClose、iTime、SymbolInfo系の確認に使えます。 |
| MQL5ファイル操作・CSVログ出力完全ガイド | FileOpen、FileWrite、CSV出力、FILE_COMMON、保存先確認に使えます。 |
| MQL5標準ライブラリ・CTrade完全ガイド | CTrade、CPositionInfo、COrderInfo、CDealInfo、CSymbolInfo、CAccountInfoの確認に使えます。 |
問い合わせ前チェック表
- □ 対象EA・インジ名を確認した
- □ バージョンを確認した
- □ 対象銘柄と時間足を確認した
- □ どの機能で発生したかを整理した
- □ 関数名または該当処理を確認した
- □ Expertsログを確認した
- □ Journalログを確認した
- □ GetLastError系かTRADE_RETCODE系かを分けた
- □ Order / Position / Deal / Historyを混同していないか確認した
- □ 現在足と確定足を混同していないか確認した
- □ Webhook URL、APIキー、GAS URL、認証トークン、口座番号をマスクした
- □ setファイルを保存した
- □ 再現手順を整理した
- □ スクリーンショットを保存した
FAQ
この辞典だけでMQL5の仕様をすべて判断できますか?
いいえ。この辞典は、MQL5の主要関数を実務上確認しやすく整理した記事です。最終的な仕様確認は、公式リファレンス、MetaEditorのコンパイル結果、Expertsログ、Journalログ、実際の動作結果を合わせて確認してください。
公式リファレンスとこの記事は何が違いますか?
公式リファレンスは、関数仕様や引数を厳密に確認するための一次情報です。この記事では、EA・インジケーター開発で見落としやすい「使う場面」「戻り値」「確認するログ」「出やすいエラー」「開発依頼前に整理する情報」を中心に補足しています。
関数名だけで原因を断定できますか?
断定できない場合が多いです。たとえばOrderSendで失敗しても、原因はロット、証拠金、銘柄仕様、取引時間、type_filling、EA側ガード、取引サーバー側retcodeなどに分かれます。関数名、戻り値、GetLastError、retcode、Expertsログ、Journalログをセットで確認してください。
EA利用者でも確認すべき項目はありますか?
あります。EA名、バージョン、発生日時、銘柄、時間足、Expertsログ、Journalログ、スクリーンショット、setファイル、発生時の操作手順を整理しておくと、原因確認が早くなります。
開発依頼前にどの情報を整理すればよいですか?
対象EA・インジ名、バージョン、対象銘柄、時間足、発生した機能、エラー内容、Expertsログ、Journalログ、setファイル、再現手順、スクリーンショットを整理してください。Webhook URL、APIキー、GAS URL、認証トークン、口座番号などは必ずマスクしてください。
ExpertsログとJournalログのどちらを確認すべきですか?
両方確認するのが基本です。ExpertsログではEAやインジケーター内部の判定、関数戻り値、GetLastError、ResultRetcodeなどを確認できます。Journalログでは端末側、サーバー側、接続状態、注文処理、Strategy Tester関連の情報を確認できます。
OrderSendとCTradeはどちらを使うべきですか?
目的によります。CTradeは標準ライブラリとして扱いやすい一方、OrderSend直接実装はMqlTradeRequestやMqlTradeResultを細かく制御しやすい特徴があります。どちらを使う場合でも、戻り値、retcode、order、deal、comment、Position確認は必要です。
CopyBufferが失敗する場合は何を確認すべきですか?
iCustomや標準インジケーターのhandleが有効か、BarsCalculatedが十分か、buffer番号が正しいか、必要本数が取得できているか、現在足と確定足を混同していないかを確認してください。CopyBufferの戻り値とGetLastErrorも確認します。
WebRequest関連では何を確認すべきですか?
MT5側のWebRequest許可URL、送信先URL形式、HTTPステータス、payload、timeout、外部サービス側の権限、VPS通信状態を確認します。ただし、Webhook URL、GAS URL、APIキー、認証トークンの実値は公開ログや問い合わせ文に含めないでください。
この記事にない関数はどのように確認すればよいですか?
まず公式リファレンス、MetaEditorの補完、コンパイル結果、Expertsログ、Journalログを確認してください。EA固有の仕様が関係する場合は、対象ファイル、バージョン、設定値、該当関数、再現手順、ログを整理して確認すると原因を追いやすくなります。
開発依頼・不具合調査前の確認:関数まわりの不具合では、関数名だけで判断せず、分類、戻り値、GetLastError、ResultRetcode、対象symbol、timeframe、ticket、magic、buffer番号、保存先、HTTPステータスをセットで確認してください。
関連するMQL5技術辞典
MQL5関数は、目的別に確認すると整理しやすくなります。エラー確認、注文処理、ポジション管理、インジケーター連携、時系列取得、ファイル操作、チャート表示、標準ライブラリなど、詳しい内容は各技術辞典も確認してください。
| 技術辞典 | 確認できる内容 | リンク |
|---|---|---|
| MQL5エラーコード辞典 | GetLastError、TRADE_RETCODE、コンパイルエラー、WebRequest、Strategy Tester関連エラーなどを確認できます。 | 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など、チャート表示やパネルUIに関する内容を確認できます。 | MQL5チャートオブジェクト辞典 |
| MQL5列挙型・定数辞典 | ENUM_TIMEFRAMES、ENUM_ORDER_TYPE、ORDER_FILLING、POSITION_TYPE、SymbolInfo系定数などを確認できます。 | MQL5列挙型・定数辞典 |
| MQL5標準ライブラリ辞典 | CTrade、CPositionInfo、COrderInfo、CDealInfo、CSymbolInfo、CAccountInfoなど、標準ライブラリの主要クラスを確認できます。 | MQL5標準ライブラリ辞典 |
確認ポイント:関数名だけで原因や仕様を断定せず、分類、戻り値、GetLastError、ResultRetcode、対象symbol、timeframe、ticket、magic、buffer番号、保存先、HTTPステータスをセットで確認してください。
まとめ
MQL5関数は、目的別に分けて確認すると整理しやすくなります。イベント関数、注文・ポジション・履歴関数、インジケーター関数、時系列・価格取得関数、ファイル操作関数、外部連携関数、チャートオブジェクト関数、標準ライブラリは、それぞれ確認すべき戻り値とログが異なります。
不具合調査では、関数名だけで原因を断定せず、発生場所、戻り値、GetLastError、ResultRetcode、Expertsログ、Journalログ、対象銘柄、時間足、設定値、再現手順を合わせて確認してください。
開発依頼や修正依頼を行う場合は、EA名、バージョン、setファイル、ログ、スクリーンショット、再現手順を整理し、Webhook URL、APIキー、GAS URL、認証トークン、口座番号などの機密情報は必ずマスクしてください。

