MQL4基本構文

MT4プログラミング

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やカスタムインディケータの作成が可能。

コメント

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