MetaTrader 5で新しいバーを検知する軽量コード

Mike 2024.04.11 21:05 19 0 0
添付ファイル

皆さん、こんにちは!今回は、MetaTrader 5で新しいバーを検知するためのコードを紹介します。以前は時間を使ってバーを検知していましたが、今回はバーのカウントを使って、新しいバーを検知する方法を見ていきましょう。この方法は、時間を使うよりも軽量で高速です。

  • 整数型の変数を宣言して、バーのカウントを保存します。
  • 初期化時に、「BarsTotal_OnInt」にバーのカウントを割り当てます。
  • iBars();関数を使って、ライブチャートの「BarsTotal_OnTick」変数にバーのカウントを割り当てます。この変数はすべてのティックで更新されます。
  • コードの正確性を確認するために、コメントアラートを使用します。

int BarsTotal_OnInt; 
int BarsTotal_OnTick;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {  
   BarsTotal_OnInt = iBars(NULL,PERIOD_CURRENT); // 初期化時にバーの合計を割り当て
   return(INIT_SUCCEEDED);
  }
  
void OnTick() // OnTick関数
  {   
   BarsTotal_OnTick = iBars(NULL,PERIOD_CURRENT); // 最新の数を保存
   
   if(BarsTotal_OnTick > BarsTotal_OnInt) // 新しいバーが来た
   {
    BarsTotal_OnInt = BarsTotal_OnTick; // 履歴を更新
    Alert("新しいバーが来ました!");
    Comment("履歴のバー数 -: ", BarsTotal_OnInt, "\n", "ライブのバー数 -: ", BarsTotal_OnTick);

    // ここにあなたのコードを書く。--------------------------
    // 後で使うために「フラグ」や変数を更新できます。

   }
  }
    リスト
    コメント 0