English Русский 中文 Español Deutsch 日本語 Português Français Italiano Türkçe
preview
이동 평균으로 할 수 있는 것

이동 평균으로 할 수 있는 것

MetaTrader 5 | 26 8월 2022, 11:44
490 0
Oleh Fedorov
Oleh Fedorov

소개

저는 잘 작동하는 몇개의 거래 시스템을 가지고 있습니다. 보통 저는 모든 틱에 대해 계산된 지표를 사용하지 않습니다. 저는 직선을 더 선호합니다. 때때로 저는 가격 차트에 대한 저의 인식을 높이거나 약간의 계산이 필요하기는 하지만 거래에 대한 저의 비전을 완전히 바꾸는 아이디어를 접하곤 합니다.

이 기사는 가장 인기 있고 이해하기 쉬운 지표인 이동 평균(МА)과 관련된 몇 가지 아이디어에 대한 내용입니다.

내용은 어렵지 않습니다. 지표 값은 평균 방정식을 사용하여 계산됩니다.

MA[i] = (Price[i]+Price[i+1]+...+Price[i+MAPeriod])/MAPeriod

여기서 MA[i]는 시퀀스의 다음 요소인 곡선의 점입니다. Price[i]— 현재 가격, MAPeriod— 평균화를 위한 요소의 수.

물론 우리는 어떤 가격이든 자유롭게 적용할 수 있습니다: 시가, 종가, 고가, 저가, 가중 평균값 등..... 표준 지표를 사용하면 단순 평균보다 복잡한 계산이 가능한 계산 가격과 계산 방법을 모두 선택할 수 있습니다... 예제를 제공하지만 계산 방법을 선택할 기회는 여러분에게 남겨 둡니다. 그러나 계산방법은 앞으로 살펴볼 아이디어를 파악하는 데 중요하지 않습니다. "단순" 이동 평균(SMA), 지수 이동 평균(EMA) 또는 기타의 평균을 사용하는지 여부에 관계없이 모든 예는 매우 잘 작동합니다. 따라서 SMA가 모든 스크린샷과 지표의 설정 디폴트로 사용됩니다. 달리 명시되지 않은 경우 모든 지표는 종가를 사용합니다. 이러한 매개변수를 자유롭게 사용하여 지표를 개선할 수 있습니다.

단일 곡선에 대해 이야기할 때 일반적으로 기본 기간 값인 10막대를 사용합니다. 기간이 다른 여러 곡선이 단일 지표에 사용되는 경우 적용 기간은 대부분 5와 8입니다. 저는 기간을 다르게 하면서 두 개 이상의 곡선을 사용하지 않습니다.

색상은 다음과 같습니다. 빨간색 - 빠름, 주황색 - 느림... 다른 것을 사용하면 명시적으로 언급하겠습니다.


템플릿 지표

곡선에 대한 다양한 접근 방식을 사용할 때 트리거가 되는 신호를 시각화하기 위해 여러개의 지표를 만들었습니다. 표준 예제에 있는 표준 MACD와 매우 유사한 단일 템플릿을 기반으로 합니다. 여기에 전체 템플릿 코드를 표시하는 것은 의미가 없다고 생각합니다.

각 지표는 하나 또는 여러 개의 이동 평균을 사용하고 때로는 화살표까지의 거리를 정의하거나 채널 라인을 그리기 위해 ATR도 사용합니다.

지표가 차트 창에 있는 경우 아이디어를 시각화하는 것이 더 쉬운 경우도 있지만 지표가 별도의 창에 필요한 경우도 있습니다. 이는 속성 중 하나를 사용하여 수행됩니다. 다음 속성은 차트 창 내부에 있는 지표에 사용됩니다.

#property indicator_chart_window

지표가 별도의 창에 있는 경우 다음 속성이 적용됩니다.

#property indicator_separate_window

이 경우 저는 속성을 사용하여 창의 높이를 설정하기도 합니다.

#property indicator_height 100

물론 속성 값은 변경될 수 있습니다.

버퍼 이름에는 끝에 "버퍼" 라는 접미사가 있습니다. 예를 들어 표준 화살표 버퍼는 ArrowDownBuffer 및 ArrowUpBuffer 처럼 말입니다. 지표가 선을 그리면 버퍼의 이름은 line 함수에 따라 지정됩니다.

