この記事の目次
標準定数・エラーコード
| グループ | 詳細 |
| チャート定数 | 価格チャート関連の定数 |
| オブジェクト定数 | チャート内に作成して表示するグラフィカルオブジェクト用の定数 |
| インジケータ定数 | 標準・カスタムインジケータを操作する為の定数 |
| エラーコード・ワーニングコード | コンパイラメッセージとトレードサーバーの応答用の定数 |
| 環境ステータス | クライアントターミナル・アカウント情報・MQL4プログラムプロパティ用の定数 |
| トレード定数 | 取引オーダーの過程で指定する情報の定数。 |
| 定義済み定数 | MQL4言語の定義済み定数 |
| 定義済みデータ構造体 | MQL4言語の定義済み構造体 |
| 入出力定数 | ファイル関数とメッセージボックス関数用の定数 |
定義済み変数
| 関数 | 詳細 |
| _Digits | 価格の小数点以下の桁数 |
| _Point | 現在の通貨ペアでの、価格の小数点値 |
| _LastError | 直近のエラーコード |
| _Period | 現在チャートの時間軸 |
| _RandomSeed | 整数の疑似乱数 |
| _StopFlag | プログラム停止フラグ |
| _Symbol | 現在チャートの通貨ペア名 |
| _UninitReason | UnInit理由コード |
| Ask | 現在の通貨ペアの買値(最新の売り手の価格) |
| Bars | 現在チャートのバー数 |
| Bid | 現在の通貨ペアの売値(最新の買い手の価格) |
| Close[] | 現在チャートの各バーの終値配列 |
| Digits | 現在の通貨ペアでの、価格の小数点以下の桁数 |
| High[] | 現在チャートの各バーの高値配列 |
| Low[] | 現在チャートの各バーの安値配列 |
| Open[] | 現在チャートの各バーの始値配列 |
| Point | 現在の通貨ペアでの、価格の小数点値 |
| Time[] | 現在チャートの各バーの時間配列 |
| Volume[] | 現在チャートの各バーの出来高配列 |
共通関数
| 関数 | 詳細 |
| Alert | 別ウィンドウにメッセージを表示します |
| CheckPointer | オブジェクトポインタのタイプを返します |
| Comment | チャートの左上隅にコメントを表示します |
| CryptEncode | 指定した方法で配列データをエンコードします |
| CryptDecode | 配列データをデコードします |
| DebugBreak | デバッグ中のブレークポイント |
| ExpertRemove | EAを停止し、チャートから削除します |
| GetPointer | オブジェクトポインタを取得します |
| GetTickCount | システムが起動してからの経過時間をmsec単位で返します |
| GetMicrosecondCount | MQL4プログラム開始からの経過時間をμsec単位で返します |
| MessageBox | メッセージボックスを表示します |
| PeriodSeconds | 時間軸の値を秒数で返します |
| PlaySound | サウンドファイルを再生します |
| ログにメッセージを表示します | |
| PrintFormat | プリセットフォーマットでログにメッセージを表示します |
| ResetLastError | _LastError変数の値にゼロを設定します |
| ResourceCreate | データセットのリソース画像を作成します |
| ResourceFree | 動的に作成されたリソースを削除(メモリ解放)します。 |
| ResourceReadImage | ex4ファイルに保存された又はResourceCreate()関数によって作成されたリソース画像データを読み込みます。 |
| ResourceSave | 指定したファイルにリソースを保存します |
| SendFTP | 設定画面の「FTPタブ」で指定したアドレスにファイルを送信します |
| SendMail | 設定画面の「E-メール」タブで指定したアドレスにメール送信します |
| SendNotification | 設定画面の「通知機能」タブで指定したモバイル端末にプッシュ通知を送信します |
| Sleep | 指定されたインターバル時間EA(またはスクリプト)の処理実行を中断します |
| TerminalClose | クライアントターミナルを閉じます |
| TesterStatistics | テスト結果に基づいて算出された統計データを取得します |
| TranslateKey | 仮想キーコードをUnicodeに変換します |
| WebRequest | 指定したサーバーにHTTPリクエストを送信します |
| ZeroMemory | 引数で渡した値をリセットします。 (定数・クラス・構造体は不可) |
配列関数
| 関数 | 詳細 |
| ArrayBsearch | 最初の次元配列内を検索し、最初に見つかった要素のインデックスを返します。 |
| ArrayCopy | 別の配列にコピーします |
| ArrayCompare | シンプルな型の2つの配列を比較します。 複雑なオブジェクト・構造体には使用できません。 |
| ArrayFree | 全ての動的配列のバッファを解放します。 |
| ArrayGetAsSeries | 配列インデックスの方向をチェックします |
| ArrayInitialize | 数値配列の全要素を指定した値で初期化します |
| ArrayFill | 指定した値で配列を埋めます |
| ArrayIsSeries | 配列が時系列であるかチェックします |
| ArrayIsDynamic | 動的配列かチェックします |
| ArrayMaximum | 最大値を持つ要素を検索します |
| ArrayMinimum | 最小値を持つ要素を検索します |
| ArrayRange | 指定した次元配列の要素数を返します |
| ArrayResize | 最初の次元配列のサイズを変更します |
| ArraySetAsSeries | 配列のインデックス方向を設定します |
| ArraySize | 配列の要素数を返します |
| ArraySort | 最初の次元で数値配列をソートします |
| ArrayCopyRates | 2次元配列にレートデータをコピーします。 チャートレート情報配列(バー数分)のデータがコピーされます。 |
| ArrayCopySeries | 時系列配列を別配列にコピーします。 コピーされた要素数を返します。 |
| ArrayDimension | 多次元配列の次元数を返します |
変換関数
| 関数 | 詳細 |
| CharToString | 文字(ANSI)を文字列に変換 |
| CharArrayToString | シンボルコード(ANSI)を文字列に変換 |
| ColorToARGB | color型をuint型のARGB表現に変換する |
| ColorToString | color型を"R,G,B"形式表現の文字列に変換する |
| DoubleToString | 浮動小数点数を指定した精度で文字列に変換 |
| EnumToString | 列挙を文字列に変換 |
| IntegerToString | 整数型の値を文字列に変換 |
| ShortToString | Short型の値を文字列に変換 |
| ShortArrayToString | short配列を文字列に変換 |
| TimeToString | 日付時刻(datetime)型データを"yyyy.mm.dd hh:mi"形式表現の文字列に変換 |
| NormalizeDouble | 浮動小数点数を指定精度で丸めます |
| StringToCharArray | 文字列をUnicodeからANSIに変換し、char型配列にコピーする |
| StringToColor | "R,G,B"形式の文字列をcolor型に変換する |
| StringToDouble | 文字列を浮動小数点数型の数値に変換 |
| StringToInteger | 文字列を整数(int型)の数値に変換 |
| StringToShortArray | 文字列の選択した部分をshort配列にコピーする |
| StringToTime | 日付や時刻を含む文字列を"yyyy.mm.dd hh:mi"形式の日付時刻(datetime)型に変換 |
| StringFormat | プリセットフォーマットに従って文字列を変換する |
| CharToStr | 1文字のシンボルコード(ANSI)を文字列に変換 |
| DoubleToStr | 浮動小数点数を指定した精度で文字列変換します |
| StrToDouble | 数値の文字列を浮動小数点数型に変換します |
| StrToInteger | 数値の文字列を整数(int)型に変換します |
| StrToTime | 日付や時刻を含む文字列を"yyyy.mm.dd hh:mi"形式の日付時刻(datatime)型に変換 |
| TimeToStr | 日付時刻(datetime)型データを"yyyy.mm.dd hh:mi"形式表現の文字列に変換 |
数学関数
| 関数 | 詳細 |
| MathSin | 指定した値のサインを返します |
| MathCos | 指定した値のコサインを返します |
| MathTan | 指定した値のタンジェントを返します |
| MathArcsin | 指定した値のアークサインをラジアンで返します |
| DoubleToMathArccos | 指定した値のアークコサインをラジアンで返します |
| MathArctan | 指定した値のアークタンジェントをラジアンで返します |
| MathPow | べき乗結果を返します |
| MathExp | 指数を返します |
| MathLog | 自然対数を返します |
| MathLog10 | 10を底をする対数を返します |
| MathSqrt | 平方根を返します |
| MathAbs | 指定した値の絶対値を返します |
| MathCeil | 指定した値の上限値を返します |
| MathRound | 整数値に丸めます |
| MathFloor | 指定した値の下限値を返します |
| MathMax | 2つの値を比較して最大値を返します |
| MathMin | 2つの値を比較して最小値を返します |
| MathMod | 余剰結果を返します |
| MathRand | 0~32767の範囲内で疑似乱数値を返します |
| MathSrand | 疑似乱数整数を生成する為のシードを設定します |
| MathIsValidNumber | 実数の正当性をチェックします |
文字列関数
| 関数 | 詳細 |
| StringAdd | 文字列の末尾に文字列を追加します |
| StringBufferLen | 文字列バッファのサイズを返します |
| StringCompare | 文字列を比較します。 1つ目の文字列が2つ目の文字列より大きい場合は1を返します。 1つ目の文字列が2つ目の文字列と等しい場合は0を返します。 1つ目の文字列が2つ目の文字列より小さい場合は-1を返します。 |
| StringConcatenate | 文字列を結合します |
| StringFill | 文字列を指定したシンボルで埋めます |
| StringFind | 文字列内を検索します |
| StringGetCharacter | 文字列内の指定位置にあるシンボルコードを返します |
| StringInit | 文字列を指定した文字で初期化します |
| StringLen | 文字列の長さを返します |
| StringReplace | 文字列内の指定した文字列を置換します |
| StringSetCharacter | 文字列内の指定した位置に文字をセットします |
| StringSplit | 文字列を指定した文字で分離します |
| StringSubstr | 文字列の指定した部分文字列を抽出します |
| StringToLower | 文字列を小文字に変換します |
| StringToUpper | 文字列を大文字に変換します |
| StringTrimLeft | 文字列の左側にある改行文字・空白・タブを切り取ります |
| StringTrimRight | 文字列の右側にある改行文字・空白・タブを切り取ります |
| StringGetChar | 文字列の指定した位置の文字コードを返します |
| StringSetChar | 文字列の指定した位置に文字を設定し、変更後の文字列を返します |
時に関する関数
| 関数 | 詳細 |
| TimeCurrent | 最後に受信したサーバー時間(最後のクォート受信時)をdatetime型で返します |
| TimeLocal | ローカルコンピュータの時間をdatetime型で返します |
| TimeGMT | クライアントターミナルを実行しているコンピュータのローカル時間から算出したGMT時間(サマータイムを考慮)を返します |
| TimeDaylightSavings | サマータイムのスイッチサインを返します |
| TimeGMTOffset | アカウントのサマータイムスイッチサインを考慮したGMT時間と、ローカルコンピュータの時間の差を返します。 |
| TimeToStruct | datetime型データをMqlDateTime構造体型に変換します |
| StructToTime | MqlDateTime構造体型データをdatetime型に変換します |
| DayOfWeek | 最後に受信したサーバー時間の曜日を数値(0:日曜日)で返します。 |
| DayOfYear | 最後に受信したサーバー時間の経過日数(1年の経過日数)を返します |
| Year | 最後に受信したサーバー時間の年(年月日の'年'のみ)を返します |
| Month | 最後に受信したサーバー時間の月(年月日の'月'のみ)を返します |
| Day | 最後に受信したサーバー時間の日(年月日の'日'のみ)を返します |
| Hour | 最後に受信したサーバー時間の時(時分秒の'時'のみ)を返します |
| Minute | 最後に受信したサーバー時間の分(時分秒の'分'のみ)を返します |
| Seconds | 最後に受信したサーバー時間の秒(時分秒の'秒'のみ)を返します |
| TimeDayOfWeek | 指定した日付の曜日を数値(0:日曜日)で返します |
| TimeDayOfYear | 指定した日付の経過日数(1年の経過日数)を返します |
| TimeYear | 指定した日付の年(年月日の'年'のみ)を返します |
| TimeMonth | 指定した日付の月(年月日の'月'のみ)を返します |
| TimeDay | 指定した日付の日(年月日の'日')を返します |
| TimeHour | 指定した時間の時(時分秒の'時'のみ)を返します |
| TimeMinute | 指定した時間の分(時分秒の'分'のみ)を返します |
| TimeSeconds | 指定した時間の秒(時分秒の'秒'のみ)を返します |
時系列・インジケータアクセス
| 関数 | 詳細 |
| SeriesInfoInteger | ヒストリカルデータ状態についての情報を返します |
| RefreshRates | 事前に定義された変数と時系列配列のデータをリフレッシュします |
| CopyRates | 指定した通貨ペア・時間軸のヒストリカルデータをMqlRates構造体配列にコピーします |
| CopyTime | 指定した通貨ペア・時間軸のバーのオープン時間を配列にコピーします |
| CopyOpen | 指定した通貨ペア・時間軸のバーの始値を配列にコピーします |
| CopyHigh | 指定した通貨ペア・時間軸のバーの高値を配列にコピーします |
| CopyLow | 指定した通貨ペア・時間軸のバーの安値を配列にコピーします |
| CopyClose | 指定した通貨ペア・時間軸のバーの終値を配列にコピーします |
| CopyTickVolume | 指定した通貨ペア・時間軸のバーのtick出来高を配列にコピーします |
| Bars | 指定した通貨ペア・時間軸のバー数を返します(ヒストリカルデータ期間指定) |
| iBars | 指定したチャートのバー数を返します |
| iBarShift | 指定したオープン時間のバーシフト数を返します |
| iClose | 指定した通貨ペア・時間軸の終値(タイムシフト可)を返します |
| iHigh | 指定した通貨ペア・時間軸の高値(タイムシフト可)を返します |
| iLow | 指定した通貨ペア・時間軸の安値(タイムシフト可)を返します |
| iOpen | 指定した通貨ペア・時間軸の始値(タイムシフト可)を返します |
| iTime | 指定した通貨ペア・時間軸のオープン時間(タイムシフト可)を返します |
| iVolume | 指定した通貨ペア・時間軸の出来高(タイムシフト可)を返します |
| iHighest | 指定したバー数での最大値を持つバーシフト数を返します |
| iLowest | 指定したバー数での最小値を持つバーシフト数を返します |
チャート操作
| 関数 | 詳細 |
| ChartApplyTemplate | 指定したファイルのテンプレートをチャートに適用します |
| ChartSaveTemplate | 指定した名前でチャート設定のテンプレートを保存します |
| ChartWindowFind | インジケータが描画されるサブウインドウの数を返します |
| ChartTimePriceToXY | 時間・価格値をX・Y座標に変換 |
| ChartXYToTimePrice | X・Y座標を時間・価格値に変換 |
| ChartOpen | 指定した通貨ペア・時間軸の新しいチャートを開きます |
| ChartFirst | クライアントターミナルの最初のチャートのIDを返します |
| ChartNext | 指定したチャートIDの次のチャートIDを返します |
| ChartClose | 指定したチャートを閉じます |
| ChartSymbol | 指定したチャートの通貨ペア名を返します |
| ChartPeriod | 指定したチャートの時間軸を返します |
| ChartRedraw | 指定したチャートを強制的に再描画します |
| ChartSetDouble | 指定したチャートのプロパティ値を設定(double) |
| ChartSetInteger | 指定したチャートのプロパティ値を設定(int) |
| ChartSetString | 指定したチャートのプロパティ値を設定(string) |
| ChartGetDouble | 指定したチャートのプロパティ値を取得します(double) |
| ChartGetInteger | 指定したチャートのプロパティ値を取得します(int) |
| ChartGetString | 指定したチャートのプロパティ値を取得します(string) |
| ChartNavigate | 指定したチャートをシフトします。 |
| ChartID | チャートIDを返します |
| ChartIndicatorDelete | チャートウインドウから指定したインジケータを削除します |
| ChartIndicatorName | 指定したチャートウインドウの指定したインジケータリストのインジケータ名(短縮名)を返します |
| ChartIndicatorsTotal | 指定したチャートウインドウのインジケータ数を返します |
| ChartWindowOnDropped | EA、スクリプトをドロップした座標のサブウインドウ番号を返します |
| ChartPriceOnDropped | EA、スクリプトをドロップした座標の価格を返します |
| ChartTimeOnDropped | EA、スクリプトをドロップした座標のオープン時間を返します |
| ChartXOnDropped | EA、スクリプトをドロップした座標のX軸座標を返します |
| ChartYOnDropped | EA、スクリプトをドロップした座標のY軸座標を返します |
| ChartSetSymbolPeriod | 指定した通貨ペア・時間軸にチャート変更します |
| ChartScreenShot | 指定したチャートのスクリーンショットをgif,bmp,png形式で保存します |
| Period | 現在チャートの時間軸を返します |
| Symbol | 現在チャートの通貨ペア名を返します |
| WindowBarsPerChart | チャート上の表示バー量を返します |
| WindowExpertName | 実行中のEA,スクリプト,カスタムインジケータ,ライブラリの名前を返します |
| WindowFind | 指定したインジケータを含んでいるウインドウインデックスを返します |
| WindowFirstVisibleBar | チャートウインドウに最初(最も古い)に表示されているバーインデックスを返します |
| WindowHandle | チャートウインドウのシステムハンドルを返します |
| WindowIsVisible | チャートのサブウインドウの表示フラグを返します |
| WindowOnDropped | EA、スクリプト、カスタムインジケータをドロップしたウインドウインデックスを返します |
| WindowPriceOnDropped | EA、スクリプトをドロップした座標の価格を返します |
| WindowTimeOnDropped | EA、スクリプトをドロップした座標のオープン時間を返します |
| WindowXOnDropped | EA、スクリプトをドロップした座標のX軸座標を返します |
| WindowYOnDropped | EA、スクリプトをドロップした座標のY軸座標を返します |
| WindowScreenShot | 現在のチャートのスクリーンショットをgif形式で保存します |
| WindowsTotal | チャート上の表示ウインドウ合計数を返します |
| WindowRedraw | 現在チャートを強制的に再描画します |
| WindowPriceMax | 現在チャートの指定したサブウインドウの垂直スケールの最大値を返します |
| WindowPriceMin | 現在チャートの指定したサブウインドウの垂直スケールの最小値を返します |
アカウント情報
| 関数 | 詳細 |
| AccountInfoDouble | 対応するアカウントプロパティの値(double型)を返します |
| AccountInfoInteger | 対応するアカウントプロパティの値(bool,int,log型)を返します |
| AccountInfoString | 対応するアカウントプロパティの値(string型)を返します |
| AccountBalance | 現在アカウントの口座残高を返します |
| AccountCredit | 現在アカウントのクレジット値を返します |
| AccountCompany | 現在アカウントが登録された証券会社名を返します |
| AccountCurrency | 現在アカウント口座の通貨名を返します |
| AccountEquity | 現在アカウントの有効証拠金を返します |
| AccountFreeMargin | 現在アカウントの余剰証拠金 |
| AccountFreeMarginCheck | 指定したポジションを現在のレートで持った場合に残る余剰証拠金を返します |
| AccountFreeMarginMode | 余剰証拠金の計算モード |
| AccountLeverage | 現在アカウントのレバレッジを返します |
| AccountMargin | 現在アカウントの証拠金を返します |
| AccountName | 現在のアカウント名を返します |
| AccountNumber | アカウント番号を返します |
| AccountProfit | 現在アカウントの損益を返します |
| AccountServer | 接続サーバー名を返します |
| AccountStopoutLevel | 現在アカウントのストップアウトレベルを返します |
| AccountStopoutMode | ストップアウトレベルの計算モードを返します |
マーケット情報
| 関数 | 詳細 |
| MarketInfo | 「気配値表示」ウインドウに表示されている様々な情報を返します |
| SymbolsTotal | 利用可能な(「気配値表示」に表示されている)通貨ペアの数を返します |
| SymbolName | 指定した通貨ペアの名前を返します |
| SymbolSelect | 「気配値表示」ウインドウの通貨ペアを選択・削除出来ます |
| SymbolInfoDouble | 通貨ペアの対応するプロパティ値を返します(double) |
| SymbolInfoInteger | 通貨ペアの対応するプロパティ値を返します(int) |
| SymbolInfoString | 通貨ペアの対応するプロパティ値を返します(string) |
| SymbolInfoTick | MqlTick型の変数に指定した通貨ペアの現在の価格データを設定します |
| SymbolInfoSessionQuote | 指定したクォートセッション(指定した通貨ペア・曜日・時間範囲)での受信を許可します |
| SymbolInfoSessionTrade | 指定したトレードセッション(指定した通貨ペア・曜日・時間範囲)での受信を許可 |
| AccountFreeMarginMode | 余剰証拠金の計算モード |
取引関数
取引注文や取引管理を行う為の関数です。
取引関数はEAとスクリプトで使用可能です。
OrderSend(), OrderClose(), OrderCloseBy(), OrderModify(), OrderDelete()の関数は、
EAによる取引が許可されている場合にのみ呼び出す事が出来ます
(プロパティの"自動売買を許可する"にチェックが入っている時のみ)。

