
MT4(MQL4)・MT5(MQL5)でよく使う関数を、日本語で引けるリファレンスです。271個の関数について、書式・引数・戻り値・注意点と、MetaEditor でコンパイルを確認したコード例を載せています。MQL4 と MQL5 で書き方が違う関数は、両方を並べて解説しています。
よく調べられる関数
- OrderSend()新規注文(成行・指値・逆指値)を出す
- OrderModify()注文の損切り・利確・価格を変更する
- OrderClose()保有中の注文(ポジション)を決済する
- OrderSelect()情報を読む注文を選択する
- iMA()移動平均線(MA)の値を取得する
- iCustom()カスタムインジケーターの値を取得する
- CopyBuffer()インジケーターのハンドルから値を配列に読み出す
- CTrade::Buy()成行で買い注文を出す
- PositionSelect()銘柄名を指定してポジションを選択する
- PositionGetDouble()選択中のポジションの価格・ロット・損益などを取得する
- SymbolInfoDouble()銘柄の Bid・Ask・ロット・ポイントなど小数の情報を取得する
- MarketInfo()銘柄の価格・ロット・ストップレベルなどを取得する
- NormalizeDouble()小数を指定した桁数に四捨五入する
- OnCalculate()インジケーターの値を計算するために呼ばれる
- ArraySetAsSeries()配列の並び順を時系列(0 が最新)にする
- ObjectCreate()チャートにライン・矢印・テキストなどのオブジェクトを作る
イベント関数
OnInit()・OnTick()・OnCalculate() など、決まったタイミングでターミナルから呼び出される関数です。EA・インジケーターの処理は、これらの関数の中に書きます。
| 関数 | 対応 | できること |
|---|---|---|
| OnInit() | MQL4MQL5 | EA・インジケーターの起動時に1回だけ呼ばれる |
| OnDeinit() | MQL4MQL5 | EA・インジケーターの終了時に呼ばれる |
| OnTick() | MQL4MQL5 | 新しいティック(価格の更新)を受信するたびに呼ばれる |
| OnCalculate() | MQL4MQL5 | インジケーターの値を計算するために呼ばれる |
| OnStart() | MQL4MQL5 | スクリプトを実行したときに1回だけ呼ばれる |
| OnTimer() | MQL4MQL5 | EventSetTimer() で決めた間隔ごとに呼ばれる |
| OnChartEvent() | MQL4MQL5 | クリック・キー入力などチャート上の操作があると呼ばれる |
| OnTrade() | MQL5 | 注文・ポジション・履歴が変化したときに呼ばれる |
| OnTradeTransaction() | MQL5 | 取引の処理(トランザクション)ごとに詳細つきで呼ばれる |
| OnTester() | MQL4MQL5 | バックテストの終了時に呼ばれ、独自の評価値を返す |
MQL4 の注文関数
MT4 で注文を出す・決済する・変更する関数と、OrderSelect() で選んだ注文の情報を読む関数です。MT4 では保有ポジションも待機注文も「注文(Order)」として扱います。
| 関数 | 対応 | できること |
|---|---|---|
| OrderSend() | MQL4MQL5 | 新規注文(成行・指値・逆指値)を出す |
| OrderClose() | MQL4 | 保有中の注文(ポジション)を決済する |
| OrderModify() | MQL4 | 注文の損切り・利確・価格を変更する |
| OrderDelete() | MQL4 | 待機注文(指値・逆指値)を取り消す |
| OrderSelect() | MQL4MQL5 | 情報を読む注文を選択する |
| OrdersTotal() | MQL4MQL5 | 保有中の注文(MT5 では待機注文)の数を取得する |
| OrdersHistoryTotal() | MQL4 | 決済済み・取消済みの注文の数を取得する |
| OrderTicket() | MQL4 | 選択中の注文のチケット番号を取得する |
| OrderType() | MQL4 | 選択中の注文の種類(買い・売り・指値など)を取得する |
| OrderLots() | MQL4 | 選択中の注文のロット数を取得する |
| OrderOpenPrice() | MQL4 | 選択中の注文の約定価格(注文価格)を取得する |
| OrderClosePrice() | MQL4 | 選択中の注文の決済価格(保有中なら現在の決済価格)を取得する |
| OrderStopLoss() | MQL4 | 選択中の注文の損切り価格を取得する |
| OrderTakeProfit() | MQL4 | 選択中の注文の利確価格を取得する |
| OrderProfit() | MQL4 | 選択中の注文の損益(口座通貨)を取得する |
| OrderSwap() | MQL4 | 選択中の注文のスワップ損益を取得する |
| OrderCommission() | MQL4 | 選択中の注文の手数料を取得する |
| OrderMagicNumber() | MQL4 | 選択中の注文のマジックナンバーを取得する |
| OrderSymbol() | MQL4 | 選択中の注文の銘柄名を取得する |
| OrderComment() | MQL4 | 選択中の注文のコメントを取得する |
| OrderOpenTime() | MQL4 | 選択中の注文の約定時刻を取得する |
| OrderCloseTime() | MQL4 | 選択中の注文の決済時刻を取得する |
MQL5 の取引関数
MT5 で注文を送信する関数と、ポジション・注文・取引履歴の情報を読む関数です。MT5 では保有中の「ポジション」、未約定の「注文」、約定の記録「ディール」を別々に扱います。
| 関数 | 対応 | できること |
|---|---|---|
| OrderCheck() | MQL5 | 注文を出す前に、証拠金や内容に問題がないか確認する |
| OrderCalcMargin() | MQL5 | 注文に必要な証拠金を計算する |
| OrderCalcProfit() | MQL5 | 指定した価格で決済したときの損益を計算する |
| PositionsTotal() | MQL5 | 保有中のポジションの数を取得する |
| PositionGetTicket() | MQL5 | 位置を指定してポジションのチケット番号を取得し、選択する |
| PositionGetSymbol() | MQL5 | 位置を指定してポジションの銘柄名を取得し、選択する |
| PositionSelect() | MQL5 | 銘柄名を指定してポジションを選択する |
| PositionSelectByTicket() | MQL5 | チケット番号を指定してポジションを選択する |
| PositionGetDouble() | MQL5 | 選択中のポジションの価格・ロット・損益などを取得する |
| PositionGetInteger() | MQL5 | 選択中のポジションの種類・マジックナンバー・時刻などを取得する |
| PositionGetString() | MQL5 | 選択中のポジションの銘柄名・コメントを取得する |
| OrderGetTicket() | MQL5 | 位置を指定して待機注文のチケット番号を取得し、選択する |
| OrderGetDouble() | MQL5 | 選択中の待機注文の価格・ロットなどを取得する |
| OrderGetInteger() | MQL5 | 選択中の待機注文の種類・マジックナンバーなどを取得する |
| HistorySelect() | MQL5 | 期間を指定して取引履歴を読み込む |
| HistoryDealsTotal() | MQL5 | 読み込んだ履歴の約定(ディール)の数を取得する |
| HistoryDealGetTicket() | MQL5 | 位置を指定して約定(ディール)のチケット番号を取得する |
| HistoryDealSelect() | MQL5 | チケット番号を指定して約定(ディール)を履歴に読み込む |
| HistoryDealGetDouble() | MQL5 | 約定(ディール)の損益・価格・ロットなどを取得する |
| HistoryDealGetInteger() | MQL5 | 約定(ディール)の種類・エントリー/決済・時刻などを取得する |
| HistoryDealGetString() | MQL5 | 約定(ディール)の銘柄名・コメントを取得する |
CTrade クラス(MQL5)
MQL5 の標準ライブラリ Trade.mqh にある、発注をかんたんにするクラスです。#include <Trade\Trade.mqh> で読み込み、trade.Buy() のように使います。
| 関数 | 対応 | できること |
|---|---|---|
| CTrade::Buy() | MQL5 | 成行で買い注文を出す |
| CTrade::Sell() | MQL5 | 成行で売り注文を出す |
| CTrade::BuyLimit() | MQL5 | 買い指値注文を出す |
| CTrade::SellLimit() | MQL5 | 売り指値注文を出す |
| CTrade::BuyStop() | MQL5 | 買い逆指値注文を出す |
| CTrade::SellStop() | MQL5 | 売り逆指値注文を出す |
| CTrade::PositionOpen() | MQL5 | 売買の向きを引数で指定して成行注文を出す |
| CTrade::PositionClose() | MQL5 | ポジションを決済する |
| CTrade::PositionClosePartial() | MQL5 | ポジションの一部を決済する |
| CTrade::PositionModify() | MQL5 | ポジションの損切り・利確を変更する |
| CTrade::OrderModify() | MQL5 | 待機注文の価格・損切り・利確・期限を変更する |
| CTrade::OrderDelete() | MQL5 | 待機注文を取り消す |
| CTrade::SetExpertMagicNumber() | MQL5 | 発注に付けるマジックナンバーを設定する |
| CTrade::SetDeviationInPoints() | MQL5 | 許容するスリッページを設定する |
| CTrade::SetTypeFilling() | MQL5 | 注文の執行タイプ(フィリングモード)を設定する |
| CTrade::SetTypeFillingBySymbol() | MQL5 | 銘柄が対応している執行タイプを自動で設定する |
| CTrade::ResultRetcode() | MQL5 | 直前の注文のリターンコードを取得する |
| CTrade::ResultRetcodeDescription() | MQL5 | 直前の注文のリターンコードの説明文を取得する |
| CTrade::ResultOrder() | MQL5 | 直前の注文のチケット番号を取得する |
口座情報
残高・有効証拠金・レバレッジなど、ログイン中の口座の情報を取得する関数です。
| 関数 | 対応 | できること |
|---|---|---|
| AccountBalance() | MQL4 | 口座の残高を取得する |
| AccountEquity() | MQL4 | 口座の有効証拠金(残高+含み損益)を取得する |
| AccountFreeMargin() | MQL4 | 口座の余剰証拠金を取得する |
| AccountMargin() | MQL4 | 保有ポジションに使っている証拠金を取得する |
| AccountNumber() | MQL4 | 口座番号を取得する |
| AccountLeverage() | MQL4 | 口座のレバレッジを取得する |
| AccountCurrency() | MQL4 | 口座の通貨(JPY・USD など)を取得する |
| AccountInfoDouble() | MQL4MQL5 | 残高・有効証拠金・余剰証拠金など口座の数値を取得する |
| AccountInfoInteger() | MQL4MQL5 | 口座番号・レバレッジ・取引許可など口座の整数情報を取得する |
| AccountInfoString() | MQL4MQL5 | 口座名・会社名・口座通貨など口座の文字列情報を取得する |
銘柄・レート情報
現在の Bid・Ask、桁数、最小ロット、ストップレベルなど、通貨ペア(銘柄)の情報を取得する関数です。
| 関数 | 対応 | できること |
|---|---|---|
| Symbol() | MQL4MQL5 | チャートの銘柄名(通貨ペア名)を取得する |
| Period() | MQL4MQL5 | チャートの時間足を取得する |
| MarketInfo() | MQL4 | 銘柄の価格・ロット・ストップレベルなどを取得する |
| RefreshRates() | MQL4 | Ask・Bid などの定義済み変数を最新の値に更新する |
| SymbolInfoDouble() | MQL4MQL5 | 銘柄の Bid・Ask・ロット・ポイントなど小数の情報を取得する |
| SymbolInfoInteger() | MQL4MQL5 | 銘柄の桁数・スプレッド・ストップレベルなど整数の情報を取得する |
| SymbolInfoString() | MQL4MQL5 | 銘柄の説明・基軸通貨・決済通貨などを取得する |
| SymbolInfoTick() | MQL4MQL5 | 最新のティック(Bid・Ask・時刻)をまとめて取得する |
| SymbolSelect() | MQL4MQL5 | 銘柄を気配値表示に追加・削除する |
| SymbolsTotal() | MQL4MQL5 | 銘柄の数を取得する |
| SymbolName() | MQL4MQL5 | 番号を指定して銘柄名を取得する |
時系列データ(バー・価格)
ローソク足の始値・高値・安値・終値・時刻などを取得する関数です。
| 関数 | 対応 | できること |
|---|---|---|
| iClose() | MQL4MQL5 | 指定したバーの終値を取得する |
| iOpen() | MQL4MQL5 | 指定したバーの始値を取得する |
| iHigh() | MQL4MQL5 | 指定したバーの高値を取得する |
| iLow() | MQL4MQL5 | 指定したバーの安値を取得する |
| iTime() | MQL4MQL5 | 指定したバーの開始時刻を取得する |
| iVolume() | MQL4MQL5 | 指定したバーのティック出来高を取得する |
| iBars() | MQL4MQL5 | 指定した銘柄・時間足のバーの本数を取得する |
| Bars() | MQL4MQL5 | バーの本数(期間指定も可)を取得する |
| iBarShift() | MQL4MQL5 | 時刻から、そのバーの位置(shift)を求める |
| iHighest() | MQL4MQL5 | 指定した範囲で最も高いバーの位置を求める |
| iLowest() | MQL4MQL5 | 指定した範囲で最も安いバーの位置を求める |
| CopyRates() | MQL4MQL5 | 複数のバーの4本値・時刻・出来高をまとめて配列に取得する |
| CopyClose() | MQL4MQL5 | 複数のバーの終値をまとめて配列に取得する |
| CopyOpen() | MQL4MQL5 | 複数のバーの始値をまとめて配列に取得する |
| CopyHigh() | MQL4MQL5 | 複数のバーの高値をまとめて配列に取得する |
| CopyLow() | MQL4MQL5 | 複数のバーの安値をまとめて配列に取得する |
| CopyTime() | MQL4MQL5 | 複数のバーの開始時刻をまとめて配列に取得する |
| CopyTicks() | MQL5 | 過去のティックデータを配列に取得する |
テクニカル指標
移動平均線・RSI・MACD などのテクニカル指標の値を取得する関数です。MQL4 は値を直接返し、MQL5 はハンドルを作ってから CopyBuffer() で値を読み出します。
| 関数 | 対応 | できること |
|---|---|---|
| iMA() | MQL4MQL5 | 移動平均線(MA)の値を取得する |
| iRSI() | MQL4MQL5 | RSI(相対力指数)の値を取得する |
| iMACD() | MQL4MQL5 | MACD のメインライン・シグナルラインの値を取得する |
| iBands() | MQL4MQL5 | ボリンジャーバンドの値を取得する |
| iStochastic() | MQL4MQL5 | ストキャスティクスの値を取得する |
| iATR() | MQL4MQL5 | ATR(平均的な値幅)の値を取得する |
| iCCI() | MQL4MQL5 | CCI(商品チャネル指数)の値を取得する |
| iADX() | MQL4MQL5 | ADX(トレンドの強さ)と +DI・−DI の値を取得する |
| iMomentum() | MQL4MQL5 | モメンタムの値を取得する |
| iSAR() | MQL4MQL5 | パラボリック SAR の値を取得する |
| iIchimoku() | MQL4MQL5 | 一目均衡表の各線の値を取得する |
| iCustom() | MQL4MQL5 | カスタムインジケーターの値を取得する |
| CopyBuffer() | MQL5 | インジケーターのハンドルから値を配列に読み出す |
| BarsCalculated() | MQL5 | インジケーターの計算が終わったバーの本数を取得する |
| IndicatorRelease() | MQL5 | 使い終わったインジケーターのハンドルを解放する |
インジケーター作成
カスタムインジケーターを作るときに、表示用のバッファや線の種類・色などを設定する関数です。
| 関数 | 対応 | できること |
|---|---|---|
| SetIndexBuffer() | MQL4MQL5 | 配列をインジケーターのバッファとして登録する |
| SetIndexStyle() | MQL4 | インジケーターの線の種類・太さ・色を設定する |
| SetIndexArrow() | MQL4 | 矢印表示のバッファの記号(Wingdings コード)を設定する |
| SetIndexLabel() | MQL4 | バッファの名前(データウィンドウの表示名)を設定する |
| SetIndexEmptyValue() | MQL4 | 表示しない値(空の値)を設定する |
| SetIndexDrawBegin() | MQL4 | 線を描き始めるバーの位置を設定する |
| IndicatorBuffers() | MQL4 | 計算用を含めたバッファの総数を設定する |
| IndicatorShortName() | MQL4 | インジケーターの短い名前を設定する |
| IndicatorDigits() | MQL4 | インジケーターの値を表示する小数の桁数を設定する |
| IndicatorCounted() | MQL4 | 前回までに計算済みのバーの本数を取得する(旧形式) |
| IndicatorSetString() | MQL4MQL5 | インジケーター全体の文字列の設定(短い名前など)を変える |
| IndicatorSetInteger() | MQL4MQL5 | インジケーター全体の整数の設定(桁数・水平線の数など)を変える |
| IndicatorSetDouble() | MQL4MQL5 | インジケーター全体の小数の設定(水平線の値・表示範囲)を変える |
| PlotIndexSetInteger() | MQL5 | 描画する線の種類・色・太さ・矢印などを設定する |
| PlotIndexSetDouble() | MQL5 | 描画しない値(空の値)を設定する |
| PlotIndexSetString() | MQL5 | 描画の名前(データウィンドウの表示名)を設定する |
出力・通知・状態
ログへの出力、アラート・通知、エラー番号の取得、実行環境の確認など、どのプログラムでもよく使う関数です。
| 関数 | 対応 | できること |
|---|---|---|
| Print() | MQL4MQL5 | エキスパートタブ(操作ログ)に文字を出力する |
| PrintFormat() | MQL4MQL5 | 書式を指定してエキスパートタブに出力する(printf) |
| Comment() | MQL4MQL5 | チャートの左上に文字を表示する |
| Alert() | MQL4MQL5 | アラート画面を出して音を鳴らす |
| SendNotification() | MQL4MQL5 | スマホの MT4 / MT5 アプリにプッシュ通知を送る |
| SendMail() | MQL4MQL5 | メールを送信する |
| PlaySound() | MQL4MQL5 | 音声ファイルを鳴らす |
| MessageBox() | MQL4MQL5 | 確認ダイアログを表示してボタンの結果を受け取る |
| GetLastError() | MQL4MQL5 | 直前に起きたエラーの番号を取得する |
| ResetLastError() | MQL4MQL5 | エラー番号を 0 に戻す |
| Sleep() | MQL4MQL5 | 指定したミリ秒だけ処理を止める |
| GetTickCount() | MQL4MQL5 | パソコン起動からの経過ミリ秒を取得する(処理時間の計測) |
| IsStopped() | MQL4MQL5 | プログラムの停止が指示されたかを調べる |
| IsTradeAllowed() | MQL4 | EA の自動売買が許可されているかを調べる |
| IsTesting() | MQL4 | ストラテジーテスターで動いているかを調べる |
| MQLInfoInteger() | MQL4MQL5 | テスター・最適化中か、取引・DLL が許可されているかなどを調べる |
| TerminalInfoInteger() | MQL4MQL5 | ターミナルの自動売買ボタン・接続状態などを調べる |
| EventSetTimer() | MQL4MQL5 | 一定の秒数ごとに OnTimer() を呼ぶタイマーを開始する |
| EventSetMillisecondTimer() | MQL4MQL5 | ミリ秒単位の間隔で OnTimer() を呼ぶタイマーを開始する |
| EventKillTimer() | MQL4MQL5 | タイマーを止める |
| ExpertRemove() | MQL4MQL5 | EA を自分でチャートから外す(停止する) |
| UninitializeReason() | MQL4MQL5 | プログラムが終了する理由の番号を取得する |
| WebRequest() | MQL4MQL5 | Web サーバーに HTTP リクエストを送る |
日時
サーバー時刻・ローカル時刻の取得や、datetime 型と年月日・曜日の変換を行う関数です。
| 関数 | 対応 | できること |
|---|---|---|
| TimeCurrent() | MQL4MQL5 | サーバー時刻(最後に受信したティックの時刻)を取得する |
| TimeLocal() | MQL4MQL5 | パソコン(VPS)のローカル時刻を取得する |
| TimeGMT() | MQL4MQL5 | GMT(世界標準時)を取得する |
| TimeToStruct() | MQL4MQL5 | datetime を年・月・日・時・分・曜日に分解する |
| StructToTime() | MQL4MQL5 | 年・月・日・時・分を datetime に組み立てる |
| PeriodSeconds() | MQL4MQL5 | 時間足1本分の秒数を取得する |
| Hour() | MQL4 | 現在のサーバー時刻の「時」を取得する |
| Minute() | MQL4 | 現在のサーバー時刻の「分」を取得する |
| DayOfWeek() | MQL4 | 現在のサーバー時刻の曜日を取得する |
| TimeHour() | MQL4 | 指定した時刻の「時」を取得する |
| TimeMinute() | MQL4 | 指定した時刻の「分」を取得する |
| TimeDayOfWeek() | MQL4 | 指定した時刻の曜日を取得する |
| TimeDay() | MQL4 | 指定した時刻の「日」を取得する |
| TimeMonth() | MQL4 | 指定した時刻の「月」を取得する |
| TimeYear() | MQL4 | 指定した時刻の「年」を取得する |
数学
絶対値・最大値・四捨五入・べき乗・乱数などの計算を行う関数です。
| 関数 | 対応 | できること |
|---|---|---|
| NormalizeDouble() | MQL4MQL5 | 小数を指定した桁数に四捨五入する |
| MathAbs() | MQL4MQL5 | 絶対値を求める |
| MathMax() | MQL4MQL5 | 2つの値のうち大きいほうを返す |
| MathMin() | MQL4MQL5 | 2つの値のうち小さいほうを返す |
| MathRound() | MQL4MQL5 | 小数を四捨五入して整数にする |
| MathFloor() | MQL4MQL5 | 小数を切り捨てる(その値以下の最大の整数) |
| MathCeil() | MQL4MQL5 | 小数を切り上げる(その値以上の最小の整数) |
| MathPow() | MQL4MQL5 | べき乗(x の y 乗)を求める |
| MathSqrt() | MQL4MQL5 | 平方根を求める |
| MathMod() | MQL4MQL5 | 小数の割り算の余りを求める |
| MathLog() | MQL4MQL5 | 自然対数を求める |
| MathRand() | MQL4MQL5 | 0〜32767 の乱数を作る |
| MathSrand() | MQL4MQL5 | 乱数の種(シード)を設定する |
| MathIsValidNumber() | MQL4MQL5 | 計算結果が正常な数値(NaN・無限大でない)か確かめる |
文字列
文字列の検索・切り出し・置換・分割・書式設定を行う関数です。
| 関数 | 対応 | できること |
|---|---|---|
| StringLen() | MQL4MQL5 | 文字列の長さ(文字数)を取得する |
| StringFind() | MQL4MQL5 | 文字列の中から別の文字列を探して位置を返す |
| StringSubstr() | MQL4MQL5 | 文字列の一部を切り出す |
| StringReplace() | MQL4MQL5 | 文字列の中の一部を別の文字列に置き換える |
| StringSplit() | MQL4MQL5 | 区切り文字で文字列を分割して配列にする |
| StringToUpper() | MQL4MQL5 | 文字列を大文字にする |
| StringToLower() | MQL4MQL5 | 文字列を小文字にする |
| StringTrimLeft() | MQL4MQL5 | 文字列の先頭の空白を取り除く |
| StringTrimRight() | MQL4MQL5 | 文字列の末尾の空白を取り除く |
| StringFormat() | MQL4MQL5 | 書式を指定して文字列を作る(sprintf) |
| StringConcatenate() | MQL4MQL5 | 複数の値をつなげて1つの文字列にする |
| StringCompare() | MQL4MQL5 | 2つの文字列を比べる |
| StringGetCharacter() | MQL4MQL5 | 文字列の指定した位置の文字コードを取得する |
型変換
数値と文字列、日時と文字列などを相互に変換する関数です。
| 関数 | 対応 | できること |
|---|---|---|
| DoubleToString() | MQL4MQL5 | 小数を、桁数を指定して文字列にする |
| DoubleToStr() | MQL4 | 小数を、桁数を指定して文字列にする(MQL4 の旧名) |
| IntegerToString() | MQL4MQL5 | 整数を文字列にする(桁数・ゼロ埋めの指定も可) |
| StringToDouble() | MQL4MQL5 | 文字列を小数に変換する |
| StringToInteger() | MQL4MQL5 | 文字列を整数に変換する |
| TimeToString() | MQL4MQL5 | 日時を「2026.09.29 15:30」形式の文字列にする |
| TimeToStr() | MQL4 | 日時を文字列にする(MQL4 の旧名) |
| StringToTime() | MQL4MQL5 | 「2026.09.29 15:30」形式の文字列を日時に変換する |
| EnumToString() | MQL4MQL5 | 列挙型(enum)の値を名前の文字列にする |
配列
配列のサイズ変更・並べ替え・検索・コピー・時系列設定を行う関数です。
| 関数 | 対応 | できること |
|---|---|---|
| ArrayResize() | MQL4MQL5 | 動的配列の要素数を変更する |
| ArraySize() | MQL4MQL5 | 配列の要素数を取得する |
| ArraySetAsSeries() | MQL4MQL5 | 配列の並び順を時系列(0 が最新)にする |
| ArrayGetAsSeries() | MQL4MQL5 | 配列が時系列(0 が最新)かどうか調べる |
| ArrayInitialize() | MQL4MQL5 | 配列のすべての要素を同じ値にする |
| ArrayFill() | MQL4MQL5 | 配列の一部の範囲を同じ値で埋める |
| ArrayCopy() | MQL4MQL5 | 配列の内容を別の配列にコピーする |
| ArraySort() | MQL4MQL5 | 数値の配列を並べ替える |
| ArrayMaximum() | MQL4MQL5 | 配列の中で最も大きい要素の位置を求める |
| ArrayMinimum() | MQL4MQL5 | 配列の中で最も小さい要素の位置を求める |
| ArrayFree() | MQL4MQL5 | 動的配列を空にしてメモリを解放する |
| ArrayRange() | MQL4MQL5 | 多次元配列の各次元の要素数を取得する |
オブジェクト
チャートにライン・矢印・テキスト・ボタンなどのオブジェクトを作成・変更・削除する関数です。
| 関数 | 対応 | できること |
|---|---|---|
| ObjectCreate() | MQL4MQL5 | チャートにライン・矢印・テキストなどのオブジェクトを作る |
| ObjectDelete() | MQL4MQL5 | 名前を指定してオブジェクトを削除する |
| ObjectsDeleteAll() | MQL4MQL5 | オブジェクトをまとめて削除する(名前の先頭で指定も可) |
| ObjectFind() | MQL4MQL5 | オブジェクトがあるか探し、あるウィンドウ番号を返す |
| ObjectSetInteger() | MQL4MQL5 | オブジェクトの色・太さ・位置(座標)などを設定する |
| ObjectSetDouble() | MQL4MQL5 | オブジェクトの価格・角度などを設定する |
| ObjectSetString() | MQL4MQL5 | オブジェクトの文字・フォント・説明などを設定する |
| ObjectGetInteger() | MQL4MQL5 | オブジェクトの色・状態などを取得する |
| ObjectGetDouble() | MQL4MQL5 | オブジェクトの価格などを取得する |
| ObjectGetString() | MQL4MQL5 | オブジェクトの文字・説明などを取得する |
| ObjectMove() | MQL4MQL5 | オブジェクトの点(時刻・価格)を動かす |
| ObjectsTotal() | MQL4MQL5 | チャートにあるオブジェクトの数を取得する |
| ObjectName() | MQL4MQL5 | 番号を指定してオブジェクトの名前を取得する |
| ObjectGetValueByTime() | MQL4MQL5 | トレンドラインの、指定した時刻での価格を求める |
| ObjectSet() | MQL4 | オブジェクトの設定を変更する(MQL4 の古い書き方) |
| ObjectSetText() | MQL4 | オブジェクトの文字・サイズ・フォント・色を設定する(MQL4 の古い書き方) |
チャート操作
チャートの表示設定を変更したり、再描画・画面保存などを行う関数です。
| 関数 | 対応 | できること |
|---|---|---|
| ChartRedraw() | MQL4MQL5 | チャートを再描画する |
| WindowRedraw() | MQL4 | チャートを再描画する(MQL4 の古い書き方) |
| ChartID() | MQL4MQL5 | 今のチャートの ID を取得する |
| ChartSetInteger() | MQL4MQL5 | チャートの表示設定(色・グリッド・自動スクロールなど)を変更する |
| ChartGetInteger() | MQL4MQL5 | チャートの表示設定・幅・表示中のバーの数などを取得する |
| ChartGetDouble() | MQL4MQL5 | チャートに表示中の価格の上限・下限を取得する |
| ChartSetSymbolPeriod() | MQL4MQL5 | チャートの通貨ペア・時間足を切り替える |
| ChartOpen() | MQL4MQL5 | 新しいチャートを開く |
| ChartApplyTemplate() | MQL4MQL5 | チャートにテンプレート(tpl)を適用する |
| ChartScreenShot() | MQL4MQL5 | チャートの画像を保存する |
ファイル
CSV・テキストファイルの読み書きを行う関数です。読み書きできるのは MQL4\Files(MQL5\Files)フォルダと共通フォルダの中だけです。
| 関数 | 対応 | できること |
|---|---|---|
| FileOpen() | MQL4MQL5 | ファイルを開く(読み込み・書き込み) |
| FileClose() | MQL4MQL5 | 開いたファイルを閉じる |
| FileWrite() | MQL4MQL5 | CSV・テキストファイルに1行書き込む |
| FileWriteString() | MQL4MQL5 | ファイルに文字列をそのまま書き込む |
| FileReadString() | MQL4MQL5 | ファイルから文字列を読み込む |
| FileReadNumber() | MQL4MQL5 | CSV ファイルから数値を読み込む |
| FileIsEnding() | MQL4MQL5 | ファイルの終わりまで読んだかを調べる |
| FileIsLineEnding() | MQL4MQL5 | CSV の行の終わりまで読んだかを調べる |
| FileIsExist() | MQL4MQL5 | ファイルがあるかを調べる |
| FileDelete() | MQL4MQL5 | ファイルを削除する |
| FileSeek() | MQL4MQL5 | ファイルの読み書きの位置を移動する |
| FileFlush() | MQL4MQL5 | 書き込んだ内容をすぐにファイルに保存する |
グローバル変数
ターミナル全体で共有され、再起動しても残る「グローバル変数」を読み書きする関数です。EA 間の値の受け渡しや、状態の保存に使います。
| 関数 | 対応 | できること |
|---|---|---|
| GlobalVariableSet() | MQL4MQL5 | ターミナルのグローバル変数に値を保存する |
| GlobalVariableGet() | MQL4MQL5 | ターミナルのグローバル変数の値を読む |
| GlobalVariableCheck() | MQL4MQL5 | ターミナルのグローバル変数があるかを調べる |
| GlobalVariableDel() | MQL4MQL5 | ターミナルのグローバル変数を削除する |
| GlobalVariablesDeleteAll() | MQL4MQL5 | ターミナルのグローバル変数をまとめて削除する |
該当する関数が見つかりませんでした。関数名の一部(例:Order、Symbol)や、日本語のキーワード(例:ロット、時刻)で探してみてください。
よくある質問
MQL4 と MQL5 で関数はどれくらい違いますか?
数学・文字列・配列・オブジェクトなどの関数はほとんど同じ名前・同じ使い方です。大きく違うのは注文とインジケーターの関数です。MQL4 の OrderSend() は引数に値を並べて注文しますが、MQL5 の OrderSend() は MqlTradeRequest 構造体を渡します(CTrade クラスを使うと MQL4 に近い書き方ができます)。また MQL4 の iMA() は値を直接返しますが、MQL5 の iMA() はハンドルを返し、CopyBuffer() で値を読み出します。
MT5 で MQL4 の関数を使うとどうなりますか?
MarketInfo()・OrderSelect() のモード指定・AccountBalance()・Hour() など、MQL5 にない関数を使うと「undeclared identifier」などのコンパイルエラーになります。各関数のページの「MQL4 と MQL5 の違い」に、MQL5 で代わりに使う関数を載せています。
引数の「省略時」とは何ですか?
既定値が決められている引数で、書かなければその値が使われます。たとえば OrderSend() の comment 以降は省略できます。途中の引数だけを省略することはできないので、後ろの引数を指定したいときは、その前の引数もすべて書きます。
この関数リファレンスの内容はどのように確認していますか?
書式(戻り値の型・引数の数・省略できる引数)とコード例は、MT4 と MT5 の MetaEditor(2026年9月時点)で実際にコンパイルして確認しています。CTrade クラスは MT5 付属の Trade.mqh の定義に合わせています。