제가 정의한 모든 전역 변수에는 "ext"라는 접두사가 있습니다(버퍼가 아닌 경우). 예를 들어, extATRData는 ATR 지표의 소스 데이터를 포함하는 전역 변수입니다.

버퍼를 "series" 모드로 전환하지 않고 사용할 것입니다.

초기화하는 동안 모든 비어 있는 값을 0으로 설정합니다.

  PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,0);
  PlotIndexSetDouble(1,PLOT_EMPTY_VALUE,0);
  PlotIndexSetDouble(2,PLOT_EMPTY_VALUE,0);

따라서 화살표 또는 선의 표시 조건만 표시하면 됩니다. 즉 기본 루프에 남아 있는 모든 것입니다.

저는 지표 다시 그리기를 피하려고 하므로 그리기는 제로 촛불에서 수행되는 반면 이미 완성된 양초가 계산에 사용됩니다.


가격 별 선 교차(추세방향)

가장 간단한 경우 МА 라인은 "자연스러운"형태로 단독으로 사용됩니다. 여러분 모두가 여러분의 화면에서 비슷한 이미지를 보았을 것입니다.

"Clean" MA

그림 1. 단순 이동 평균

대부분의 경우 거래자는 MA를 사용하여 추세를 따릅니다. 추세는 곡선의 옆쪽에 있는 캔들의 세트로 정의할 수 있습니다. 예를 들어, 두 개 이상의 캔들이 선 아래에서 완성되면 추세는 약세이므로 매도를 고려할 때입니다. 종가가 곡선 위에 있으면 추세는 강세이며 매수 타이밍입니다... 가격이 곡선을 교차하면 추세의 변화를 목격하고 있는 것입니다.

평균 돌파를 추적할 수 있는 조건은 다음과 같습니다:

//--- main cycle
  for(i=start+3; i<rates_total && !IsStopped(); i++)
   {
    ArrowDownBuffer[i]=0;
    ArrowUpBuffer[i]=0;

    //---

    if(
      ((close[i-1]<extMAData[i-1]
        && open[i-1]>extMAData[i-1]
       )
       ||(close[i-2]>extMAData[i-2]
          && open[i-2]>extMAData[i-2]
          && close[i-1]<extMAData[i-1]
          && open[i-1]<extMAData[i-1]
         )
      )

    )
     {
      ArrowDownBuffer[i]=high[i]+extATRData[i]/5;
     }
    else
      if(
        ((close[i-1]>extMAData[i-1]
          && open[i-1]<extMAData[i-1]
         )
         ||(close[i-2]<extMAData[i-2]
            && open[i-2]<extMAData[i-2]
            && close[i-1]>extMAData[i-1]
            && open[i-1]>extMAData[i-1]
           )
        )
      )
       {
        ArrowUpBuffer[i]=low[i]-extATRData[i]/5;
       }
   } // main cycle

시가를 확인하는 대신 우리는 현재 및 이전 바의 종가들에만 주의를 집중할 것입니다. 종가들이 곡선의 다른 면에 위치한다면 우리는 돌파를 목격하고 있는 것입니다.

지표 파일은 MA-Breaking.mq5입니다. 차트에서 실행하면 다음 이미지가 생성됩니다(표준 곡선 주기가 10개인 경우).

MA — 획기적인

그림 2. 평균 돌파

이 방법은 추가적인 정렬이 없이는 유용하지 않다고 생각합니다. 추세 영역에서도 위쪽 화살표의 개수가 아래쪽 화살표의 개수와 거의 일치하는 것처럼 보입니다. МА의 기간을 늘리면 화살표의 수가 줄어들지만 롤백이 없는 상태의 추세로 급격한 돌파를 하는 경우는 매우 드물기 때문에 별로 도움이 되지 않습니다. 대부분의 경우 날카로운 움직임에는 수평적 흐름이 선행됩니다. 필터를 찾아봅시다...


지지/저항선으로서의 МА

곡선을 사용하는 방법 다음으로 꽤 분명한 방법은 곡선을 지지선/저항선으로 사용하는 것입니다. 가격이 선에 닿았지만 교차하지 않으면(같은 사이드에서 마감) 거래 신호가 발생하는 것입니다. 예를 들어 2월 17일에는 3개의 하향 이동 지점을 볼 수 있으며 추가 필터가 없는 경우 1개의 상향 이동 지점(초기)을 볼 수 있습니다.

