MQL4リファレンス(関数一覧表)

MQL4リファレンス

MQL4の組み込み関数一覧になります。個人的に分かりやすく内容を省略していますので、詳しく知りたい方はMQL4リファレンス等を参考にして下さい。(英語ですがw)

目的・用途から探す(逆引きガイド)

EAやインジケーターを作成する際によく使う処理を、目的別にまとめました。関数名だけでなく、実際のコードの組み立て方を探したい場合はこちらの記事も参考にしてみてください。

やりたいこと(用途)実践記事・サンプルコード
EAの基本構成・作り方を知りたい潤奈流EA講座①(参考コードと構成説明)
潤奈流EA講座②(プロパティとパラメーター)
潤奈流EA講座③(OnInit, OnTick, OnDeinit関数)
注文・決済・ポジション数を管理したい潤奈流EA講座⑤(Position関数, OpenOrder関数, CloseOrder関数)
ポジション数の取得関数(オリジナル関数)
ポジション数(成行)を取得する関数
ポジション数(指値・逆指値)を取得する関数
トレーリングストップを実装したいトレーリングストップ関数(オリジナル関数)スタンダード
潤奈流EA講座⑥(TrailingStop関数, PerfectOrder関数, まとめ)
時間帯・曜日でエントリーを制限したい指定した時間帯にエントリー禁止制御出来る関数
指定した曜日にエントリー禁止制御出来る関数
インジケーターの値やサイン判定を使いたいiCustom関数とは(外部インジケーターの呼び出し)
2本移動平均線のクロス判定 / クロスクローズ
ボリンジャーバンド判定(順張り・逆張り・中央線クロス)
ZigZagの頂点と底辺に矢印表示インジケーター
高値・安値の取得やpips変換を行いたいローソク足の直近高安値を配列へ格納する関数
point↔pipsへの変換値を取得する関数 / pipsとpointの違い
潤奈流EA講座④(AdjustPoint関数, AdjustSlippage関数)
価格データや取引履歴をCSV出力したい取引履歴を指定期間でCSV出力するスクリプト
MT4でインジケーター値をCSV化するスクリプト(ZigZag編)
相場の価格変動をCSV出力するEA / ボラティリティCSV出力EA
自作のオリジナル関数をまとめて探したいMQL4リファレンス(オリジナル関数一覧)
MQL4からMQL5(MT5)へ書き換えたい【MT5】MQL4とMQL5の違いとは?移行のための5つの重要ポイント
【MT5】標準ライブラリCTradeを使ったEA注文処理の書き方
【MQL5】iMAやiRSIを使ったテクニカル指標の計算とデータコピー

イベントハンドラ

イベントハンドラとは、特定のイベントが発生したときに呼び出される処理のことです。EA作成で基本となるOnInit・OnTick・OnDeinitの使い方は潤奈流EA講座③、MQL5での違いはMQL5基礎:OnInit / OnTick / OnDeinit の役割分担で解説しています。

型関数名対象プログラム詳細
intOnInitEA,
インジケーター,
スクリプト
プログラムを実行した直後と以下の時に処理されるイベント
・通貨ペア、チャート時間軸を変更後
・プログラムの再コンパイル後
・パラメーター設定画面から設定を変更後
・アカウント変更後
解説:OnInitの詳細 / EA講座③
voidOnDeinitEA,
インジケーター,
スクリプト
プログラムを停止される直前に処理されるイベント
・クライアントターミナルを閉じた時
・チャートを閉じた時
・時間軸が変更された時
・プログラムの再コンパイル時
・アカウント変更時
解説:OnDeinitの詳細 / EA講座③
voidOnStartスクリプトプログラムを実行した直後に処理されるイベント
※EA、インジケーターでは処理されません
解説:OnStartの詳細
int
(void)
OnCalculateインジケーターTick値が更新される度に処理されるイベント
解説:OnCalculateの詳細
voidOnTickEATick値が更新される度に処理されるイベント
※OnTick()関数処理中には次のTick値更新時に動作しない
解説:OnTickの詳細 / EA講座③
voidOnTimerEA,
インジケーター
EventSetTimer()関数によってタイマーを起動させて
処理されるイベント
※プログラムを停止する時には、OnDeinit()関数内で
EventKillTimer()関数を使用してタイマーを削除する必要がある
解説:OnTimerの詳細
doubleOnTesterEAEAのバックテスト完了後に処理されるイベント
解説:OnTesterの詳細 / 実践:最大ドローダウン期間の取得
voidOnChartEventEA,
インジケーター
ユーザーがチャート上で以下の操作した時に処理されるイベント
・対象のチャートウインドウ選択時にキーボードを押下された時
・グラフィカルオブジェクトを作成、削除、クリック、移動された時
・LabelEditオブジェクトでテキスト編集が終わった時
EventChartCustom()関数を使用して処理を送信する事も出来る
解説:OnChartEventの詳細 / MQL5でのボタン・イベント設計

