新しいバーイベントハンドラーを使ったインジケーターの活用法

Mike 2011.01.21 00:22 35 0 0
添付ファイル

今回は、MetaTrader 5でのインジケーターにおける「新しいバー」イベントハンドラーの考え方についてお話しします。このアプローチの詳細は、「新しいバー」イベントハンドラーの記事で詳しく説明されています。ここでは、インジケーターのための解決策を紹介します。基本的なアイデアは同じで、新しいバーが出現したときだけ再計算を行うことができる便利な方法です。この方法は、OnCalculate()関数の直接的な使用に代わる便利な選択肢です。

以下に、新しいバーが出現したときにラインを表示するシンプルなインジケーターの例を示します:

//+------------------------------------------------------------------+//|                                            OnNewBarCalculate.mq5 |//|                                            Copyright 2010, Lizar |//|                                                    Lizar@mail.ru |//+------------------------------------------------------------------+#property copyright "Copyright 2010, Lizar"#property link      "Lizar@mail.ru"#property version   "1.00"#property indicator_chart_window#include <OnNewBarCalculate.mqh> // OnNewBarCalculate()関数を呼び出す秘密//+------------------------------------------------------------------+//| インジケーター用の新しいバーイベントハンドラー                       |//+------------------------------------------------------------------+int OnNewBarCalculate(constint rates_total,
                constint prev_calculated,
                constdatetime& time[],
                constdouble& open[],
                constdouble& high[],
                constdouble& low[],
                constdouble& close[],
                constlong& tick_volume[],
                constlong& volume[],
                constint& spread[]) 
  {
//--- ここにOnCalculate()に似たコードを書けます。//--- ただし、この関数は新しいバーが出現したときのみ呼ばれます(毎ティックではありません)

   PrintFormat("新しいバー: %s",TimeToString(TimeCurrent(),TIME_SECONDS));
//--- 次回の呼び出しのためのprev_calculatedの返り値
   return(rates_total);
  }
リスト
コメント 0