당연히 이 규칙을 첫 번째 거래를 시작하고 이후 거래에 거래를 추가할 때 모두 사용할 수 있습니다.

이 개념은 MA-Support.mq5 파일에 나와 있습니다.

//--- main cycle
  for(i=start+3; i<rates_total && !IsStopped(); i++)
   {
    ArrowDownBuffer[i]=0;
    ArrowUpBuffer[i]=0;

    //---

    if(
      (high[i-1]>=extMAData[i-1]
       && close[i-1]<extMAData[i-1]
       && open[i-1]<extMAData[i-1]
      )
    )
     {
      ArrowDownBuffer[i]=high[i]+extATRData[i]/5;
     }

    else
      if(
        (low[i-1]<=extMAData[i-1]
         && close[i-1]>extMAData[i-1]
         && open[i-1]>extMAData[i-1]
        )
      )
       {
        ArrowUpBuffer[i]=low[i]-extATRData[i]/5;
       }
   } // Main cycle end

다음은 코드 수행의 결과입니다:

МА 지지선/저항선 МА

그림 3. 지지/저항선으로서의 МА

이것은 이전의 옵션보다 더 좋아 보입니다. 이익 수준으로 사용하거나 단순하게는 화살표로 주문을 하고 반대 방향 화살표로 청산하면(반전을 사용하여) 수익성 있는 거래의 기회가 높아집니다.

МА의 기간이 클수록 각도가 낮고 가격에서 더 멀어집니다. 따라서 돌파 및 롤백 신호는 덜 자주 있게 되지만 레벨은 지원/저항 레벨로 더 안정적이 됩니다. 비교를 위해 20개 기간의 차트를 보여드리겠습니다. 롤백이 덜 자주 발생함을 알 수 있습니다. 그러나 신호가 더 신뢰할 수 있는 신호이므로 스탑 로스의 크기를 줄일 수 있습니다.

МА는 지지/저항(증가 기간)

그림 4. 기간이 긴 MA (20)

예를 들어 오전 4시에 2월 17일 빨간색 곡선은 매수 신호를 제공하고 주황색 곡선은 매도 신호를 제공하므로 손실을 봅니다. 단, 빨간색 선의 경우 오전 8시, 오전 10시, 오후 3시의 신호를 이용하여 포지션을 추가할 수 있습니다.

더 높은 MA 기간의 경우 신호가 늦게 나와서 잠재적 이익의 일부를 잃을 수는 있지만 거래 빈도는 줄어들 수 있습니다.


경사

선의 기울기가 가파를수록 가격이 더 빨리 움직이고 추세가 다음 캔들에서 계속될 가능성이 높아집니다.

기울기를 측정하는 가장 쉬운 방법은 현재 값과 이전 값의 차이를 사용하는 것입니다. 차이가 양수이면 곡선이 위로 이동하고 차이가 음수이면 아래로 이동합니다.

MA-Slope.mq5의 메인 루프 코드는 다음과 같습니다.

//--- main cycle
  for(i=start+SlopeShift*2; i<rates_total && !IsStopped(); i++)
   {
    SlopeDownBuffer[i]=0;
    SlopeUpBuffer[i]=0;
    slopeIndex=(extMAData[i-1]-extMAData[i-1-SlopeShift]);

    //---

    if(
      slopeIndex<0

    )
     {
      SlopeDownBuffer[i]=slopeIndex;
     }
    else
      if(
        slopeIndex>0
      )
       {
        SlopeUpBuffer[i]=slopeIndex;
       }
   } // main cycle

여기서SlopeShift는 현재 가격에서 지나간 바의 수를 지정합니다. 기본값은 1입니다. 그러나 예를 들어 두 개 또는 세 개의 바에서 MA 값의 차이를 사용하여 이 값을 증가시키면 꽤 흥미로운 결과를 얻을 수 있습니다.

그 결과 곡선이 히스토그램으로 표시되어야 할 것입니다. 결과는 아래와 같습니다:

МА - 기울기 히스토그램

그림 5. 곡선 기울기 히스토그램

이미지가 상당히 흥미롭습니다.

첫째, 랜덤한 움직임의 변동을 쉽게 추적하고 정렬할 수 있음이 분명합니다. 실제로 곡선의 방향이 1개, 2개 또는 3개의 바에서만 변경된다면 추세 변화에 대해 이야기하는 것이 너무 이를 것입니다. 어쨌든 이를 놓치지 않도록 각별히 주의해야 합니다.