| 関数 | 詳細 |
| OrdersHistoryTotal | ターミナルにロードされたアカウント履歴にあるクローズ済の注文数を返します。 |
| OrdersTotal | 注文(エントリー中と保留中)の総数を返します |
| OrderSelect | 処理する為の注文を選択します |
| OrderSend | 新規注文(エントリーオーダー)送信 |
| OrderClose | 決済注文(クローズオーダー) |
| OrderCloseBy | 両建てポジションを同時に決済します |
| OrderModify | 現在選択中の注文を変更します |
| OrderDelete | 保留中の注文を削除します |
| OrderPrint | 現在選択中の注文の情報をログ出力します |
| OrderTicket | 現在選択中の注文のチケット番号を返します |
| OrderOpenTime | 現在選択中の注文の注文時間を返します |
| OrderOpenPrice | 現在選択中の注文の注文価格を返します |
| OrderType | 現在選択中の注文の注文タイプを返します |
| AccountName | 現在のアカウント名を返します |
| AccountNumber | アカウント番号を返します |
| AccountProfit | 現在アカウントの損益を返します |
| OrderLots | 現在選択中の注文のロットを返します |
| OrderSymbol | 現在選択中の注文の通貨ペア名を返します |
| OrderStopLoss | 現在選択中の注文のストップロス価格を返します |
| OrderTakeProfit | 現在選択中の注文のリミット価格を返します |
| OrderCloseTime | 現在選択中の注文の決済時間を返します |
| OrderClosePrice | 現在選択中の注文の決済価格を返します |
| OrderCommission | 現在選択中の注文の手数料を返します |
| OrderExpiration | 選択した保留中注文の有効期限を返します |
| OrderSwap | 現在選択中の注文のスワップを返します |
| OrderProfit | 現在選択中の注文の損益を返します |
| OrderComment | 現在選択中の注文のコメントを返します |
| OrderMagicNumber | 現在選択中の注文のマジックナンバーを返します |
ファイル関数
ファイルを操作する為の関数です。
セキュリティ上の理由から、ファイル操作はMQL4言語で厳格に制御されます。
ファイルサンドボックス(セキュリティモデル)の外にあるファイルは、MQL4プログラムでファイル操作する事は出来ません。
作業ファイルを配置できるディレクトリは2つあります。
・"ターミナルデータディレクトリ\MQL4\Files" (ターミナルメニューで「ファイル」⇒「データフォルダを開く」で開かれる場所)
・コンピュータにインストールされた全ターミナルの共通フォルダ。
(通常は"C:\Users\ユーザー名\AppData\Roaming\MetaQuotes\Terminal\Common"に配置されますが、基本的にOSに依存します)
他ディレクトリのファイルは操作出来ません。
| 関数 | 詳細 |
| FileFindFirst | 指定したフィルタでディレクトリ内のファイルを検索 |
| FileFindNext | FileFindFirst()関数の検索を続けます |
| FileFindClose | 検索ハンドル閉じます |
| FileOpen | 指定した名前とフラグでファイルを開きます |
| FileDelete | 指定したファイルを削除します |
| FileFlush | 入力/出力ファイルバッファに残っている全データをディスクへ書き込みます |
| FileGetInteger | ファイルプロパティ(int)を取得します |
| FileIsEnding | ファイルの終端判定 |
| FileIsLineEnding | ファイルの行末判定 |
| FileClose | ファイルを閉じます |
| FileIsExist | ファイルの存在有無チェック |
| FileCopy | ファイルコピー |
| FileMove | ファイルの移動・名前変更 |
| FileReadArray | BIN形式ファイルの配列読込み(文字列は読み込まない) |
| FileReadBool | CSV形式ファイルの現在位置から読込み区切りまでの文字列を読み取り、 読み取った文字列をbool型データに変換します |
| FileReadDatetime | CSV形式ファイルから"YYYY.MM.DD HH:MI:SS","YYYY.MM.DD","HH:MI:SS"のいずれかの形式の文字列を読み取り、 datetime型データに変換します |
| FileReadDouble | 現在位置のファイルポインタからdouble値を読み取ります |
| FileReadFloat | 現在位置のファイルポインタからfloat値を読み取ります |
| FileReadInteger | 現在位置のファイルポインタからint,short,char値を読み取ります |
| FileReadLong | 現在位置のファイルポインタからlong値を読み取ります |
| FileReadNumber | CSV形式ファイルの現在位置から読込み区切りまでの文字列を読み取り、 読み取った文字列をdouble型データに変換します |
| FileReadString | 現在位置のファイルポインタから文字列(string)を読み取ります |
| FileReadStruct | BIN形式ファイルを現在位置のファイルポインタから構造体データ読み取ります |
| FileSeek | 指定した位置を基準にして、ファイルポインタを指定したバイト数分移動します |
| FileSize | ファイルサイズを返します |
| FileTell | ファイルポインタの現在位置を返します |
| FileWrite | CSVまたはBINファイルにデータを書き込みます |
| FileWriteArray | BIN形式ファイルに配列データ内容を書き込みます(文字列を除く) |
| FileWriteDouble | BIN形式ファイルにdouble型データを(現在のファイルポインタから)書き込みます |
| FileWriteFloat | BIN形式ファイルにfloat型データを(現在のファイルポインタから)書き込みます |
| FileWriteInteger | BIN形式ファイルにint型データを(現在のファイルポインタから)書き込みます |
| FileWriteLong | BIN形式ファイルにlong型データを(現在のファイルポインタから)書き込みます |
| FileWriteString | CSVまたはBIN形式ファイルに文字列(string)データを(現在のファイルポインタから)書き込みます |
| FileWriteStruct | BIN形式ファイルに構造体データの値を(現在のファイルポインタから)書き込みます |
| FolderCreate | "Files"ディレクトリ内に新しいフォルダを作成します |
| FolderDelete | 指定したディレクトリを削除します。フォルダが空で無い場合は削除出来ません |
| FolderClean | 指定したフォルダ内のファイルを全て削除します |
| FileOpenHistory | "history"ディレクトリ(またはそのサブフォルダ)のファイルを開きます |
オブジェクト関数
| 関数 | 詳細 |
| ObjectCreate | 指定したチャートに指定したタイプのオブジェトを生成します |
| ObjectName | オブジェクトリストの指定したインデックスに対応するオブジェクト名を返します |
| ObjectDelete | 指定した名前のオブジェクトを削除します |
| ObjectsDeleteAll | 指定したサブウインドウから指定したタイプのオブジェクトを全て削除します |
| ObjectFind | 指定した名前のオブジェクトを検索します |
| ObjectGetTimeByValue | 指定したオブジェクト時間での価格を返します |
| ObjectGetValueByTime | 指定したオブジェクト価格での時間を返します |
| ObjectMove | 指定したオブジェクトのアンカーポイントを変更します |
| ObjectsTotal | 指定したタイプのオブジェクト数を返します |
| ObjectGetDouble | オブジェクトプロパティ(double)を取得します |
| ObjectGetInteger | オブジェクトプロパティ(int)を取得します |
| ObjectGetString | オブジェクトプロパティ(string)を取得します |
| ObjectSetDouble | オブジェクトプロパティ(double)を設定します |
| ObjectSetInteger | オブジェクトプロパティ(int)を設定します |
| ObjectSetString | オブジェクトプロパティ(string)を設定します |
| TextSetFont | 描画メソッドで使用するフォントを設定します(デフォルトはArialフォント、サイズ20) |
| TextOut | グラフィカルリソースの作成の為にデザインされたカスタム配列(バッファ)にテキストを転送します |
| TextGetSize | 現在のフォント設定で高さと幅を返します |
| ObjectDescription | オブジェクトの説明を返します |
| ObjectGet | 指定したオブジェクトのプロパティ値を返します |
| ObjectGetFiboDescription | フィボナッチオブジェクトのレベル説明を返します |
| ObjectGetShiftByValue | オブジェクトの座標から指定した価格に対応するバーインデックスを算出します |
| ObjectGetValueByShift | オブジェクトの座標から指定したバーインデックスに対応する価格を算出します |
| ObjectSet | 指定したオブジェクトのプロパティ値を変更します |
| ObjectSetFiboDescription | フィボナッチオブジェクトレベルの説明を設定します |
| ObjectSetText | オブジェクト説明を変更します |
| ObjectType | オブジェクトタイプを返します |
テクニカルインジケータ関数
標準インジケータ・カスタムインジケータの計算を行います。
EA(または他のMQL4プログラム)は、任意のインジケータの値を取得する事が出来ます。
取得対象のインジケータはチャート内に存在する必要はありません。
要求したインジケータがロードされ、それを呼び出したモジュールのスレッドで計算されます。
任意のインジケータは現在のチャートだけでなく、任意の通貨ペア・時間軸のデータで計算する事が出来ます。
別チャートのデータ(指定した通貨ペア・時間軸が現在チャートと異なる)を要求した場合、
対応するチャートがクライアントターミナルで開かれていない可能性がある状況では、必要なデータはサーバーから取得しなければなりません。
必要なデータが存在しない場合、エラーコード4066(ERR_HISTORY_WILL_UPDATED:要求されたヒストリーデータが更新中)が作成されます、
この時データは取得出来ていないので、再要求する必要があります(ArrayCopySeries()関数のサンプルソース参照)。
全てのインジケータ関数は少なくとも2つのパラメータ(通貨ペアと時間軸)を持っています。
通貨ペアにNULLを指定した場合は現在の通貨ペアを意味します。
時間軸に0を指定した場合は現在の時間軸を意味します。
| 関数 | 詳細 |
| iAC | AC(アクセラレータ)オシレータ |
| iAD | AD(累積/分散)インジケータ |
| iADX | ワイルダーADX(Average Directional Index) |
| iAlligator | アリゲーター |
| iAO | AO(Awesome Oscillator)オシレーター |
| iATR | ATR(Average True Range) |
| iBearsPower | ベアパワー |
| iBands | ボリンジャーバンド |
| iBandsOnArray | ボリンジャーバンド【配列格納】 |
| iBullsPower | ブルパワー |
| iCCI | CCI(Commodity Channel Index) |
| iCCIOnArray | CCI【配列格納】 |
| iCustom | カスタムインジケータ |
| iDeMarker | デマーカー |
| iEnvelopes | エンベロープ |
| iEnvelopesOnArray | エンベロープ【配列格納】 |
| iForce | 勢力指数(Force Index) |
| iFractals | フラクタル |
| iGator | ゲーターオシレーター |
| iIchimoku | 一目均衡表 |
| iBWMFI | ウィリアアムズ市場簡素化指数(Market Facilitation Index by Bill Williams) |
| iMomentum | モメンタム |
| iMomentumOnArray | モメンタム【配列格納】 |
| iMFI | マネーフローインデックス |
| iMA | 移動平均 |
| iMAOnArray | 移動平均配列 |
| iOsMA | MACDヒストグラム |
| iMACD | MACD |
| iOBV | オンバランスボリューム |
| iSAR | パラボリックSAR |
| iRSI | RSI(相対力指数) |
| iRSIOnArray | RSI【配列格納】 |
| iRVI | RVI(Relative Vigor Index) |
| iStdDev | 標準偏差 |
| iStdDevOnArray | 標準偏差【配列格納】 |
| iStochastic | ストキャスティクス |
| iWPR | ウィリアムズ%R |
検査
| 関数 | 詳細 |
| GetLastError | 直近のエラーコードを返します |
| IsStopped | MQLプログラムが動作停止するように命令された場合にtrueを返します |
| UninitializeReason | アンロードの理由コードを返します |
| TerminalInfoInteger | クライアントターミナルに対応するプロパティをint型で返します) |
| TerminalInfoDouble | クライアントターミナルに対応するプロパティをdouble型で返します) |
| TerminalInfoString | クライアントターミナルに対応するプロパティをstring型で返します) |
| MQLInfoInteger | MQL4プログラムに対応するプロパティをint型で返します) |
| MQLInfoString | MQL4プログラムに対応するプロパティをstring型で返します) |
| MQLSetInteger | 現在チャートの通貨ペア名を返します |
| Period | 現在チャートの時間軸を返します |
| Digits | 現在通貨ペアの価格の精度を返します |
| Point | 現在通貨ペアの小数点値を返します |
| IsConnected | サーバーとの接続チェックします |
| IsDemo | デモ口座かチェックします(EA用) |
| IsDllsAllowed | dll関数呼び出し許可されているかチェックします(EA用) |
| IsExpertEnabled | EA許可(ターミナルの「自動売買」ボタン)されているかチェックします |
| IsLibrariesAllowed | ライブラリ関数呼び出し可能かチェックします(EA用) |
| IsOptimization | ストラテジーテスターの最適化モード中かチェックします(EA用) |
| IsTesting | テストモード中かチェックします |
| IsTradeAllowed | EA取引許可(EA設定画面の「自動売買を許可する」チェックボックス)されていて、トレードビジーでないかチェックします |
| IsTradeContextBusy | トレードビジー情報を返します |
| IsVisualMode | ストラテジーテスターのヴィジュアルモード中かチェックします |
| TerminalCompany | クライアントターミナルを提供した会社名を返します |
| TerminalName | クライアントターミナル名を返します |
| TerminalPath | クライアントターミナルを起動したパスを返します |