2012年6月11日月曜日

FXのチャート分析ソフトMT4で乖離率を表示するには

乖離率とは、テクニカル指標などで計算された数値と、現在の為替レートとの差をパーセンテージで表したものです。一般的に乖離率というと、移動平均線と現在の為替レートとの差のことをいいます。

乖離率は、移動平均線と現在の為替レートとの乖離はいずれ修正されて戻るという考えから、売買のエントリーポイントを見つける手段として用いられています。

下の図は、チャート画面に移動平均線を描画したものです。青色の丸で囲んだ部分の乖離率は、ローソク足の終値と、黄色の移動平均線との差になります。



乖離率は、次の計算式で求めることができます。

(現在の為替レート÷移動平均線の値)×100-100

乖離率の値によって売買のエントリーポイントを見つけることができます。しかし、売買のエントリーポイントは通貨ペアや時間足などによって異なるため、「この数値以下なら買いのエントリーポイント」というのはありません。

ここでは、FX(外国為替証拠金取引)のチャート分析ソフトMT4(Meta Trader 4)で乖離率を表示するインディケーターを作成します。

次のプログラムを「divergence.mq4」のファイル名で保存します。保存先は、MT4のインストールされているフォルダの「experts」フォルダ内の「indicators」を指定します。

「divergence.mq4」
//+------------------------------------------------------------------+
//| divergence.mq4 |
//| sample |
//| http://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#property copyright "sample"
#property link "http://www.metaquotes.net/"
#property indicator_separate_window
#property indicator_color1 Yellow
#property indicator_buffers 1
//
double Diver_score[];
extern int MA_Period=20;
//
int init()
{
SetIndexBuffer(0,Diver_score);
}

int start()
{
int i,j;
double M_A;
int counted_bars=IndicatorCounted();
int limit=Bars-1-counted_bars;
for(i=limit-1; i>=0; i--)
{
M_A=0;
for(j=0; j<=MA_Period-1; j++) {
M_A += Close[i+j];
}
M_A /= MA_Period;
//乖離率の計算
Diver_score[i]=(Close[i]/M_A)*100-100;
}
return(0);
}

次の図は、チャート画面に移動平均線を描画して、下の画面に乖離率を描画したものです。移動平均線の位置とローソク足の位置とが大きく離れていると、乖離率が大きく上下に推移することがわかります。