둘째, 속도의 변화를 즉시 볼 수 있습니다. 보시다시피 다이어그램의 열 높이가 특정 값보다 작으면 수평적인 흐름에 있을 가능성이 큽니다. 따라서 2~3 바 보다 긴 MA의 작은 기울기의 방향으로 거래하는 것은 무리입니다.

셋째, 추세 부분의 곡선이 단조롭게 상승하거나 하락하는 것처럼 보이지만 실제 변화율은 바마다 크게 다릅니다. 이것은 아마도 우리가 아직은 볼 수 없는 값을 보는 데 도움이 될 일종의 상대적 수치를 암시합니다.

(МА-Slope-Index-First.mq5) ... 코드:

//--- main cycle
  for(i=start+SlopeShift*3; i<rates_total && !IsStopped(); i++)
   {
    SlopeDownBuffer[i]=0;
    SlopeUpBuffer[i]=0;
    slopeIndex=(extMAData[i-1]-extMAData[i-1-SlopeShift]+Point()/100)
               /(extMAData[i-2]-extMAData[i-2-SlopeShift]+Point()/100);
    //---

    if(
      slopeIndex<0
    )
     {
      SlopeDownBuffer[i]=slopeIndex;
     }
    else
      if(
        slopeIndex>0
      )
       {
        SlopeUpBuffer[i]=slopeIndex;
       }
   } // main cycle

피제수와 제수에 작은 값(Point()/100)을 추가해도 결과가 크게 변경되지는 않지만 0 나누기의 오류를 피할 수 있습니다.

이미지는 다음과 같습니다:

MA — 상대 기울기

그림 6. 평균 기울기의 상대 지수

교차점에서 피크를 볼 수 있습니다. 차트를 몇 개의 바 정도로 왼쪽으로 이동하면 차이가 더욱 선명해집니다.

МА — 상대 지수가 왼쪽으로 이동

그림 7. MA 기울기의 상대 지수 (왼쪽으로 이동)

그림 7은 피크 값이 매우 강한 움직임의 경계를 어떻게 나타내는지를 보여줍니다. 나머지 데이터 배열과 피크 값의 차이는 상당히 큽니다. "피크"가 크기면에서 서로 너무 다르다는 사실과 피크와 다른 데이터의 차이가 너무 크다는 사실을 알 수 있습니다. 이제 다음 단계로 이어집니다. 방향 변화가 상당히 눈에 띄는 정도이기 때문에 상대 기울기 지수의 히스토그램을 분석하는 데 포인트가 없습니다. 대신 바이너리로 만들어 출력을 더 거칠게 만들 수 있습니다. 예를 들어 다음과 같이 말입니다(МА-Slope-Index-Bin.mq5):

//--- main cycle
  for(i=start+SlopeShift*3; i<rates_total && !IsStopped(); i++)
   {
    SlopeDownBuffer[i]=0;
    SlopeUpBuffer[i]=0;
    slopeIndex=(extMAData[i-1]-extMAData[i-1-SlopeShift]+Point()/100)
               /(extMAData[i-2]-extMAData[i-2-SlopeShift]+Point()/100);
    //---

    if(
      slopeIndex<=-SlopeThreshold
    )
     {
      SlopeDownBuffer[i]=-1;
     }
    else
      if(
        slopeIndex>=SlopeThreshold
      )
       {
        SlopeUpBuffer[i]=1;
       }
   } // Main cycle



여기서SlopeThreshold는 신호가 생성되는 이전 다이어그램의 바 높이의 임계값입니다. 이미지에서 매개변수 값은 5와 같습니다.

상대 МА 기울기(바이너리)

그림 8. 평균 기울기의 상대 지수 (바이너리). SlopeThreshold=5.

아래는 SlopeThreshold=15인 또 다른 이미지입니다.

상대 기울기 지수, SlopeThreshold=15

그림 9. 평균 기울기의 상대 지수 (바이너리). SlopeThreshold=15.

이 줄무늬는 확실히 자세히 살펴볼 가치가 있습니다!

분명히, 그러한 마커는 현재 캔들의 방향 또는 표시된 캔들 이후의 2-3개 또는 그 이상의 캔들 방향의 변화를 나타냅니다. 어쨌든 마커 색상, 주 방향과 실제 캔들 사이의 조합에 대해 추세는 명확하게 의존적입니다. 물론 예를 들어 기사에서 설명한 방식으로 통계를 수집해야 합니다. 여기에 소개된 다른 방법들과 함께 지표는 이미 좋아 보입니다...

