MQL4の関数は、MetaTrader 4で使用されるMQL4プログラミング言語の中核的な部分で、特定のタスクを実行するために設計されたコマンド群です。MQL4では、トレード関連、テクニカル分析、データ操作、入出力など、さまざまなカテゴリの関数が提供されています。
以下に、MQL4 の主な関数をカテゴリについて説明します。
1.トレード操作関連の関数
トレード注文を送信、管理、取得するための関数です。
OrderSend()
- 市場注文や指値注文を送信します。
int ticket = OrderSend(Symbol(), OP_BUY, 0.1, Ask, 3, 0, 0, "Buy Order", 0, 0, Green);
OrderClose()
- 開いているポジションを閉じます。
bool closed = OrderClose(OrderTicket(), OrderLots(), Bid, 3, Red);
OrderModify()
- 指値注文または逆指値注文を修正します。
OrderSelect()
- 特定のご注文を選択して情報を取得します。
OrdersTotal()
- 現在の注文数を取得します。
2. テクニカル指標関連の関数
MT4の標準的なテクニカル指標を使用するための関数です。
iMA()
- 移動平均を取得します。
double ma = iMA(Symbol(), 0, 14, 0, MODE_SMA, PRICE_CLOSE, 0);
iRSI()
- RSI(相対力指数)を計算します。
double rsi = iRSI(Symbol(), 0, 14, PRICE_CLOSE, 0);
iMACD()
- MACDの値を取得します。
iBands()
- ボリンジャーバンドの価値を取得します。
iCustom()
- カスタムインディケータの値を取得します。
3. 時系列データ関連の関数
チャート上の価格や時間データを取得します。
iOpen()
- 指定された時間枠の開始値を取得します。
double openPrice = iOpen(Symbol(), 0, 1);
iClose()
- 指定された時間枠の終値を取得します。
iHigh()
- 指定された時間枠の最高値を取得します。
iLow()
- 指定された時間枠の格安を取得します。
TimeCurrent()
- 現在のサーバー時間を取得します。
4. システム関連の関数
プログラムの設定や状態を管理するための関数です。
Sleep()
- 指定したミリ秒間、プログラムを停止します。
Sleep(1000); // 1秒間停止
Print()
- コンソールにメッセージを出力します。
Print("Hello, MQL4!");
Alert()
- アラートメッセージを表示します。
Alert("Trade signal generated!");
GetLastError()
- 最後に発生したエラーコードを取得します。
5. 入出力関連の関数
ファイル操作や外部データの処理を行います。
FileOpen()
- ファイルを開く、または新規作成します。
int handle = FileOpen("data.csv", FILE_CSV | FILE_WRITE);
FileWrite()
- ファイルにデータを書き込みます。
FileRead()
- ファイルからデータを読みます。
6. 数値計算関連の関数
数学的な計算やデータ変換を行うための関数です。
MathAbs()
- 絶対値を計算します。
double absValue = MathAbs(-5);
MathSqrt()
- 平方根を計算します。
MathPow()
- 指定した数の累乗を計算します。
NormalizeDouble()
- 指定された桁数に数値を丸めます。
double rounded = NormalizeDouble(1.23456, 2); // 結果: 1.23
7. イベント関連の関数
特定のタイミングや条件で動作を制御します。
OnInit()
- プログラムの初期化時に実行されます。
OnTick()
- 新しいティックデータが到着するたびに実行されます。
OnTimer()
- タイマーイベントで実行されます。
MQL4関数のカスタマイズ
MQL4では、標準関数以外に、独自の関数を定義して再利用可能なコードを作成することが可能です。
例: 独自の
double CalculateSpread() {
return (Ask - Bid) * 10000; // スプレッドをピップ単位で計算
}
MQL4の関数を習得すれば、自動売買プログラムやカスタムインディケータの作成が簡単になります。 具体的な質問やコードの例が必要な場合はお気軽にどうぞ!
コメント