MQL4

MT4プログラミング

MQL4(MetaQuotes Language 4)は、MetaTrader 4プラットフォームで使用されるプログラミング言語で、主に自動売買システム(EA: Expert Advisors)、カスタムインジケーター、スクリプトの作成に使用されます。MQL4は、C言語に似た文法を持ち、金融市場での取引に特化した機能が多数用意されています。

MQL4の基本構造

MQL4プログラムの基本的な構造は以下の通りです:

  1. インクルードファイルと定義
    • 標準ライブラリや他のファイルをインクルードします。
    • 定数や変数の定義を行います。
  2. 初期化関数 (OnInit)
    • EAやインジケーターがチャートに追加されたときに一度だけ呼び出される関数です。
  3. クリーンアップ関数 (OnDeinit)
    • EAやインジケーターがチャートから削除されるときに呼び出される関数です。
  4. ティックデータ関数 (OnTick)
    • 新しいティック(価格更新)があるたびに呼び出される関数です。EAのメインロジックはここに記述します。
  5. カスタム関数
    • 必要に応じて、ユーザー定義の関数を追加します。

MQL4コードの例

以下は、簡単なEAの例です。このEAは、移動平均線がクロスしたときに売買注文を出す基本的なロジックを示しています。

mql4コードをコピーする//+------------------------------------------------------------------+
//|                                                SimpleEA.mq4      |
//|                        Copyright 2024, MetaQuotes Software Corp. |
//|                                       http://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#property strict

// 入力パラメータ
input double Lots = 0.1; // ロットサイズ
input int FastMAPeriod = 12; // 短期移動平均の期間
input int SlowMAPeriod = 26; // 長期移動平均の期間

// グローバル変数
double FastMA, SlowMA;

//+------------------------------------------------------------------+
//| 初期化関数                                                      |
//+------------------------------------------------------------------+
int OnInit()
  {
   // 初期化コード
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| クリーンアップ関数                                              |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   // クリーンアップコード
  }
//+------------------------------------------------------------------+
//| ティック関数                                                    |
//+------------------------------------------------------------------+
void OnTick()
  {
   // 移動平均の計算
   FastMA = iMA(NULL, 0, FastMAPeriod, 0, MODE_EMA, PRICE_CLOSE, 0);
   SlowMA = iMA(NULL, 0, SlowMAPeriod, 0, MODE_EMA, PRICE_CLOSE, 0);

   // 短期移動平均が長期移動平均を上抜けた場合、買い注文を出す
   if (FastMA > SlowMA && OrderSelect(0, SELECT_BY_POS, MODE_TRADES) == false)
     {
      OrderSend(Symbol(), OP_BUY, Lots, Ask, 3, 0, 0, "Buy Order", 0, 0, Blue);
     }

   // 短期移動平均が長期移動平均を下抜けた場合、売り注文を出す
   if (FastMA < SlowMA && OrderSelect(0, SELECT_BY_POS, MODE_TRADES) == false)
     {
      OrderSend(Symbol(), OP_SELL, Lots, Bid, 3, 0, 0, "Sell Order", 0, 0, Red);
     }
  }
//+------------------------------------------------------------------+

主要なMQL4関数と構文

基本的なデータ取得関数

  • iMA: 移動平均を計算します。
  • iRSI: RSI(相対力指数)を計算します。
  • iMACD: MACD(移動平均収束拡散法)を計算します。

注文管理関数

  • OrderSend: 新しい注文を送信します。
  • OrderClose: 既存の注文をクローズします。
  • OrderSelect: 注文を選択します。

その他の関数

  • Print: メッセージをログに出力します。
  • Alert: アラートメッセージを表示します。

開発とテスト

  1. MetaEditorを使用する: MetaTrader 4に付属するMetaEditorを使用してMQL4コードを記述します。
  2. コンパイル: コードをコンパイルしてエラーを確認します。
  3. ストラテジーテスターを使用する: 過去のデータを使用してEAのバックテストを行い、パフォーマンスを検証します。

まとめ

MQL4は、MetaTrader 4で自動売買やカスタムインジケーターを開発するための強力なツールです。プログラミング経験がある場合は比較的簡単に習得できますが、初めての場合は基本的なプログラミング概念とMQL4の特定の機能を学ぶ必要があります。オンラインのリソースやコミュニティを活用して、効率的に学習を進めると良いでしょう。

コメント

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