물론 히스토그램의 이진 줄무늬는 이전의 지표와 마찬가지로 화살표로 쉽게 대체할 수 있습니다.


한개의 이동 평균을 기반으로 하는 채널

가격의 움직임의 변동성을 알아보기 위해 위에서 설명한 방법 외에도 이동 평균을 기반으로 한 채널을 만들 수 있습니다. 옵션은 다양합니다. 두 가지만 고려하겠습니다.

첫 번째 것은 표준 MA 지표만 사용하기 때문에 매우 간단합니다. 차트에 지표를 추가할 때 단순히 레벨을 추가하기만 하면 됩니다. 유일한 주의 사항은 각 기간마다 고유한 레벨이 있다는 사실입니다. 차트 주기를 변경할 때마다 입력하지 않도록 단일 "패키지"로 모았습니다. 이미지는 JPY의 경우 다음과 같습니다.

단순 채널 — MA

그림 10. 채널 레벨 리스트

H1의 최종 이미지는 다음과 같습니다:

로 구성된 채널레벨 로 구성된 채널

그림 11. 레벨의 외관(H1)

여기에서 롤백에 대한 레벨이 설정됩니다. 따라서 캔들이 레벨에 닿았다가 그 레벨에서 뒤로 물러나면(또는 거의 근접하게 되면) 추세에 반대 방향으로 진입하십시오. 예를 들어 스크린샷의 채널은 2월 22일에 매도하기에 좋은 시간이 있었음을 보여줍니다. 시그널 캔들의 중간이나 마지막에 주문을 설정할 수 있습니다.(롤백 후 입력하면 주문은 신호 캔들 Low - 115.100에서 설정될 수 있는 반면 스탑 레벨은 115.265로 설정될 수 있습니다). 단기의 목표는 평균을 터치하고 있는 반면 최종의 목표는 같은 채널의 반대쪽 경계를 터치하고 있습니다.

그러나 이 경우 좁은 채널의 돌파로 거래하는 것도 가능합니다. 예를 들어 9-시간 캔들은 2월 22일 좁은 채널의 경계선 위에서 마감되었습니다. 두 개의 상승 캔들은 평균 이상으로 완성 되었으며, 그 사이의 하락 캔들는 하단의 경계선을 넘지 않았습니다. МА 기울기는 분명히 감소하고 있습니다(MA-Slope 차트를 보면 가장 명확하게 볼 수 있음). 이 모든 것이 명확한 매수 신호로 사용될 수 있습니다. 스탑 레벨은 114.570에 설정될 수 있습니다. 진입점은 레벨을 사용하여 계산할 수 있습니다. 진입점은 115.230으로 설정할 수 있습니다. 또는 캔들에 의한 트레일링 스탑을 사용하거나 원하는 다른 방법을 사용할 수 있습니다.

가장 내부에 있는 채널과 약간 더 큰 두 개의 채널만 볼 수 있습니다: 가장 안쪽에 있는 하나와 좀 더 큰 다른 하나 더 긴 시간 프레임, 예를 들어 D1으로 전환하면 채널 +-50은 거의 숨겨지고 +-300 및 +-1500이 작동하는 채널이 될 수 있습니다. 월간 채널도 가끔 볼 수 있습니다. 월간 채널도 신호를 제공할 수 있지만 가장 눈에 띄는 채널이 주요 채널로 사용됩니다.

다중 채널(D1)

그림 12. 레벨의 외관 (D1)

주간/월간 단위로 유사한 이미지를 볼 수 있습니다. 네 번째 채널이 가장 적합하고 세 번째 채널은 내부 및 보조 채널로 사용할 수 있습니다.

가장 내부의 채널은 М1-М15용으로 설계되었습니다.

조정을 할 때 원칙은 분명합니다. 필요한 시간 프레임으로 전환하고 레벨의 크기를 선택하여 접촉 지점의 수를 최소화하면서 동시에 가능한 최대의 진폭을 갖도록 합니다. 이를 수행하는 가장 쉬운 방법은 현재 시간 프레임에서 필수적인 수정의 진폭을 측정하고 2로 나누는 것입니다. 아래 애니메이션은 그 프로세스를 보여줍니다.

측정 채널 크기 측정

그림 13. 채널 변동성 측정 (D1)

