MQL4 の構文は、C言語に似ており、プログラムの構造やトレード関連の処理を行うための要素が含まれています。以下に、MQL4 の基本的な構文とその説明を示します。
1. コメント
コードに説明を付けるための構文。
- 単一ラインコメントを
//
使います。// これはコメントです
- マルチラインコメントを
/* ... */
使います。/* このコメントは 複数行にわたります */
2. 変数の宣言
MQL4でサポートされる主要なデータ型:
int
:整数型double
:浮動小数点型string
:文字列型bool
:真偽値
int myInt = 10; // 整数型
double myDouble = 1.234; // 小数型
string myString = "Hello"; // 文字列型
bool isTrue = true; // 真偽値型
3. 条件分岐(if文)
条件によって処理を分割させる構文。
if (myInt > 5) {
Print("myIntは5より大きい");
} else {
Print("myIntは5以下");
}
4. 繰り返し処理(forループ)
一定回数繰り返します。
for (int i = 0; i < 10; i++) {
Print("iの値: ", i);
}
5. 配列
複数の値を折りたためるデータ構造。
double myArray[5]; // 配列の宣言
myArray[0] = 1.1; // 配列の要素に値を代入
double value = myArray[0]; // 配列の要素を取得
6. 関数の定義
再利用可能なコードを定義する構文。
double AddNumbers(double a, double b) {
return a + b;
}
void OnTick() {
double result = AddNumbers(2.5, 3.5);
Print("結果: ", result);
}
7. いいえ
注文や位置操作のための関数。
新規注文
OrderSend(Symbol(), OP_BUY, 0.1, Ask, 3, 0, 0, "Buy Order", 0, 0, clrGreen);
ポジション確認
if (OrdersTotal() > 0) {
Print("ポジションがあります");
}
8. 標準イベント関数
MQL4 プログラムには、特定のタイミングで呼び出されるイベント関数があります。
OnInit()
プログラムの初期化時に実行。
int OnInit() {
Print("プログラムが初期化されました");
return(INIT_SUCCEEDED);
}
OnDeinit()
プログラム終了時に実行。
void OnDeinit(const int reason) {
Print("プログラムが終了しました");
}
OnTick()
ティック更新時に実行。
void OnTick() {
double currentPrice = iClose(Symbol(), 0, 0); // 現在の終値を取得
Print("現在の価格: ", currentPrice);
}
OnCalculate()
カスタムインディケータでデータを計算する際に使用します。
int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[],
const double &open[], const double &high[], const double &low[], const double &close[],
const long &tick_volume[], const long &volume[], const int &spread[]) {
return(rates_total);
}
9. ログ出力(Print関数)
デバッグや情報表示のために使用します。
Print("Hello, MQL4");
Print("変数の値: ", myInt);
10.エラー処理
注文操作やプログラム実行時のエラーを確認。
int ticket = OrderSend(Symbol(), OP_BUY, 0.1, Ask, 3, 0, 0, "Buy Order", 0, 0, clrGreen);
if (ticket < 0) {
Print("エラーコード: ", GetLastError());
}
11.マクロとプリプロセッサ
コードの簡略化や条件付きコンパイルに使用します。
マクロの定義
#define LOT_SIZE 0.1
条件付きコンパイル
#ifdef DEBUG
Print("デバッグモードです");
#endif
まとめ
MQL4は、金融市場での自動売買や分析に特化したプログラミング言語です。 基本構文を理解し、トレード関連の関数やイベント関数を正しく活用することで、高度なEAやカスタムインディケータの作成が可能。
コメント