보조지표 게시글

다이버전스 템플릿 지표: 메타트레이더 4에서 활용하기

첨부파일
48583.zip (2.22 KB, 다운로드 0회)

DivEurusd

템플릿 작동 방식

이 지표는 원하는 오실레이터를 기반으로 다이버전스를 플로팅하기 위한 템플릿을 제공합니다.

어떤 오실레이터를 선택하느냐에 따라(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);
   }

    연관 포스트

    댓글 (0)