대략적인 추정 후에 크기를 더 정확하게 조정해야 할 수도 있지만 이것은 매우 쉽습니다....


2개의 이동 평균을 기반으로 하는 채널(ATR3x5)

위에서 설명한 채널은 훌륭하지만 몇 가지 단점이 존재합니다.

먼저 각 시간대 및 기호에 대해 채널의 크기를 수동으로 선택해야 합니다. 프로세스를 자동화하는 것은 어려운 작업인 것 같습니다.

둘째, 레벨은 버퍼에 저장되지 않습니다. 그러므로 프로그래밍 방식으로 사용하기 어렵습니다.

이동 평균 및 ATR 기반의 채널에는 이러한 단점이 없습니다. 아이디어는 간단합니다. 기간이 3 두 개의 이동 평균 지표를 사용합니다. 그 중 하나는 Highs(high)에 적용되고 다른 하나는 Lows(low)와 함께 사용됩니다. 이후 얻은 라인을 적절한 방향으로5주기ATR만큼의 거리로 이동합니다(아래쪽은 아래로, 위쪽은 위로 이동).

채널이 준비되었습니다! 돌파가 매우 드물기 때문에 모든 심볼에 대해 완벽하게 맞고 대부분의 롤백에서 잘 작동합니다. 또한 채널 경계의 터치를 감지하기 위한 화살표를 추가했습니다.

//--- main cycle
  for(i=start+3; i<rates_total && !IsStopped(); i++)
   {
    ArrowDownBuffer[i]=0;
    ArrowUpBuffer[i]=0;

    //---

    MAUpBuffer[i]=extMAUpData[i]+extATRData[i]*DistanceCoefficient;
    MADownBuffer[i]=extMADownData[i]-extATRData[i]*DistanceCoefficient;

    if(
      (high[i-1]>=MAUpBuffer[i-1]
       && close[i-1]<MAUpBuffer[i-1])
      ||(
        close[i-2]>MAUpBuffer[i-2]
        && close[i-1]<MAUpBuffer[i-1]
      )
    )
     {
      ArrowDownBuffer[i]=high[i]+extATRData[i]/5;
     }
    else
      if(
        (low[i-1]<=MADownBuffer[i-1]
         && close[i-1]>MADownBuffer[i-1])
        ||(
          close[i-2]<MADownBuffer[i-2]
          &&close[i-1]>MADownBuffer[i-1]
        )
      )
       {
        ArrowUpBuffer[i]=low[i]-extATRData[i]/5;
       }
   }// main cycle

여기에서 DistanceCoefficient는 지표를 특정 조건에 맞도록 조정하여 채널 경계까지의 거리를 변경할 수 있는 지표 매개변수입니다. 매개변수는 모든 분수 값을 사용할 수 있습니다. 그러나 2 이상으로 설정하면 화살표가 거의 완전히 사라지게 되고 거래가 수행되지 않으므로 의미가 없습니다.

ART3x5 채널

그림 14. ATR3x5 채널

물론 지표는 여기에 설명된(또는 설명되지 않은) 다른 지표와 같이 사용될 수 있습니다.

이미지에서 가격이 지표의 상단 및 하단과 상호 작용하는 방식을 유심히 살펴보십시오. 도움이 될 것입니다.


기간이 다른 여러 지표

지금까지 우리는 매수 및 매도 신호를 받기 위해 단일 MA 라인을 사용하는 것에 대해 알바 보았습니다. 그러나 많은 트레이들은 다른 지표나 여러 개의 지표를 추가하면 진입 정확도가 크게 향상될 수 있다고 생각합니다.

바가 5개와 8개인 두 개의 곡선이 있는 차트를 만들어 보겠습니다. 기간은 Fibo 시리즈에서 가져옵니다. 기간 중 하나는 "빠른" 줄을 설명하고 다른 하나는 "느린" 줄을 설명합니다.

2개의 MA가 동시에 표시됨

그림 15. 단일 차트에 두 개의 MA

이미 살펴본 기능 외에도 이제 곡선들의 상대적인 위치와 "동향성"(또는 발산, 다이버전스)을 볼 수 있게 되었습니다. МА 사이의 거리도 나타납니다.

각 매개변수는 각각의 곡선에 의해 표시되는 일부 움직임의 속성을 강화하거나 약화시킬 수 있을 뿐만 아니라 독립적으로도 진입 신호를 제공할 수 있습니다.


