Close+-ATRのラインを引いて抵抗線、支持線と考えるやつです。
それぞれのラインは、ラインがクロスするまでリセットされず一方方向に動きます。
ATRをつかったパラボリックみたいな感じですね。ちなみに下のラインを上のラインがうわまったら買いシグナル、逆で売りシグナルだそうです。
ちょっとだけ改造しました。
http://mt4program.blogspot.com/2018/07/mt4tradersatr-rate2.html
//------------------------------------------------------------------
// Traders ATR
#property copyright "Copyright 2018,Daisuke "
#property link "http://mt4program.blogspot.com/"
#property version "1.00"
#property strict
#property indicator_chart_window
//buffers
#property indicator_buffers 2
#property indicator_plots 2
#property indicator_label1 "SHORT"
#property indicator_type1 DRAW_LINE
#property indicator_color1 clrIndianRed
#property indicator_style1 STYLE_SOLID
#property indicator_width1 1
#property indicator_label2 "LONG"
#property indicator_type2 DRAW_LINE
#property indicator_color2 clrAqua
#property indicator_style2 STYLE_SOLID
#property indicator_width2 1
input int AtrPeriod = 20; // ATR Period
input double Rate = 2.0; // Rate
//buffer variables
double atrH[];
double atrL[];
//------------------------------------------------------------------
//initialize
int OnInit()
{
// short name setting
string shortName = "TATR (" + IntegerToString(AtrPeriod) + ")";
IndicatorShortName(shortName);
int count = 0;
SetIndexBuffer(count++, atrH);
SetIndexBuffer(count++, atrL);
return(INIT_SUCCEEDED);
}
//------------------------------------------------------------------
//calculate event
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 = rates_total - prev_calculated - 1 ; i >= 0; i-- )
{
double atr = iATR(NULL, PERIOD_CURRENT, AtrPeriod, i);
double h = close[i] + Rate * atr;
double l = close[i] - Rate * atr;
if( rates_total - 2 <= i )
{
atrH[i] = h;
atrL[i] = l;
}
else
{
if( atrH[i + 1] != EMPTY_VALUE &&
atrL[i + 1] != EMPTY_VALUE &&
atrH[i + 1] < atrL[i + 1] )
{
atrH[i] = close[i + 1] > atrH[i + 1] ? EMPTY_VALUE : MathMin(h, atrH[i + 1]);
atrL[i] = close[i + 1] < atrL[i + 1] ? EMPTY_VALUE : MathMax(l, atrL[i + 1]);
}
else
{
atrH[i] = atrH[i + 1] == EMPTY_VALUE ? h : MathMin(h, atrH[i + 1]);
atrL[i] = atrL[i + 1] == EMPTY_VALUE ? l : MathMax(l, atrL[i + 1]);
}
}
}
return(rates_total - 1);
}
「MT4でFXを勝ち抜く研究をするブログ」で公開している無料インジケータは、こちらの一覧から。
インジケータ一覧
Twitterもよろしくお願いします。
https://twitter.com/mt4program
Trading View プロフィール
ブログランキングにご協力よろしくお願いします。m(._.)m
にほんブログ村 |
お約束ですが、本ブログは、投資に対する利益を約束する物ではありません。最終的には自己責任によるご判断よろしくお願いいたします。