[MQL]お気に入りのチャートプロパティに変更するインジケーター

MQLのプログラムが分かる人向け。ロウソク足の色などMT4のチャートのプロパティを自分のお気に入りの設定にサクッと整えるインジケーターです。

プログラムコードをお好みにカスタマイズして使ってください。

ちょっと見るだけ、、、だったのに。

新規にチャートを開いてちょっと相場を見るだけのつもりだったのに、いつの間にかガッツリとラインを引いたりすることありませんか?

ラインを引いたチャート

↑ちょっとのつもりがいつの間にやら熱が入ってラインを引いたところ。

こういう時「このチャート消すのもったいないな~。」って思ったりします。でもって「これを残すにしても、いつものプロパティに直すのめんどくさいな~」と。

補足:チャートのプロパティ

チャートのプロパティは、チャート上で右クリック→「プロパティ」で表示される設定のことです(下図)。

チャートプロパティ(色の設定)

チャートプロパティ(全般の設定)

ローソク足の色をはじめ、チャートに関するもろもろの設定があります。設定内容は簡単ですが、色を一つ一つ選択したりと結構めんどくさいのです。

そんな時にチャートのプロパティをサクッとお気に入り設定に整えるインジケーターです。

お気に入りのチャートプロパティに変更

↑チャートにこのインジを適用すると、ロウソク足などのプロパティがいつものお気に入りの設定に変更されます。ラインなどのオブジェクトは何も変わりません。

コードの内容

コードの内容は以下の通りです。チャートにひたすらプロパティの値を適用しているだけで、やっていることは単純です。

OnInit()関数で宣言している各変数の値がチャートのプロパティです。お好みの値に書き換えて使って下さい。


