EAの開発手順

2024年9月1日

執筆者

佐川直弘(株式会社トリロジー取締役)

Keyword
EA開発

EAの基本構成

EA(エキスパートアドバイザー)は、MetaTraderで動作する自動売買プログラムです。EAは通常、以下の3つの主要な関数で構成されます。

OnInit関数
EAが初期化されるときに実行される関数
OnDeinit関数
EAが削除されるときに実行される関数
OnTick関数
新しいティックが発生するたびに実行される関数

初期設定(OnInit関数、OnDeinit関数)

EAの初期設定には、初期化処理や終了処理を行うための関数が含まれます。

OnInit関数

  • OnInit関数は、EAがチャートに適用されたときに一度だけ実行されます。ここでは、初期設定やグローバル変数の初期化を行います。
OnInit関数
int OnInit() {
    // 初期設定コード
    Print(“EA Initialized");
    return INIT_SUCCEEDED;
}

OnDeinit関数

  • OnDeinit関数は、EAがチャートから削除されるときに一度だけ実行されます。ここでは、リソースの解放や終了処理を行います。
OnDeinit関数
void OnDeinit(const int reason) {
    // 終了処理コード
    Print(“EA Deinitialized");
}

トレードロジックの実装(OnTick関数)

OnTick関数は、新しいティックが発生するたびに実行される主要な関数です。ここにトレードロジックを記述します。

OnTick関数
void OnTick() {
    // トレードロジック
    double ma = iMA(NULL, 0, 14, 0, MODE_SMA, PRICE_CLOSE, 0);
    double price = Close[0];
    if (price > ma) {
//        OrderSend(Symbol(), OP_BUY, 0.1, Ask, 3, 0, 0, “Buy Order", 0, 0, Blue);
    } else if (price < ma) {
//        OrderSend(Symbol(), OP_SELL, 0.1, Bid, 3, 0, 0, “Sell Order", 0, 0, Red);
    }
}

コンパイルとテスト

EAを作成したら、コードをコンパイルしてエラーチェックを行います。その後、ストラテジーテスターを使ってバックテストを行い、EAのパフォーマンスを確認します。

コンパイル

MetaEditorでコードを編集した後、ツールバーの「コンパイル」ボタンをクリックしてコードをコンパイルします。エラーがある場合は、エラーログに表示されるので修正します。

テスト

ストラテジーテスターの起動
MetaTraderのツールバーから「ストラテジーテスター」を選択します。
テスト設定
テストするEA、通貨ペア、期間、初期資金などを設定します。
バックテストの実行
「スタート」ボタンをクリックしてテストを開始し、結果を確認します。

注意事項

このサンプルコードは学習目的で提供されており、実際の取引やリアル口座での使用を推奨しません。

学習用
このコードはMQL4プログラミングの基礎を理解するための例として提供されています。
責任免除
このコードを使用して発生したいかなる損害についても、当サイトおよび筆者は一切責任を負いません
リアル口座での使用禁止
サンプルコードはテスト環境(デモ口座)でのみ使用し、リアル口座での使用は避けてください。

MQL4

Posted by 佐川直弘