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

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

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

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

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

ラインを引いたチャート

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

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

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

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

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

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

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

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

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

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

ダウンロード

ということでこのインジは下記からダウンロードできます。

インジケータ サイズ 概要
Mi_ChartProperty 8KB お気に入りのチャートプロパティを設定するインジケーター

mq4とex4が両方入っています。

このインジをチャートに適用すると、チャートのプロパティをプログラム内で指定した値に変更します。適用後にインジは自動で終了します。

バージョンアップ履歴

更新日 Ver. 概要
2019年11月21日 v02 コードの整理(機能変更なし)
2019年11月15日 v01 リリース

コードの内容

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

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     "2.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_chart_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_chart_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);

   //---インジを終了---
   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);
}

まとめ

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

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

コメント

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