MetaTrader4
다이버전스 템플릿 지표: 메타트레이더 4에서 활용하기
템플릿 작동 방식 이 지표는 원하는 오실레이터를 기반으로 다이버전스를 플로팅하기 위한 템플릿을 제공합니다. 어떤 오실레이터를 선택하느냐에 따라(CCI, RSI 또는 본인 맞춤형 지표) 코드의 해당 부분을 수정할 수 있습니다: /////////////////////////////////////////////
//지표 데이터를 지표 버퍼에 로드합니다
//RSI를 원하는 지표로 쉽게 교체할 수 있습니다
int BARS=MathMax(rates_total-IndicatorCounted()-pivots_period,1);
for(int i=BARS;i>=0;i--)
{
indicatorBuffer[i]=iRSI(_Symbol, PERIOD_CURRENT, 14, PRICE_CLOSE, i);
}
//지표 로드 섹션 종료
/////////////////////////////////////////////
신호 버퍼 이 지표는 생성된 신호를 추적하기 위해 아래와 같이 네 개의 서로 다른 버퍼를 가지고 있습니다. 해당 버퍼가 비어있지 않은 값을 가질 때마다 신호가 발생합니다. SetIndexBuffer(3,bull_reg_divBuffer);
SetIndexBuffer(4,bear_reg_divBuffer);
SetIndexBuffer(5,bull_hid_divBuffer);
SetIndexBuffer(6,bear_hid_divBuffer);
입력 섹션 input int pivots_period=5; //지표 피벗을 찾기 위한 기간
input int alert_confirm_candles=1; //#신호 확인을 위한 캔들 수(0=알림 비활성화)
피벗 고점과 피벗 저점을 indicatorBuffer에서 찾는 것은 pivots_period 입력에 따라 달라집니다. 이 값을 크게 선택하면 더 큰 스윙을 검색하여 가능한 다이버전스를 찾습니다. 또한 alert_confirm_candles 입력은 신호 확인을 위해 얼마나 많은 바를 기다릴지를 정의합니다. 다이버전스 지표는 대부분 후행 지표이며 많은 잘못된 신호를 발생시킵니다. 이 값을 크게 선택하면 더 오랫동안 기다리게 되어 잘못된 신호의 수가 줄어듭니다. 즉, 즉각적인 신호를 원하느냐, 확인된 신호를 원하느냐의 타협입니다. 일반적으로 pivots_period는 < 2로 설정할 수 없습니다. 재도색 문제 피벗 계산에 의존하는 지표는 최근 고점/저점의 확인을 얻기 위해 pivots_period만큼 기다려야 합니다. 따라서 이 지표는 pivots_period 이전으로 신호를 재도색해야 합니다. BARS=MathMax(rates_total-IndicatorCounted()-pivots_period,pivots_period);
for(int i=BARS;i>=0;i--)
{
PHBuffer[i]=pivothigh(indicatorBuffer, pivots_period, pivots_period, i);
PLBuffer[i]=pivotlow(indicatorBuffer, pivots_period, pivots_period, i);
bull_reg_divBuffer[i]=BullRegDiv(i);
bear_reg_divBuffer[i]=BearRegDiv(i);
bull_hid_divBuffer[i]=BullHidDiv(i);
bear_hid_divBuffer[i]=BearHidDiv(i);
}
2024.03.10