■モメンタムMAからのかい離率
さて、「[MT4インジケータ]遅れている分は足せばいい。単純移動平均に遅れ分の差分を足しこむ。」
で、単純移動平均の差分を足しこみ、遅れ分を消してみた移動平均(モメンタムMA)を描画してみました。
これでトレンド時には、価格の中心値にラインが来ていると仮定してしまいます。
ということは、かい離率を取るとトレンド外の動きが取れるのでは?ということでかい離率を出してみました。
EURUSDにおいては0.5%が一つの突っ込みラインになっているように思われます。短期トレードとして1時間足の突っ込みにて逆張りチャレンジというEAも面白いかもしれませんね。まぁEU離脱のようなイベントがあると死にそうですが(^^;;;
//------------------------------------------------------------------
// モメンタムMA 乖離率
#property copyright "Copyright 2016, Daisuke"
#property link "http://mt4program.blogspot.jp/"
#property version "1.00"
#property strict
#property indicator_separate_window
#property indicator_maximum 2
#property indicator_minimum -2
#property indicator_level1 0.5
#property indicator_level2 -0.5
#property indicator_level3 1
#property indicator_level4 -1
//バッファーを指定する。
#property indicator_buffers 1
//プロット数を指定する。
#property indicator_plots 1
#property indicator_label1 "MoMa"
#property indicator_type1 DRAW_LINE
#property indicator_color1 clrAqua
#property indicator_style1 STYLE_SOLID
#property indicator_width1 1
input int MaPeriod = 21; // 期間
double ma1[];
double s1p[];
double s1m[];
//------------------------------------------------------------------
//初期化
int OnInit()
{
//インジケーターバッファを初期化する。
int count = 0 ;
SetIndexBuffer(count++, ma1);
SetIndexBuffer(count++, s1p);
SetIndexBuffer(count++, s1m);
string short_name = "MOMA";
IndicatorShortName(short_name);
return INIT_SUCCEEDED;
}
//------------------------------------------------------------------
//計算イベント
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[]) //スプレット
{
for( int i = 0; i < rates_total - prev_calculated && !IsStopped(); i++ )
{
double manow = iMA(Symbol(), PERIOD_CURRENT, MaPeriod, 0, MODE_SMA, PRICE_CLOSE, i);
double mabefore = iMA(Symbol(), PERIOD_CURRENT, MaPeriod, 0, MODE_SMA, PRICE_CLOSE, i + (MaPeriod - 1) / 2);
double ma = manow + (manow - mabefore);
if( ma != 0 ) ma1[i] = (close[i] - ma) * 100 / ma;
}
return(rates_total - 1);
}
「MT4でFXを勝ち抜く研究をするブログ」で公開している無料インジケータは、こちらの一覧から。
インジケータ一覧
Twitterもよろしくお願いします。
https://twitter.com/mt4program
ブログランキングにご協力よろしくお願いします。m(._.)m
にほんブログ村 |
お約束ですが、本ブログは、投資に対する利益を約束する物ではありません。最終的には自己責任によるご判断よろしくお願いいたします。