プリプロセッサ

プリプロセッサとは、プログラムを動かす前にデータ入力やデータ整形などの準備的な処理のこと。

コード詳細
#define定数をニーモニック名に置き換える(解説:プリプロセッサ #define)
#propertyプログラムのプロパティ設定(解説:プリプロセッサ #property / EA講座②)
#include外部ファイルからプログラムを取り込む
#import外部ファイルの関数を使用する

プログラムプロパティ

#property(共通)

型識別子詳細
–strict厳格なコンパイルモード用の宣言
stringiconex4プログラムのアイコン使用する画像ファイルへのパスを指定
stringlink作成者のwebサイトへのリンクを記載
stringcopyright作成者(著作者)の名前を記載
stringversionプログラムのバージョンを記載
stringdescriptionプログラムの説明文を記載
intstacksizeスタックサイズを指定
–libraryexport修飾子を持つ関数を他MQL4プログラムでインポート出来る

#property(インジケータ用)

型識別子詳細
–indicator_chart_windowカスタムインジケーターをチャートウインドウに表示(解説:indicator_chart_window)
–indicator_separate_windowカスタムインジケーターをサブウインドウに表示(解説:indicator_separate_window)
intindicator_heightインジケーターサブウインドウの高さをピクセル単位で固定(解説:indicator_height)
intindicator_buffersインジケーター計算のバッファ数(範囲:1~512)(解説:indicator_buffers)
doubleindicator_minimumインジケーターサブウインドウの下限スケール設定
doubleindicator_maximumインジケーターサブウインドウの上限スケール設定
stringindicator_label Nデータウインドウに表示されるN番目のラベル
colorindicator_color NN番目のインジケーターの色
intindicator_width NN番目のインジケーターの線太さ
intindicator_style NN番目のインジケーターの線種
intindicator_type NN番目のインジケーターの線画スタイル
doubleindicator_level NサブウインドウにN番目のインジケーターレベルを表示
colorindicator_levelcolorインジケーターレベルの色(個別設定なし)
intindicator_levelwidthインジケーターレベルの線太さ(個別設定なし)
intindicator_levelstyleインジケーターレベルの線種(個別設定なし)

#property(スクリプト用)

型識別子詳細
–script_show_confirmスクリプトを実行する前に確認ウインドウを表示
–script_show_inputsスクリプトを実行する前にプロパティウインドウを表示
(確認ウインドウは無効)

予約語

予約語とは、開発者が変数名や関数名に使用する事が出来ない識別名のこと。

データ型

分類型用途・範囲
整数型char値の範囲は-128~127
整数型uchar値の範囲は0~255
整数型short値の範囲は-32768~32767
整数型ushort値の範囲は0~65535
整数型int値の範囲は-2147483648~2147483647
整数型uint値の範囲は0~4294967295
整数型long値の範囲は-9223372036854775808~9223372036854775807
整数型ulong値の範囲は0~18446744073709551615
浮動小数点数型float値の範囲は1.175494351e-38~3.402823466e+38
浮動小数点数型double値の範囲は2.2250738585072014e-308~1.7976931348623158e+308
文字列型stringテキスト文字列を格納出来る
日付時刻定数datetime1970年1月1日からの経過秒数が保存される
カラー型color色に関する情報を格納出来る
ブーリアン型booltrue:1(真)/false:0(偽)の理論値
列挙型enum定数リストを定義する事が出来る
void型void戻り値を返さない関数、引数がない関数に使用
構造体struct幾つかの異なる型(voidを除く)をまとめて1つのデータ型に出来る
クラスclassオブジェクトを生成するための設計図・ひな形に相当する抽象データ型

アクセス制限

型用途
const変数を定数として宣言する時だけ初期化され変更する事は出来ない
publicクラスメンバへの無制限アクセスが可能
protected同じクラスと継承されたクラスからのみアクセス可能
private同じクラスからのみアクセス可能
virtualクラスメンバにのみ適用される