상대적 위치. MA 교차

빠른 MA가 느린 MA 위에 위치하면 우리는 강세의 추세를 목격하고 있는 것이고 아마도 다음 캔들이 강세일 가능성이 매우 높을 것입니다. 신호 라인 기울기와 다른 매개변수와 기타 매개변수도 고려해야 합니다.

빠른 MA가 느린 MA 아래에 있으면 약세의 추세에 있으며 각 후속 캔들이 약세일 확률은 정점에 도달할 때까지 크게 증가합니다...

빠른 MA가 느린 MA를 돌파하면 추세의 변화가 발생한다고 볼 수 있습니다.

MA 교차에 대응하는 지표를 개발해 봅시다. 또한 우리는 잘못된 진입을 줄이기 위해 수평적인 흐름을 고려해야 합니다. 이는 예를 들어 빠른 MA의 기울기의 크기를 고려하여 수행할 수 있습니다. 이 경우 신호를 검색하는 다음과 같은 코드(MA2-Breaking)를 사용할 수 있습니다:

//--- main cycle
  for(i=start+3+SlopeShift*2; i<rates_total && !IsStopped(); i++)
   {
    ArrowDownBuffer[i]=0;
    ArrowUpBuffer[i]=0;

    //---

    if(
      extMAFastData[i-1]<extMASlowData[i-1]
      && extMAFastData[i-2]>=extMASlowData[i-2]
      && MASlope(extMAFastData,i-1)<-SlopeThreshold
      && MASlope(extMASlowData,i-1)<SlopeThreshold/SlowDelimiter
    )
     {
      ArrowDownBuffer[i]=high[i]+extATRData[i]/3;
     }
    else
      if(
        extMAFastData[i-1]>extMASlowData[i-1]
        && extMAFastData[i-2]<=extMASlowData[i-2]
        && MASlope(extMAFastData,i-1)>SlopeThreshold
        && MASlope(extMASlowData,i-1)>-SlopeThreshold/SlowDelimiter
      )
       {
        ArrowUpBuffer[i]=low[i]-extATRData[i]/3;
       }
   } // main cycle

여기서 MASlope는 기울기 섹션에 제공된 예제와 유사한 방식으로 MA의 기울기를 계산하는 함수입니다. 계산은 매개변수로 수행되고 필요한 곡선 및 바 인덱스에 대한 데이터 배열을 허용합니다.

SlopeTreshold— 빠른 MA 기울기 다이어그램의 임계값. 기억 하시겠지만 교차 시점에 빠른 MA의 기울기가 너무 작으면 아마도 우리는 횡보의 흐름에 있을 것입니다. 횡보에서는 일반적으로 많은 수의 거짓 신호로 결국 손실을 보게 됩니다.

SlowDelimiter— 느린 MA 슬로프 임계값 구분 기호입니다. 때로는 빠른 MA가 이미 아래쪽으로 기울어져 있고 느린 MA가 반전에 가깝지만 아직 반전되지 않은 경우 꽤 좋은 신호를 얻을 수 있습니다. 다시 말해 진입은

MASlope(extMASlowData,i-1)>-SlopeThreshold/SlowDelimiter

느린 MA 기울기는 작은 음수 값(약간 아래쪽으로 향함)을 가질 수 있고 0과 같거나 양수일 수 있지만 급격하게 음수는 아닐 때 해야 한다는 말합니다.

지표를 "명확하게" 사용하는 경우 임계값과 구분 기호는 각 도구와 기간에 대해 별도로 선택해야 합니다. 아래는 SlopeTreshold=0.017 및 SlowDelimiter=5인 USDJPY H1에서 얻은 결과입니다.

MA 교차 신호 기울기를 고려한 MA 교차 신호

그림 16. 기울기를 고려한 MA 교차 신호

이미지에 곡선이 없습니다 그래서 화살표가 더 명확하게 보입니다 . 좋은 이익 실현 값(또는 레벨에 따라 청산)을 선택하면 손실이 크지 않은 스탑 수준을 실행하여 거의 모든 화살표에서 손실이 거의 나지 않을 수 있습니다.

아래 이미지는 동일한 차트를 자세히 보여줍니다(크게 확대).

MA 횡단(확대)

그림 17. 기울기를 고려한 MA 교차 신호(크게 확대)

