皆さん、こんにちは!今回は、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