メモリクラス

修飾子用途
externプログラムの入力パラメーターを決定する
※宣言した変数は変更出来る
inputプログラムの入力パラメーターを決定する
※宣言した変数は変更出来ない(解説:EA講座② プロパティとパラメーター)
staticプログラムがロードされた後に一度だけ初期化する

処理

処理文用途
if-else条件処理条件式がtrue(真)の場合、処理が実行され偽の処理は実行されない
※elseは省略出来る(解説:IF関数の書き方について)
forループ処理初期値から終了条件になるまでループ処理を行う
while処理条件式を評価し、true(真)の間はループ処理を行う
do whileループ処理ループ処理の終わりで終了条件を判定する
switch-case処理式と一致するcase(定数)の処理を行う
一致する定数がない場合、default処理が実行される
※defaultは省略出来る
continue処理最も近くにある外側のwhile,do while,forのループ処理の始めに戻る
break処理最も近くにある外側のswitch,while,do while,forの処理から抜ける
return処理現在の関数実行を終了し、呼び出したプログラムに戻る
戻り値がある場合は、呼び出し関数に値を返す
sizeof演算子オブジェクトのデータサイズを取得
operator演算子演算子のオーバーロードに用います
new演算子自動的に対応する大きさのオブジェクトを作成し、コンストラクタを
呼び出してディスクリプタを返す
※クラスのオブジェクトにのみ適用出来て、構造体には適用出来ない
delete演算子new演算子によって作成されたオブジェクトを削除する

定義済み変数

型変数値
int_Digits 又は Digits()価格の小数点以下の桁数
double_Point 又は Point()価格の最小刻み幅(解説:pipsとpointの違い / 実践:point↔pips変換関数)
int_LastError 又は GetLastError()直前のエラーコード
int_Period 又は Period()チャートの時間枠
string_Symbol 又は Symbol()通貨ペア・銘柄
doubleAsk買値
doubleBid売値
intBarsチャート上のバーの数
doubleClose[]バーの終値の配列
doubleHigh[]バーの高値の配列(実践:直近高安値を配列へ格納する関数)
doubleLow[]バーの安値の配列
doubleOpen[]バーの始値の配列
doubleTime[]バーの開始時刻の配列
longVolume[]バーのティック数の配列

共通関数

型関数動作
voidAlert()ポップアップアラート
voidComment()チャートにコメント表示
voidExpertRemove()EAを停止してチャートから削除
uintGetTickCount()システムの経過時間(ミリ秒)
ulongGetMicrosecondCount()MQLプログラムの経過時間(マイクロ秒)
intMessageBox()メッセージボックス
boolPlaySound()サウンドファイル再生
voidPrint()エキスパートログへ出力
voidPrintFormat()エキスパートログへ出力(フォーマット付き)
voidResetLastError()_LastErrorをゼロに設定
voidSetUserError()エラー番号をユーザーが定義
boolSendFTP()FTPサーバーへ送信
boolSendNotification()プッシュ通知の送信
boolSendMail()メール送信
voidSleep()プログラムの一時休止
doubleTesterStatistics()バックテストの結果(実践:最大ドローダウン期間を取得する)
voidZeroMemory()変数のリセット

配列関数

型関数動作
intArrayBsearch()配列の検索
intArrayCopy()配列のコピー
intArrayCompare()配列の比較
voidArrayFree()配列の開放
boolArrayGetAsSeries()時系列配列のチェック
intArrayInitialize()配列の初期値
voidArrayFill()配列の充てん
boolArrayIsDynamic()動的配列のチェック
boolArrayIsSeries()時系列配列のチェック
intArrayMaximum()配列の最大値の位置
intArrayMinimum()配列の最小値の位置
intArrayRange()多次元配列の要素数
intArrayResize()配列のサイズ変更
boolArraySetAsSeries()時系列配列のセット
intArraySize()1次元配列の要素数
boolArraySort()配列のソート
intArrayCopyRates()レート配列のコピー
intArrayCopySeries()時系列配列のコピー
intArrayDimension()配列の次数

変換関数

