2015年10月30日金曜日

[MT4プログラム]オブジェクトを削除するのはスクリプトが便利

MT4のチャート描画機能を使ってトレンドラインなどを見ながら取引していると、いつの間にか画面上がトレンドラインだらけになることがあります。

チャートを開きなおせばよいのですが、インジケータなどをセットしていて、なおかつ少し重めだと、チャートを開きなおすのに時間がかかったりします。

こーいうときは、スクリプトを用意しておくと便利です。



スクリプトをダブルクリックすれば、一発できれいになりました。


ブログランキングにご協力よろしくお願いいたしますm(_ _ )m
にほんブログ村 為替ブログへ
にほんブログ村

プログラムはこちらです。


//------------------------------------------------------------------
// ラインオブジェクトを削除する
#property copyright "Copyright 2015,  Daisuke"
#property link      "http://mt4program.blogspot.jp/"
#property version   "1.00"
#property strict

//------------------------------------------------------------------
// スクリプト
void OnStart()
{
   long chartId = ChartID();
   int total = ObjectsTotal(chartId);
   //生成したオブジェクトを削除する。
   //0から削除するとインデックス位置がずれて
   //正しく削除できないため、後ろから削除するようにする。
   for( int i = total - 1; i >= 0 ; i--)
   {
      string objectName = ObjectName(chartId, i);
      if( objectName == "") continue;
    
      int objectType = ObjectType(objectName);
    
      // オブジェクト種別が、トレンドラインの場合削除する。
      if( objectType == OBJ_TREND )
      {
         ObjectDelete(chartId, objectName);
      }
   }
}


このプログラムはトレンドラインを削除するためのプログラムですが、
if( objectType == OBJ_TREND )の部分を修正するといろんな種類のオブジェクトが削除可能です。

種別ごとに作成しておくと便利かも知れませんね。
オブジェクトの種類はMQL5.comのページにありますので、こちらを参考にしてみてください。
https://www.mql5.com/ja/docs/constants/objectconstants/enum_object

一部MT4にはないと思われます。あぁそれにしてもMQL5.comのリファレンスを日本語化してくれてありがとうございます。メタクォーツ様!!