지표: 지그재그(ZigZag)

 

지그재그(ZigZag):

지그재그 지표는 가격에서 주요한 상단과 하단을 연결하는 일련의 섹션입니다.

지그재그(ZigZag)

작성자: MetaQuotes

 

EA 코드에서 지그재그 막대의 상단과 하단의 종가 값을 얻으려면 어떻게 해야 하나요?

 

지그재그 인디케이터는 가격 추세, 지지 및 저항 영역, 헤드 앤 숄더, 이중 바닥 및 이중 상단과 같은 고전적인 차트 패턴을 파악하는 데 매우 유용합니다. 지그재그 인디케이터는 스윙 고점과 스윙 저점을 모두 계산에 사용합니다:

  • 스윙 고점: 가격(보통 종가)이 그 이전과 이후의 가격보다 모두 높은 경우.
  • 스윙 저점: 스윙 저점: 가격이 이전 가격보다 낮고 이후 가격보다 낮은 경우입니다.

지그재그 인디케이터는 구성에 백분율 또는 포인트를 모두 사용할 수 있습니다. 지그재그 인디케이터를 구성하려면 스윙 고점과 스윙 저점 사이에 일정 비율 또는 포인트 수가 있어야 선이 그려집니다. E-mini 나스닥 100 선물 계약의 아래 차트는 3% 가격 되돌림 지그재그와 5% 가격 되돌림 지그재그의 차이를 시각적으로 보여줍니다:


위 차트에서 되돌림 비율이 3%인 지그재그가 되돌림 비율이 5%인 지그재그보다 더 뚜렷한 선을 만드는 것을 볼 수 있습니다. 되돌림 비율이 큰 지그재그를 사용하는 목적은 트레이더의 분석에 중요하지 않은 가격 노이즈를 제거하기 위한 것입니다.

지그재그 인디케이터는 단기 가격 노이즈를 걸러내면서 주식 주기를 파악하는 데 매우 효과적입니다.

지그재그 인디케이터는 단기 노이즈를 걸러내고 중요한 추세와 시장 가격의 큰 변화를 식별하는 데 매우 효과적입니다.

아래는 지그재그 지표가 지지 및 저항 영역과 가격 돌파를 찾는 데 얼마나 효과적인지 보여주는 E-mini S&P 500 선물 계약 차트입니다:


위 e-미니 차트는 5% 지그재그 되돌림 값을 사용하므로 5% 이상의 가격 변동만 표시되어 장기 트레이더 또는 투자자가 중요한 지지, 저항 및 가격 돌파 영역을 결정하는 데 도움이 됩니다.

차트 왼쪽에서 S&P 500은 삼각형 통합 패턴을 형성하고 있었습니다. 가격이 저항선을 돌파하면 장기 매수가 발생했습니다. 차트 중간에서 지그재그 지표는 S&P 500이 가격 상승 채널에 있음을 보여주는 데 효과적이었습니다. 가격이 하단 지지 추세선에 닿은 구간에서 매수하고 상단 저항선에 닿았을 때 매도하면 수익성이 매우 높았을 것입니다.

지그재그 인디케이터를 단기 트레이딩에 사용하면 수익성을 높일 수 있습니다. 아래 인텔(INTC) 차트는 지그재그 인디케이터(1달러 되돌림)로 쉽게 볼 수 있는 전형적인 차트 헤드 앤 숄더 패턴을 보여줍니다:


쉽게 식별되는 헤드 앤 숄더 패턴은 오른쪽 어깨의 가격이 상승 경사 추세선을 돌파할 때 매도 신호를 보냈습니다.

지그재그 인디케이터는 고전적인 차트 패턴을 식별하는 데 탁월한 기술적 분석 도구입니다. 지그재그 인디케이터는 노이즈를 줄이고 기술적 트레이더가 진정한 시장 방향을 파악하는 데에도 효과적입니다.

 
ZZ 동작을 이해하는 데 도움이 됩니다.
 

아래 블록에 해당하는 이 코드에서 'res' 변수가 필요한가요? 다른 블록에서는 사용법을 알 수 있지만 이 블록에서는 필요하지 않습니다.