型関数動作
stringCharToString()文字コードから文字列へ変換
stringCharArrayToString()文字コード配列から文字列へ変換
uinuColorToARGB()color型からARGB形式へ変換
stringColorToString()color型から文字列へ変換
stringDoubleToString()実数から文字列へ変換
stringEnumToString()列挙値から文字列へ変換
stringIntegerToString()整数から文字列へ変換
stringShortToString()Unicoldeシンボルコードから文字列へ変換
stringShortArrayToString()short型配列から文字列へ変換
stringTimeToString()datetime型から文字列へ変換
doubleNormalizeDouble()実数の正規化
intStringToCharArray()文字列からuchar型配列へ変換
colorStringToColor()文字列からcolor型へ変換
doubleStringToDouble()文字列から実数へ変換
longStringToInteger()文字列から整数へ変換
intStringToShortArray()文字列からushort型配列へ変換
datetimeStringToTime()文字列からdatetime型へ変換
stringStringFormat()文字列のフォーマット
stringCharToStr()uchar文字コードを文字変換
stringDoubleToStr()浮動小数点数を文字列変換
doubleStrToDouble()文字列を浮動小数点数変換
intStrToInteger()文字列を整数変換
datetimeStrToTime()文字列を時刻変換
stringTimeToStr()時刻を文字列変換

数学関数

型関数動作
doubleMathAbs()絶対値
doubleMathArccos()アークコサイン
doubleMathArcsin()アークサイン
doubleMathArctan()アークタンジェント
doubleMathCeil()シーリング
doubleMathCos()コサイン
doubleMathExp()エクスポネンシャル
doubleMathFloor()フロア
doubleMathLog()自然対数
doubleMathLog10()常用対数
doubleMathMax()最大値
doubleMathMin()最小値
doubleMathMod()剰余
doubleMathPow()べき乗
intMathRand()乱数
doubleMathRound()丸め
doubleMathSin()サイン
doubleMathSqrt()平方根
voidMathSrand()乱数の種をセット
doubleMathTan()タンジェント
boolMathIsValidNumber()実数の有効性

文字列関数

型関数動作
boolStringAdd()文字列の追加
intStringBufferLen()文字列のバッファサイズ
intStringCompare()文字列の比較
stringStringConcatenate()文字列の連結
boolStringFill()文字列の充てん
intStringFind()文字列の検索
ushortStringGetCharacter()文字列中の文字コード
boolStringInit()文字列の初期化
intStringLen()文字列の長さ
intStringReplace()文字列の置換
boolStringSetCharacter()文字列の変更
intStringSplit()文字列の分割
stringStringSubstr()部分文字列の抽出
boolStringToLower()小文字へ変換
boolStringToUpper()大文字へ変換
stringStringTrimLeft()文字列の左詰め
stringStringTrimRight()文字列の右詰め
ushortStringGetChar()指定位置文字
stringStringSetChar()指定位置文字置換

日付・時間関数

時間帯や曜日によるエントリー制限の実装例は、指定した時間帯にエントリー禁止制御出来る関数および指定した曜日にエントリー禁止制御出来る関数で解説しています。

型関数動作
datetimeTimeCurrent()サーバー時刻
datetimeTimeLocal()ローカル時刻
datetimeTimeGMT()ローカル時刻(GMT)
intTimeDaylightSavings()夏時間への補正
intTimeGMTOffset()ローカル時刻とGMTの差
voidTimeToStruct()datetime型からMqlDateTime構造体への変換
datetimeStructToTime()MqlDateTime構造体からdatetime型への変換
intYear()現在の年(サーバー時刻)
intMonth()現在の月(サーバー時刻)
intDay()現在の日 (サーバー時刻)
intDayOfWeek()現在の曜日(サーバー時刻)(実践:曜日エントリー禁止関数)
intDayOfYear()現在の通し日 (サーバー時刻)
intHour()現在の時(サーバー時刻)(実践:時間帯エントリー禁止関数)
intMinute()現在の分 (サーバー時刻)
intSeconds()現在の秒 (サーバー時刻)
intTimeYear()指定時刻の年
intTimeMonth()指定時刻の月
intTimeDay()指定時刻の日
intTimeDayOfWeek()指定時刻の曜日
intTimeDayOfYear()指定時刻の通し日
intTimeHour()指定時刻の時
intTimeMinute()指定時刻の分
intTimeSeconds()指定時刻の秒

口座情報関数

