MetaTrader 5でのEA_OBJPROP_CHART_IDの活用法

Mike 2011.06.14 21:41 25 0 0
添付ファイル

チャート上にチャートオブジェクト(OBJ_CHART)を配置し、従来のチャートとして利用したいと思いませんか?実は、それが可能なんです。

必要なのは、OBJ_CHARTオブジェクトのハンドルだけです。チャート操作を利用することで、インジケーターを追加したり(ChartIndicatorAdd()ChartIndicatorDelete())、チャートの期間やシンボルを設定することができます。

EA_OBJPROP_CHART_ID

EA_OBJPROP_CHART_IDエキスパートアドバイザーは、以下のアクションを実行します:

  • クライアントターミナルの標準パッケージに含まれるPriceChannelインジケーターを追加します(terminal_data_folder\MQL5\Indicators\Examplesに位置しています);
  • サブウィンドウを作成します(Subwindow.mq5をterminal_data_folder\MQL5\Indicatorsにコピー);
  • チャートシンボルを持つOBJ_CHART型のオブジェクトをサブウィンドウに作成しますが、D1およびH4の時間足を使用します;
  • OBJ_CHART型の各オブジェクトに対して、デフォルトパラメーターのPrice_Channelインジケーターを追加し、背景色を変更します。

チャートから削除すると、作成したすべてのインジケーターが削除されます:

//+------------------------------------------------------------------+//| Expert deinitialization function                                 |//+------------------------------------------------------------------+voidOnDeinit(constint reason)
  {
//--- オブジェクトを削除//  ObjectDelete(0,D1);//  ObjectDelete(0,H4);//--- サブウィンドウを削除
   ChartIndicatorDelete(0,subwindow_ID,"Subwindow");
//--- メインウィンドウからPriceChannelインジケーターを削除//--- デフォルトパラメーターの短い名前は"Price Channel(22)"です
   ChartIndicatorDelete(0,0,"Price Channel(22)");
  } 
リスト
コメント 0