//+------------------------------------------------------------------+
//|                                             Mi_ChartProperty.mq4 |
//|                                                     minagachi FX |
//|                                            https://minagachi.com |
//+------------------------------------------------------------------+
#property copyright   "minagachi FX"
#property link        "https://minagachi.com"
#property description "https://minagachi.com"
#property version     "4.00"
#property strict
#property indicator_chart_window

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit(){

   //---色の設定---
   color           chart_color_background  = clrBlack;         // 背景色
   color           chart_color_foreground  = clrWhite;         // 前景色
   color           chart_color_grid        = clrDarkSlateGray; // グリッド
   color           chart_color_chart_up    = clrRed;           // 上昇バー
   color           chart_color_chart_down  = clrAqua;          // 下降バー
   color           chart_color_candle_bull = clrRed;           // 上昇ロウソク足
   color           chart_color_candle_bear = clrAqua;          // 下降ロウソク足
   color           chart_color_chart_line  = clrLime;          // ラインチャート
   color           chart_color_volume      = clrLimeGreen;     // 出来高
   color           chart_color_ask         = clrRed;           // Askのライン
   color           chart_color_stop_level  = clrRed;           // ストプ・レベル
   
   //---全般---
   bool            chart_is_offline        = false;            // オフライン・チャート(機能しない 原因不明)
   bool            chart_foreground        = false;            // チャートを前面に表示
   bool            chart_shift             = true;             // チャートの右端移動
   bool            chart_autoscroll        = true;             // チャートの自動スクロール
   bool            chart_scalefix_11       = false;            // スケールを1対1に固定
   bool            chart_scalefix          = false;            // スケールの固定
   double          chart_fixed_max         = 0;                // 上限設定
   double          chart_fixed_min         = 0;                // 下限設定
   ENUM_CHART_MODE chart_mode              = CHART_CANDLES;    // チャートの種類
   int             chart_scale             = 2;                // チャートのスケール
   bool            chart_show_ohlc         = true;             // 四本値表示
   bool            chart_show_ask_line     = false;            // Askのラインを表示
   bool            chart_show_period_sep   = false;            // 期間区切り表示
   bool            chart_show_grid         = false;            // グリッドの表示
   bool            chart_show_volumes      = false;            // 出来高の表示
   bool            chart_show_object_descr = false;            // ライン等の説明を表示


   //---設定を適用---
   ChartSetInteger(0, CHART_COLOR_BACKGROUND, 0, chart_color_background);
   ChartSetInteger(0, CHART_COLOR_FOREGROUND, 0, chart_color_foreground);
   ChartSetInteger(0, CHART_COLOR_GRID, 0, chart_color_grid);
   ChartSetInteger(0, CHART_COLOR_CHART_UP, 0, chart_color_chart_up);
   ChartSetInteger(0, CHART_COLOR_CHART_DOWN, 0, chart_color_chart_down);
   ChartSetInteger(0, CHART_COLOR_CANDLE_BULL, 0, chart_color_candle_bull);
   ChartSetInteger(0, CHART_COLOR_CANDLE_BEAR, 0, chart_color_candle_bear);
   ChartSetInteger(0, CHART_COLOR_CHART_LINE, 0, chart_color_chart_line);
   ChartSetInteger(0, CHART_COLOR_VOLUME, 0, chart_color_volume);
   ChartSetInteger(0, CHART_COLOR_ASK, 0, chart_color_ask);
   ChartSetInteger(0, CHART_COLOR_STOP_LEVEL, 0, chart_color_stop_level);
   ChartSetInteger(0, CHART_IS_OFFLINE, 0, chart_is_offline);
   ChartSetInteger(0, CHART_FOREGROUND, 0, chart_foreground);
   ChartSetInteger(0, CHART_SHIFT, 0, chart_shift);
   ChartSetInteger(0, CHART_AUTOSCROLL, 0, chart_autoscroll);
   ChartSetInteger(0, CHART_SCALEFIX_11, 0, chart_scalefix_11);
   ChartSetInteger(0, CHART_SCALEFIX, 0, chart_scalefix);
   ChartSetInteger(0, CHART_MODE, 0, chart_mode);
   ChartSetInteger(0, CHART_SCALE, 0, chart_scale);
   ChartSetDouble(0, CHART_FIXED_MAX, chart_fixed_max);
   ChartSetDouble(0, CHART_FIXED_MIN, chart_fixed_min);
   ChartSetInteger(0, CHART_SHOW_OHLC, 0, chart_show_ohlc);
   ChartSetInteger(0, CHART_SHOW_ASK_LINE, 0, chart_show_ask_line);
   ChartSetInteger(0, CHART_SHOW_PERIOD_SEP, 0, chart_show_period_sep);
   ChartSetInteger(0, CHART_SHOW_GRID, 0, chart_show_grid);
   ChartSetInteger(0, CHART_SHOW_VOLUMES, 0, chart_show_volumes);
   ChartSetInteger(0, CHART_SHOW_OBJECT_DESCR, 0, chart_show_object_descr);
   ChartRedraw(0);
   ChartIndicatorDelete(0, 0, WindowExpertName());
   return(INIT_SUCCEEDED);
}

//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
{
   return(rates_total);
}

まとめ

需要があるのかいまいち怪しいですが、私自身はちょいちょい使っているインジです。

よかったらカスタマイズしてお使いください。

コメント

この記事へのコメント(6 件)

  • ystkさんより

    私はいつもDefault.tplを使っていますよ。

  • 管理人ですさんより

    ystkさんへ
    コメントありがとうございます。
    なるほど!そもそもdefault.tplをお好み設定にしておけば良いってことですね。全く思いつきませんでした。それ使わせていただきます。

  • とりもとりあえすさんより

    人生最高のアプリのひとつです。バズってる空気を感じないのが不思議。

  • 管理人ですさんより

    とりもとりあえすさんへ
    コメントありがとうございます。
    需要があるのか怪しいと思っていましたので、使ってくれている人がいると知っただけでちょっと嬉しいですよ。

  • BONさんより

    こんばんは。
    まさに探していたインジケーターです!
    これってすべてのチャートに一括適用できますか?
    てかそれ以前にどうやって使うのですか?
    無知ですみません。

  • 管理人ですさんより

    BONさんへ
    コメントありがとうございます。
    全チャートに一括で適用するのは処理がすこし複雑になるのでこのインジではできません。チャート1つずつ適用するタイプです。
    このページのプログラムコードをコピペするなどしてインジケーターを自作してお使いください。