型関数動作
doubleAccountInfoDouble()実数型の口座情報
longAccountInfoInteger()整数型の口座情報
stringAccountInfoString()文字列型の口座情報
doubleAccountBalance()口座残高(関連:MQL5での許容リスク%からのロット自動計算)
doubleAccountCredit()口座クレジット
stringAccountCompany()ブローカー名
stringAccountCurrency()口座通貨
doubleAccountEquity()口座純資産
doubleAccountFreeMargin()余剰証拠金
doubleAccountFreeMarginCheck()余剰証拠金チェック
doubleAccountFreeMarginMode()余剰証拠金モード
intAccountLeverage()レバレッジ
doubleAccountMargin()使用証拠金
stringAccountMargin()口座名
intAccountNumber()口座番号
doubleAccountProfit()口座損益
stringAccountServer()接続サーバー名
intAccountStopoutLevel()ストップアウトレベル
intAccountStopoutMode()ストップアウトモード

チェック関数

型関数動作
intGetLastError()直近のエラー
boolIsStopped()プログラムの強制シャットダウンのチェック
intUninitializeReason()初期化解除理由
intMQLInfoInteger()整数型のプログラム情報
stringMQLInfoString()文字列型のプログラム情報
voidMQLSetInteger()プログラムのプロパティ(コードページ)のセット
intTerminalInfoInteger()整数型のプログラム環境
doubleTerminalInfoDouble()実数型のプログラム環境
stringTerminalInfoString()文字列型のプログラム環境
boolIsConnected()接続のチェック
boolIsDemo()デモ口座のチェック
boolIsDllAllowed()DLL利用許可のチェック
boolIsExpertEnabled()エキスパート利用のチェック
boolIsLibrariesAllowed()ライブラリ利用許可のチェック
boolIsOptimization()最適化モードのチェック
boolIsTesting()テストモードのチェック
boolIsTradeAllowed()トレード許可のチェック
boolIsTradeContextBusy()トレードビジーのチェック
boolIsVisualMode()ビジュアルモードのチェック
stringTerminalCompany()ターミナル会社
stringTerminalName()ターミナル名
stringTerminalPath()ターミナルパス

マーケット情報関数

型関数動作
doubleMarketInfo()シンボルの情報(検証:バックテストで他通貨ペアの値は取得出来るか? / MQL5マルチカレンシーEA)
intSymbolsTotal()気配値表示のシンボル数
stringSymbolName()シンボル名
boolSymbolSelect()シンボルの選択
doubleSymbolInfoDouble()実数型のシンボルのプロパティ
longSymbolInfoInteger()整数型のシンボルのプロパティ
stringSymbolInfoString()文字列型のシンボルのプロパティ
boolSymbolInfoTick()シンボルの現在の価格
boolSymbolInfoSessionQuote()シンボルのクォート時間
boolSymbolInfoSessionTrade()シンボルのトレード時間

時系列アクセス関数

型関数動作
longSeriesInfoInteger()シンボルの履歴データのプロパティ
boolRefreshRates()レートのリフレッシュ
intCopyRates()MqlRates型データ配列のコピー
intCopyTime()バーの開始時刻配列のコピー
intCopyOpen()始値配列のコピー
intCopyHigh()高値配列のコピー
intCopyLow()安値配列のコピー
intCopyClose()終値配列のコピー
intCopyTickVolume()ティックボリューム配列のコピー
intBars()バーの数
intiBars()バーの数
intiBarShift()指定時刻のバーインデックス
doubleiClose()バーの終値
doubleiHigh()バーの高値(実践:ローソク足の直近高安値を配列へ格納する関数)
intiHighest()指定期間の最高値の位置
doubleiLow()バーの安値(実践:ローソク足の直近高安値を配列へ格納する関数)
intiLowest()指定期間の最安値の位置
doubleiOpen()バーの始値
datetimeiTime()バーの開始時刻
doubleiVolume()バーのティック数

チャート操作関数

型関数動作
intChartWindowFind()チャート上のサブウィンドウの数
boolChartTimePriceToXY()チャートの時刻/価格座標をX/Y座標に変換
boolChartXYToTimePrice()チャートのX/Y座標を時刻/価格座標に変換
longChartOpen()チャートのオープン
longChartFirst()最初のチャートID
longChartNext()次のチャートID
boolChartClose()チャートのクローズ
stringChartSymbol()チャートのシンボル
ENUM_TIMEFRAMESChartPeriod()チャートの時間枠
voidChartRedraw()チャートの再描画
boolChartSetDouble()実数型のチャートプロパティの設定
boolChartSetInteger()整数型のチャートプロパティの設定
boolChartSetString()文字列型のチャートプロパティの設定
doubleChartGetDouble()実数型のチャートプロパティ
longChartGetInteger()整数型のチャートプロパティ
stringChartGetString()文字列型のチャートプロパティ
boolChartNavigate()チャートのシフト
longChartID()チャートID
boolChartScreenShot()チャートのスクリーンショット