기억하실지 모르겠지만 신호제로 캔들에서 생성됩니다. 그리고 이전의 구간이 분석 됩니다. 따라서 화살표를 그리는 이유를 이해하려면 녹색 선에서 왼쪽 막대까지의 간격을 살펴봐야 합니다.

오른쪽에 두 개의 화살표가 없는 이유는 무엇입니까? 슬로프는 느리거나 빠른 MA에 대한 임계값을 초과하지 않으며 지표는 이 간격을 평평한 것으로 간주합니다. 하지만 이 시그널로 이 영역을 거래했다면 추세가 더 올라가서 더 좋은 가격에 매도할 수 있었을 것이기 때문에 불평할 이유가 없었을 것입니다.

MA 교차 - 추세 지속

그림 18. 교차 신호: 추세가 계속됩니다.


결론

아직 이 주제에 대해 논의할 것들이 있지만 이는 다른 기사에서 다루겠습니다.

이 기사에서는 MA와 관련된 기본 사항을 알아보고 가격 움직임의 일반적인 방향을 추적할 수 있는 방법에 대해 알아보았습니다.

또한 저는 거래 결정을 내리는데 도움이 되는 주요 MA 매개변수의 사용을 그래픽으로 보여주는 지표 코드를 알려 드렸습니다.

잘 알려진 지표의 속성을 결합하고 함께 적용하여 거래 전략을 개선하는 방법을 보여 드렸습니다.

다음 기사에서는 이동 평균 및 이로부터 파생된 지표와 관련된 데이터를 기반으로 각각의 캔들의 위치를 계산하는 방법을 알려드리고자 합니다.

이 기사는 여기에 포함된 정보가 귀하의 거래에 도움이 된다고 보장하지 않습니다.

수익이 여러분과 함께 하기를!

MetaQuotes 소프트웨어 사를 통해 러시아어가 번역됨.
원본 기고글: https://www.mql5.com/ru/articles/10479

파일 첨부됨 |
jx-Breaking.mq5 (5.56 KB)
h9-Support.mq5 (5.22 KB)
lw-Slope.mq5 (4.66 KB)
ATR3x5.mq5 (7.34 KB)
wr2-Crossing.mq5 (6.5 KB)
ADX 기반의 트레이딩 시스템을 설계하는 방법 알아보기 ADX 기반의 트레이딩 시스템을 설계하는 방법 알아보기
이 기사에서는 가장 인기 있는 지표를 사용하여 거래 시스템을 설계하는 것과 평균 방향성 지수(ADX) 지표에 대해 알아볼 것입니다. 이 지표를 잘 이해하기 위해 자세한 내용에 대해 알아보고 간단한 전략을 통해 사용법을 배우도록 하겠습니다. 무언가를 깊이 배우면 더 많은 통찰력을 얻을 수 있고 더 잘 사용할 수 있게 됩니다.
데이터 과학 및 기계 학습(파트 02): 로지스틱 회귀 데이터 과학 및 기계 학습(파트 02): 로지스틱 회귀
데이터 분류는 알고리즘 트레이더와 프로그래머에게 중요합니다. 이 기사에서 우리는 예 또는 아니오, 상방 또는 하방, 매수 또는 매도를 식별하는 데 도움이 될 수 있는 분류 로지스틱 알고리즘 중 하나에 초점을 맞출 것입니다.
데이터 과학 및 머신 러닝(파트 03): 행렬 회귀(Matrix Regressions) 데이터 과학 및 머신 러닝(파트 03): 행렬 회귀(Matrix Regressions)
이번에는 우리의 모델이 행렬로 만들어지고 있습니다. 그러므로 유연성이 있으면서 컴퓨터의 계산 한계 내에서 유지되는 한 5개의 독립 변수 뿐만 아니라 많은 변수를 처리할 수 있는 강력한 모델을 만들 수 있습니다. 이 기사가 흥미로울 것이라 확실합니다.
스토캐스틱으로 거래 시스템 설계 하는 방법 알아보기 스토캐스틱으로 거래 시스템 설계 하는 방법 알아보기
이 기사에서는 기존의 학습 시리즈를 계속합니다. 이번에는 가장 인기 있고 유용한 지표 중 하나인 스토캐스틱 오실레이터 지표를 사용하여 거래 시스템을 설계해 볼 것입니다. 여러분들이 기존에 가지고 있던 기본적인 지식에 새로운 지식을 쌓는 기회가 되기를 바랍니다.