MT4とMT5を使いこなしてFX(外国為替証拠金取引)のトレードに活かそう~EAで自動売買

MT4を使ってFX

MT4の裏技・小技

MACD のヒストグラムをライン表示に変更する

更新日:

MT4のMACDはヒストグラム表示

MT4は大変使いやすくテクニカル分析がサクサクはかどるソフトで気に入っているけどMACDの表示だけはラインにしてほしいと思っている人も多いようです。確かに国内ブローカーのプラットフォームのMACDはライン表示のものが多いしヒストグラムだとクロスのポイントも見難いという事情もわかります。自分もライン派なのでさっそくMACDのヒストグラム表示をライン表示に変更してみました。

通常の表示だとMT4のMACDはこんな感じです。トレンド系指標であるMACDですが、シグナルラインとのクロスを利用する人も多いため、これでは少し見ずらいですよね。

ヒストグラムの幅を少し広くすると多少は見やすくなるかもしれませんが、ライン表示の比ではありません。

MACDヒストグラム表示

MACDヒストグラム表示

 

MetaEditorを使ってMT4のMACDをライン表示に変更

残念なことにMACDのプロパティにはヒストグラムをラインに変更する項目が見当たりません。そこでカスタムインディケーターのプログラムの一部をちょっとだけ変更します。カスタムインディケーターのファイル名はMACD.mq4ですのでこのファイルを探してダブルクリックするとMetaEditorが立ち上がります。ファイルを探すのが面倒な人はMT4のナビゲーターウィンドウの経線分析ツールの中にあるMACDを右クリックして「修正」をクリックしてください。MetaEditorが起動してMACD.mq4が開かれます。

MetaEditorでMACD.mq4を開く

MetaEditorでMACD.mq4を開く

MetaEditorが立ち上がるとプログラムが表示されますので以下のとおり変更してみてください。。

36行目の
SetIndexStyle(0,DRAW_HISTOGRAM);

SetIndexStyle(0,DRAW_LINE);
に変更します。

SetIndexStyle(0,DRAW_HISTOGRAM);

SetIndexStyle(0,DRAW_HISTOGRAM);

//+------------------------------------------------------------------+
//| Custom MACD.mq4 |
//| Copyright 2005-2014, MetaQuotes Software Corp. |
//| http://www.mql4.com |
//+------------------------------------------------------------------+
#property copyright "2005-2014, MetaQuotes Software Corp."
#property link "http://www.mql4.com"
#property description "Moving Averages Convergence/Divergence"
#property strict

#include

//--- indicator settings
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Silver
#property indicator_color2 Red
#property indicator_width1 2
//--- indicator parameters
input int InpFastEMA=12; // Fast EMA Period
input int InpSlowEMA=26; // Slow EMA Period
input int InpSignalSMA=9; // Signal SMA Period
//--- indicator buffers
double ExtMacdBuffer[];
double ExtSignalBuffer[];
//--- right input parameters flag
bool ExtParameters=false;

//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int OnInit(void)
{
IndicatorDigits(Digits+1);
//--- drawing settings
SetIndexStyle(0,DRAW_LINE);
SetIndexStyle(1,DRAW_LINE);
SetIndexDrawBegin(1,InpSignalSMA);
//--- indicator buffers mapping
SetIndexBuffer(0,ExtMacdBuffer);
SetIndexBuffer(1,ExtSignalBuffer);
//--- name for DataWindow and indicator subwindow label
IndicatorShortName("MACD("+IntegerToString(InpFastEMA)+","+IntegerToString(InpSlowEMA)+","+IntegerToString(InpSignalSMA)+")");
SetIndexLabel(0,"MACD");
SetIndexLabel(1,"Signal");
//--- check for input parameters
if(InpFastEMA<=1 || InpSlowEMA<=1 || InpSignalSMA<=1 || InpFastEMA>=InpSlowEMA)
{
Print("Wrong input parameters");
ExtParameters=false;
return(INIT_FAILED);
}
else
ExtParameters=true;
//--- initialization done
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Moving Averages Convergence/Divergence |
//+------------------------------------------------------------------+
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[])
{
int i,limit;
//---
if(rates_total<=InpSignalSMA || !ExtParameters) return(0); //--- last counted bar will be recounted limit=rates_total-prev_calculated; if(prev_calculated>0)
limit++;
//--- macd counted in the 1-st buffer
for(i=0; i<limit; i++)
ExtMacdBuffer[i]=iMA(NULL,0,InpFastEMA,0,MODE_EMA,PRICE_CLOSE,i)-
iMA(NULL,0,InpSlowEMA,0,MODE_EMA,PRICE_CLOSE,i);
//--- signal line counted in the 2-nd buffer
SimpleMAOnBuffer(rates_total,prev_calculated,0,InpSignalSMA,ExtMacdBuffer,ExtSignalBuffer);
//--- done
return(rates_total);
}
//+------------------------------------------------------------------+

プログラムの変更が出来たらツールバーにある「Compile」をクリックします。

たったこれだけでヒストグラム表示からライン表示に変更出来ます。MT4にはほかにもヒストグラム表示するインディケーターがありますが同様の方法でライン表示に変更することが可能です。

  • この記事を書いた人

ユーロファイター

はじめまして、本サイトの管理人のユーロファイターです。裁量トレードで口座を吹き飛ばしたのをきっかけにシステムトレードの勉強をはじめました(笑) 当初はVTトレーダーでシグナルツールを使ってトレードをしていましたが、MT4の普及に伴いEAによる自動売買に移行しました。 よろしくお願いします(^_^)/

-MT4の裏技・小技
-,

Copyright© MT4を使ってFX , 2019 All Rights Reserved.