取引関数

MQL4ではOrderSendやOrderCloseなどで注文・決済を行いますが、MQL5(MT5)では標準ライブラリのCTradeクラスを使う方式に変わっています。MQL4での実践コードは潤奈流EA講座⑤(Position・OpenOrder・CloseOrder関数)、MQL5での実装はCTradeを使った注文処理およびCTradeを使った決済処理を参照してください。

型関数動作
intOrdersHistoryTotal()決済済み注文の数を取得
intOrdersTotal()注文中の数を取得(実践:ポジション数の取得関数 / 成行のみ / 指値・逆指値)
intOrderSelect()処理する注文を選択(実践:EA講座⑤ Position関数)
intOrderSend()新規注文を送信(実践:EA講座⑤ OpenOrder関数 / MQL5での注文処理)
boolOrderClose()決済注文を送信(実践:EA講座⑤ CloseOrder関数 / MQL5での決済処理)
boolOrderCloseBy()両建てポジションを決済
boolOrderModify()選択中の注文変更(実践:トレーリングストップ関数 / EA講座⑥ / MQL5のSL・TP設定)
boolOrderDelete()保留中の注文削除
voidOrderPrint()選択中の注文情報をログ出力
intOrderTicket()選択中の注文チケット番号を取得
datetimeOrderOpenTime()選択中の注文時間を取得
doubleOrderOpenPrice()選択中の注文価格を取得
intOrderType()選択中の注文タイプを取得
doubleOrderLots()選択中の注文ロットを取得
stringOrderSymbol()選択中の注文通貨ペア名を取得
doubleOrderStopLoss()選択中の注文ストップロス価格を取得
doubleOrderTakeProfit()選択中の注文リミット価格を取得
datetimeOrderCloseTime()選択中の注文決済時間を取得
doubleOrderClosePrice()選択中の注文決済価格を取得
doubleOrderCommission()選択中の注文手数料を取得
datetimeOrderExpiration()選択した保留中注文の有効期限を取得
doubleOrderSwap()選択中の注文スワップを取得
doubleOrderProfit()選択中の注文損益を取得
stringOrderComment()選択中の注文コメントを取得
intOrderMagicNumber()選択中の注文マジックナンバーを取得

グローバル変数の操作関数

型関数動作
boolGlobalVariableCheck()指定した名前のグローバル変数の存在有無チェック
datetimeGlobalVariableTime()グローバル変数にアクセスした最終時間
boolGlobalVariableDel()グローバル変数の削除
doubleGlobalVariableGet()グローバル変数の値を取得
boolGlobalVariableGet()グローバル変数の値を取得
stringGlobalVariableName()グローバル変数の名前を取得
datetimeGlobalVariableSet()グローバル変数に新しい値を設定
voidGlobalVariablesFlush()全てのグローバル変数の内容を強制的にディスクへ保存
boolGlobalVariableTemp()一時的なグローバル変数を作成
boolGlobalVariableSetOnCondition()条件付きでグローバル変数に新しい値を設定
intGlobalVariablesDeleteAll()指定した接頭辞の名前を持つグローバル変数を全て削除
intGlobalVariablesTotal()グローバル変数の総数を取得

ファイル関数

ファイル関数を使ったCSV出力の実践コードは、相場の価格変動をCSV出力するEA、インジケーター値をCSV化するスクリプト(ZigZag編)、取引履歴を指定期間でCSV出力するスクリプトで紹介しています。