//--- 최종 거부
   for(shift=limit;shift<rates_total && !IsStopped();shift++)
     {
      res=0.0;
      switch(whatlookfor)
        {
         case 0: // 피크 또는 잔디밭 검색
            if(lastlow==0 && lasthigh==0)
              {
               if(HighMapBuffer[shift]!=0)
                 {
                  lasthigh=high[shift];
                  lasthighpos=shift;
                  whatlookfor=Sill;
                  ZigzagBuffer[shift]=lasthigh;
                  res=1;
                 }
               if(LowMapBuffer[shift]!=0)
                 {
                  lastlow=low[shift];
                  lastlowpos=shift;
                  whatlookfor=Pike;
                  ZigzagBuffer[shift]=lastlow;
                  res=1;
                 }
              }
            break;
         case Pike: // 피크 검색
            if(LowMapBuffer[shift]!=0.0 && LowMapBuffer[shift]<lastlow && HighMapBuffer[shift]==0.0)
              {
               ZigzagBuffer[lastlowpos]=0.0;
               lastlowpos=shift;
               lastlow=LowMapBuffer[shift];
               ZigzagBuffer[shift]=lastlow;
               res=1;
              }
            if(HighMapBuffer[shift]!=0.0 && LowMapBuffer[shift]==0.0)
              {
               lasthigh=HighMapBuffer[shift];
               lasthighpos=shift;
               ZigzagBuffer[shift]=lasthigh;
               whatlookfor=Sill;
               res=1;
              }
            break;
         case Sill: // 잔디밭 검색
            if(HighMapBuffer[shift]!=0.0 && HighMapBuffer[shift]>lasthigh && LowMapBuffer[shift]==0.0)
              {
               ZigzagBuffer[lasthighpos]=0.0;
               lasthighpos=shift;
               lasthigh=HighMapBuffer[shift];
               ZigzagBuffer[shift]=lasthigh;
              }
            if(LowMapBuffer[shift]!=0.0 && HighMapBuffer[shift]==0.0)
              {
               lastlow=LowMapBuffer[shift];
               lastlowpos=shift;
               ZigzagBuffer[shift]=lastlow;
               whatlookfor=Pike;
              }
            break;
         default: return(rates_total);
        }
     }


정말 필요한가요?

 
soi kawasaki:

아래 블록에 해당하는 이 코드에서 'res' 변수가 필요한가요? 다른 블록에서는 사용법을 알 수 있지만 이 블록에서는 그렇지 않습니다.


정말 필요한가요?

표시하고 있는 코드 앞에서 이 변수가 무엇을 하고 있는지 확인해 보세요. 또는 더 좋은 방법은 코드를 제거하고 지그재그 표시기에 어떤 일이 발생하는지 확인하는 것입니다.
 
Mladen Rakic:
표시하고 있는 코드 이전에 해당 코드가 무엇을 하고 있는지 확인하세요. 또는 더 나은 방법 : 제거한 후 지그재그 표시기가 어떻게 되는지 확인하세요.

답장을 보내 주셔서 감사합니다 : )

값과 사용 위치를 확인하기 위해 Print ()를 수행했지만이 블록에서 필요한 이유를 파악할 수 없었습니다.

또한 표시기를 제거했지만 표시기가 없어도 잘 작동합니다.

MT5와 함께 제공되는 기본 표시기이기 때문에 궁금했습니다.

이 코드 블록에서 사용법의 존재를 잘못 이해했는지 두 번째 의견을 찾고있었습니다.

 
안녕하세요, 커뮤니티 회원 여러분! 극한값 사이의 현재 세그먼트 형성이 완료되었다고 가정할 수 있는 근거(또는 확실하게 사실을 명시하는 것이 더 낫습니다)를 바탕으로 다음 질문에 대한 여러분의 생각을 공유해 주셨으면 합니다. 이 문제의 복잡성을 잘 알고 있으므로 어떤 아이디어라도 감사하겠습니다. 그리고 한 가지 더 질문이 있습니다. 매개 변수 깊이-최소 양초 수가 극한 (최대 또는 최소) 사이의 간격 인 경우 표시기가이 매개 변수 12 값에서 최대와 최소 사이에 선을 그리지 만 동시에 최대와 최소 사이에 양초 수가 12 미만인 경우 어떻게 표시기가 어떻게 발생할 수 있습니까?
 
Andrey Kornishkin #:

EA 코드에서 지그재그 막대의 상단과 하단의 종가 값을 얻으려면 어떻게 해야 하나요?

iCustom()을 사용하여 차트에서 오른쪽에서 왼쪽으로 막대를 이동하여 인디케이터 버퍼의 비어 있지 않은 값을 찾습니다. 원하는 바를 찾으면 캔들 스틱 가격을 얻을 수 있습니다.

 

Aleksandr Shirin 선을 그리지 만 동시에 최대와 최소 사이에 양초 수가 12 미만인 경우 어떻게 발생할 수 있습니까?

또한 가격이 통과 한 포인트 수 (ExtDeviation 매개 변수)에 따라 다릅니다.