//| MACD_ColorHist_Alert.mq4 |
//| 저작권? 2006 년, 로버트 힐 |
//| |
//+-+
# 재산 저작권 "저작권? 2006 년 로버트 힐
//-표시기 설정
# 속성 표시기 _ 구분 _ 창
# 속성 표시기 _ 버퍼 4
# 속성 표시기 _color 1 연한 녹색
# 속성 표시기 _ 색상 2 빨간색
# 속성 표시기 _ 색상 3 녹색
# 속성 표시기 _ 색상 4 빨간색
//-표시기 매개변수
Extern bool SoundON = true
Extern bool EmailON = false
Extern int fastema =12;
Extern int SlowEMA = 26
Extern int signals ma = 9;;
//-표시기 버퍼
Doubleind _ buffer1[];
Doubleind _ buffer2 [];
Double histogram buffer up [];
Double histogram buffer down [];
Intflag val1= 0;
Intflag val2 = 0;
//-변수
//+-+
//| 사용자 지정 표시기 초기화 기능 |
//+-+
Int init ()
{
//-드로잉 설정
//indicator buffers (3) :
Indicatordigits (marketinfo (symbol (), mode _ digits)+1);
SetIndexStyle(0, DRAW_LINE, style _ solid);
SetIndexBuffer(0, ind _ buffer1);
SetIndexDrawBegin(0, 슬로우 EMA);
SetIndexStyle( 1, DRAW_LINE, style _ dot);
SetIndexBuffer( 1, ind _ buffer2);
SetIndexDrawBegin( 1, signalsma);
SetIndexStyle(2, DRAW_HISTOGRAM, style _ solid);
SetIndexBuffer(2, histogrambufferup);
SetIndexStyle(3, DRAW_HISTOGRAM, style _ solid);
SetIndexBuffer(3, histogrambufferdown);
// SetIndexDrawBegin(2, 슬로우 EMA+시그널 ma);
//-데이터 창 및 표시기 하위 창 레이블의 이름입니다
Indicator shortname ("MACD ("+fastema+","+SlowEMA+ ","+signals ma+");
SetIndexLabel(0, "MACD");
SetIndexLabel( 1, "신호");
SetIndexLabel(2, "히스토그램");
//-초기화가 완료되었습니다
리턴 (0);
}
//+-+
//| 이동 평균선 수렴/발산 |
//+-+
Int start () 를 사용합니다
{
Int 제한 사항
이중 온도
Intcounted _ bars = indicatorcounted ();
//-가능한 오류를 검사합니다
If(counted _ bars & lt;; 0) 반환 (-1);
//-마지막 카운트를 다시 계산하는 막대
If(counted _ bars & gt;; 0) counted _ bars-;
Limit = Bars-counted _ Bars;;
//-MACD 가 1-st 버퍼에 포함됩니다
For(int I = 0;; 나< 한계; I++)
Ind_buffer 1[i]=iMA(NULL, 0, FastEMA, 0, MODE_EMA, PRICE_CLOSE,)
//-두 번째 버퍼에서 카운트된 신호 케이블
For(I = 0;; 나< 한계; I++)
Ind _ buffer2 [I] = imao narray (ind _ buffer1,Bars, SignalSMA, 0, MODE_SMA)
//ind _ buffer2 [I] = 알파 * ind _ buffer1[I]+알파 _1* id
For(I = 0;; 나< 한계; I++)
{
Histogrambufferup [I] = 0;
Histogrambufferdown [I] = 0;
Temp = ind _ buffer1[I]-ind _ buffer2 [I];
If(temp & gt;; = 0)
Histogrambufferup [I] = temp;
기타
Histogrambufferdown [I] = temp;
If (i == 1)
{
If (histogrambufferup [I] > 0&& histogram buffer down [I+1] < 0)
//if (histogrambufferup [I] > HistogramBufferUp[i+1])
{
//교차하다
If (flagval 1==0)
{
Flagval1=1;
Flagval2 = 0;
If (SoundON) Alert("MACD 위로 ","\n Time= ",TimeToStr(CurTime (), TIME_DATE)," "
If (EmailON) SendMail("MACD 위로 보행시선 ","MACD 위로 보행시선, Date="+TimeToStr(CurTime (), time _ date)
}
}
Elseif (histogrambufferdown [I] < 0& & amphistogrambufferup [I+1] > 0)
//elseif (histogrambufferup [I] < HistogramBufferUp[i+1])
{
//아래로 교차
If (flagval2==0)
{
Flagval2 =1;
Flagval1= 0;
If (SoundON) Alert("MACD 아래로 통과 ","\n Date= ",TimeToStr(CurTime (), TIME_DATE)," "
If (EmailON) SendMail("MACD 아래로 교차 ","MACD 아래로 교차 ",Date="+TimeToStr(CurTime (), time _ date
}
}
}
}
//-완료
리턴 (0);
}
위의 코드를 문서에 복사합니다 (예: 이름 macd2.mq4, 접미사는 mq4 여야 함). 그런 다음 mt4 설치 디렉토리의 experts\indicators 에 넣고 mt4 를 다시 열면 사양 사용자 정의에서 macd2 를 볼 수 있습니다. 끝