型関数動作
longFileFindFirst()指定したフィルタでディレクトリ内のファイルを検索
boolFileFindNext()FileFindFirst()関数の検索を続けます
voidFileFindClose()検索ハンドルを閉じる
intFileOpen()指定した名前とフラグでファイルを開く(実践:取引履歴CSV出力スクリプト)
boolFileDelete()指定したファイルを削除
voidFileFlush()入力/出力ファイルバッファに残っている全データをディスクへ書き込む
longFileGetInteger()ファイルプロパティ(int)を取得
boolFileIsEnding()ファイルの終端判定
boolFileIsLineEnding()ファイルの行末判定
voidFileClose()ファイルを閉じる
boolFileIsExist()ファイルの存在有無チェック
boolFileCopy()ファイルのコピー
boolFileMove()ファイルの移動・名前変更
uintFileReadArray()BIN形式ファイルの配列読込み
※文字列は読み込まない
boolFileReadBool()CSV形式ファイルの現在位置から読込み区切りまでの文字列を読取り、
読取った文字列をbool型データに変換
datetimeFileReadDatetime()CSV形式ファイルから時間形式の文字列を読取り、
datetime型データに変換
doubleFileReadDouble()BIN形式ファイルを現在位置からdouble値を読取る
floatFileReadFloat()BIN形式ファイルを現在位置からfloat値を読取る
intFileReadInteger()BIN形式ファイルを現在位置からint,short,char値を読取る
longFileReadLong()BIN形式ファイルを現在位置からlong値を読取る
doubleFileReadNumber()CSV形式ファイルを現在位置のファイルポインタから数値を読取る
stringFileReadString()現在位置のから文字列(string)を読取る
uintFileReadStruct()BIN形式ファイルを現在位置から構造体データを読取る
boolFileSeek()指定した位置にファイルポインタを移動
ulongFileSize()ファイルサイズを取得
ulongFileTell()ファイルポインタの現在位置を取得
uintFileWrite()CSVまたはBINファイルにデータを書き込む(実践:価格変動CSV出力EA / インジケーター値CSV化)
uintFileWriteArray()BIN形式ファイルに配列データ内容を書き込む
※文字列を除く
uintFileWriteDouble()BIN形式ファイルにdouble型データを書き込む
uintFileWriteFloat()BIN形式ファイルにfloat型データを書き込む
uintFileWriteInteger()BIN形式ファイルにint型データを書き込む
uintFileWriteLong()BIN形式ファイルにlong型データを書き込む
uintFileWriteString()CSVまたはBIN形式ファイルに文字列(string)データを書き込む
uintFileWriteStruct()BIN形式ファイルに構造体データの値を書き込む
boolFolderCreate()“Files”ディレクトリ内に新しいフォルダを作成
boolFolderDelete()指定したディレクトリを削除
boolFolderClean()指定したフォルダ内のファイルを全て削除
intFileOpenHistory()“history”ディレクトリのファイルを開く

カスタムインジケータで使用関数

カスタムインジケーターの作成例は、ZigZagの頂点と底辺に矢印表示インジケーター(無料インジ)でコード付きで解説しています。

型関数動作
voidHideTestIndicators()EAで呼び出されるインジケーター非表示フラグ設定
boolIndicatorSetDouble()インジケータープロパティ値(double)を設定
boolIndicatorSetInteger()インジケータープロパティ値(int)を設定
boolIndicatorSetString()インジケータープロパティ値(string)を設定
boolSetIndexBuffer()指定したインジケーターバッファに配列データに結び付ける(関連:indicator_buffers)
boolIndicatorBuffers()使用するカスタムインジケーターバッファのメモリ割り当て
intIndicatorCounted()インジケーター起動後に変化していないバー数を取得
voidIndicatorDigits()チャート上のインジケーター値の精度フォーマットを設定
voidIndicatorShortName()インジケーターの短縮名を設定
voidSetIndexArrow()インジケーターライン(DRAW_ARROW)のシンボル設定(実践:ZigZagの頂点と底辺に矢印表示インジケーター)
voidSetIndexDrowBegin()インジケーターラインの描画開始設定
voidSetIndexEmptyValue()インジケーター描画データのクリア
voidSetIndexLabel()インジケーターラベル設定
voidSetIndexShift()インジケーターをオフセット描画
voidSetIndexStyle()インジケーターの描画スタイル(タイプ・色・幅等)を設定
voidSetLevelStyle()サブウインドウの水平レベル描画スタイルを設定
voidSetLevelValue()サブウインドウに描画する水平レベルの値を設定

オブジェクトを操作する関数

関数動作
ObjectCreate()オブジェクトを生成(関連:MQL5でのチャート上ボタン配置とUI設計)
ObjectName()オブジェクト名を取得
ObjectDelete()オブジェクトを削除
ObjectsDeleteAll()オブジェクトを全て削除
ObjectFind()オブジェクトを検索
ObjectGetTimeByValue()オブジェクト時間の価格を取得
ObjectGetValueByTime()オブジェクト価格の時間を取得
ObjectMove()オブジェクトの基準点を変更
ObjectsTotal()オブジェクト数を取得
ObjectGetDouble()オブジェクトプロパティ(double)を取得
ObjectGetInteger()オブジェクトプロパティ(int)を取得
ObjectGetString()オブジェクトプロパティ(string)を取得
ObjectSetDouble()オブジェクトプロパティ(double)を設定
ObjectSetInteger()オブジェクトプロパティ(int)を設定
ObjectSetString()オブジェクトプロパティ(string)を設定
TextSetFont()描画メソッドで使用するフォントを設定
TextOut()グラフィカルリソースの作成の為に
デザインされたカスタム配列にテキスト転送
TextGetSize()現在のフォント設定の高さと幅を取得
ObjectDescription()オブジェクトの説明を取得
ObjectGet()指定したオブジェクトのプロパティ値を取得
ObjectGetFiboDescription()フィボナッチオブジェクトのレベル説明を取得
ObjectGetShiftByValue()オブジェクトの座標から指定した価格に
対応するバーインデックスを算出
ObjectGetValueByShift()オブジェクトの座標から指定したバーインデックスに
対応する価格を算出
ObjectSet()指定したオブジェクトのプロパティ値を変更
ObjectSetFiboDescription()フィボナッチオブジェクトレベルの説明を設定
ObjectSetText()オブジェクト説明を変更
ObjectType()オブジェクトタイプを取得

テクニカルインジケーター関数

MQL4では各インジケーター関数を呼び出すとその場で値が返りますが、MQL5(MT5)ではインジケーターのハンドルを取得してからCopyBuffer関数で配列にコピーする仕組みに変わっています。MQL5での書き方はiMAやiRSIを使ったテクニカル指標の計算とデータコピーを参照してください。

型関数インジケーター名
doubleiAC()AC(アクセラレータ)オシレーター
doubleiAD()AD(累積/分散)インジケーター
doubleiADX()ワイルダーADX(Average Directional Index)
doubleiAlligator()アリゲーター
doubleiAO()AO(Awesome Oscillator)オシレーター
doubleiATR()ATR(Average True Range)
doubleiBearsPower()ベアパワー
doubleiBands()ボリンジャーバンド(実践:順張り判定 / 逆張り判定 / 中央線クロス / 無料EA)
doubleiBandsOnArray()ボリンジャーバンド(配列格納)
doubleiBullsPower()ブルパワー
doubleiCCI()CCI(Commodity Channel Index)
doubleiCCIOnArray()CCI(配列格納)
doubleiCustom()カスタムインジケーター(解説:iCustom関数とは / 実践:ZigZag矢印インジケーター)
doubleiDeMarker()デマーカー
doubleiEnvelopes()エンベロープ
doubleiEnvelopesOnArray()エンベロープ(配列格納)
doubleiForce()勢力指数(Force Index)
doubleiFractals()フラクタル
doubleiGator()ゲームオシレーター
doubleiIchimoku()一目均衡表
doubleiBWMFI()ウィリアアムズ市場簡素化指数
(Market Facilitation Index by Bill Williams)
doubleiMomentum()モメンタム
doubleiMomentumOnArray()モメンタム(配列格納)
doubleiMFI()マネーフローインデックス
doubleiMA()移動平均(実践:2本MAクロス判定 / クロスクローズ / パーフェクトオーダー / 無料EA)
doubleiMAOnArray()移動平均(配列格納)
doubleiOsMA()MACDヒストグラム
doubleiMACD()MACD
doubleiOBV()オンバランスボリューム
doubleiSAR()パラボリックSAR
doubleiRSI()RSI(相対力指数)(実践:RSI制御付き価格変動CSV出力EA / MQL5での取得方法)
doubleiRSIOnArray()RSI(配列格納)
doubleiRVI()RVI(Relative Vigor Index)
doubleiStdDev()標準偏差
doubleiStdDevOnArray()標準偏差(配列格納)
doubleiStochastic()ストキャスティクス
doubleiWPR()ウィリアムズ%R(実践:Williams %RとSMAを組み合わせたEA検証)

イベント操作関数

型関数動作
boolEventSetMillisecondTimer()1msec単位で作業する高分解能タイマーの
イベントジェネレーターを起動
boolEventSetTimer()指定した周期デタイマーイベントジェネレーターを開始
voidEventKillTimer()タイマーイベントの発生を停止
boolEventChartCustom()カスタムイベントを生成

コメント

タイトルとURLをコピーしました