English Русский 中文 Español Deutsch 日本語 Português Français Italiano Türkçe
preview
Williams PR로 트레이딩 시스템을 설계하는 방법 알아보기

Williams PR로 트레이딩 시스템을 설계하는 방법 알아보기

MetaTrader 5트레이딩 | 6 2월 2023, 17:14
532 0
Mohamed Abdelmaaboud
Mohamed Abdelmaaboud

소개

가장 인기 있는 기술 지표를 기반으로 거래 시스템을 설계하는 방법에 대한 시리즈 중 이 새로운 기사에서는 WPR(Williams Percent Range)라는 기술 지표를 기반으로 간단한 거래 시스템을 설계하는 방법에 대해 알아봅니다. Williams Percent Range 지표를 자세히 이해하는 것 외에도 기본 아이디어를 기반으로 이 지표를 효과적으로 사용하는 방법을 배웁니다. 사물의 근원을 이해할 수 있다면 이를 효과적으로 사용할 수 있을 뿐만 아니라 주요 개념 또는 관련 도구와 관련한 새로운 통찰력이나 아이디어를 찾을 수 있습니다. 이를 통해 특별하고 더 나은 거래 결과를 얻을 수 있을 것입니다. 그러므로 사물의 근원을 배우고 가르치면서 점점 더 깊이 이해하려는 접근 방식을 제시하고자 합니다.

우리는 이 기사에서 다루는 여러 주제를 통해 다음과 같은 내용을 배울 것입니다.

  1. 윌리엄스 %R 정의
  2. 윌리엄스 %R 전략
  3. Williams %R 전략 청사진
  4. Williams %R 거래 시스템
  5. 결론

첫 번째 주제인 윌리엄스의 %R 정의를 통해 윌리엄스의 %R이 무엇인지, 무엇을 측정하는지, 그리고 이 지표를 수동으로 계산하는 방법에 대해 알아보겠습니다. 그런 다음 이 지표의 기본 개념을 바탕으로 간단한 전략을 통해 이 지표를 올바르게 사용할 수 있는 방법에 대해 윌리엄스의 %R 전략이란 주제를 통해 알아봅니다. 이 기사의 주요 목적인 이 지표로 거래 시스템을 만드는 작업에 도움이 되도록 언급된 각 전략에 대한 단계별 청사진을 설계할 것입니다. 이 청사진은 윌리엄스의 %R 전략 청사진이라는 주제를 통해 만들 것입니다. 이후 이 글에서 가장 흥미로운 주제인 윌리엄스의 %R 거래 시스템이라는 주제를 통해 언급된 전략을 바탕으로 거래 시스템을 만들 것입니다.

이들 주제에 대해 알아본 후에는 MetaTrader 5에서 이 거래 시스템을 사용하여 신호를 자동으로 생성하는 간단한 거래 시스템을 만드는 방법을 배우면서 우리는 이 기술 지표의 기초에 대해 알아볼 수 있을 것입니다. 깊이 있는 이해는 여러분들에게 큰 도움이 될 것입니다. 모든 것을 직접 적용해 보시기 바랍니다. 실제 계정에서 사용하기 전에 모든 신호 전략을 테스트하여 유용한지 확인하는 것도 중요합니다.

MetaTrader 5 거래 터미널과 내장된 MetaEditor를 사용하여 MQL5 코드를 작성하여 Expert Advisor를 만들 것입니다. MetaTrader 5를 사용하는 방법이나 MQL5 코드를 작성하는 방법을 모른다면 이전 기사에서 메타에디터에서 MQL5 코드 작성하는 방법이란 주제를 읽어 보시기 바랍니다.

면책: 모든 정보는 정보 제공의 목적으로만 '있는 그대로' 제공되며 거래의 목적이나 조언을 위해 준비된 것이 아닙니다. 여기의 정보는 어떤 종류의 결과도 보장하지 않습니다. 귀하의 거래 계정에서 이들 자료를 사용하기로 한 경우 귀하는 이에 대한 위험을 감수해야 하며 이에 대한 책임은 오직 귀하에게만 있습니다.

이제 더 나은 결과를 얻기 위한 우리의 트레이딩의 여정에서 전환점이 될 수 있는 새로운 도구를 배우기 시작하겠습니다.


윌리엄스 %R 정의

서론에서 언급한 것과 마찬가지로 Williams의 %R 지표에 대해 자세히 알아볼 것입니다. Williams의 %R(WPR)은 Larry Williams가 개발한 모멘텀 지표입니다. WPR이 Stochastic Oscillator의 반대라고 말할 수 있습니다. 이 둘 사이의 차이점은 스케일링 방식이기 때문입니다. WPR도 Stochastic과 동일하게 사용할 수 있습니다. 스토캐스틱 지표에 대해 자세히 알아보려면 스토캐스틱으로 거래 시스템을 설계하는 방법 알아보기란 이전의 기사를 읽어보시기 바랍니다. WPR은 종가와 고가-저가 범위 간의 관계를 측정합니다. WPR 지표도 0과 -100 사이에서 진동합니다. WPR은 모멘텀 지표이기 때문에 추세의 강도를 측정하는 데에도 사용할 수 있습니다. 추세 및 추세의 유형에 대해 자세히 알아보고 싶으시다면 이전 기사인 추세 정의를 읽어 보면 이해하는 데 도움이 될 것입니다. 지표는 -80, -20, 중간지점 -50이 중요한 레벨이며 이 부분을 지켜봐야 합니다.

또한 다른 기술 도구를 이 지표와 결합하는 것도 중요합니다. 예를 들어 가격 움직임 도구, 차트 패턴, 거래량 및 이동 평균등과 같은 것들로 전략과 관련하여 이 기사를 통해 사용할 것들입니다. 이러한 방법은 매우 유용한 방법일 것입니다. 각 도구에 대해 더 많은 관점을 명확히 할 수 있을 것이고 이는 적절한 결정을 내리는 데 유용할 것입니다.

이제 WPR 지표를 계산하는 방법을 알아볼 차례입니다. 간단하게 다음 단계에 따라 계산할 수 있습니다.

  1. 고점중 최고가 계산 = 계산 기간 중 최고가의 최고값.
  2. 저점중 최저가 = 계산 기간 중 최저가의 최저값
  3. WPR = (고점중 최고가 - 종가)/(고점중 최고가 - 저점중 최저가) * -100

더 깊은 이해를 위해 이러한 계산 방법을 적용하고 WPR을 계산하기 위해 실제 값이 있는 예를 살펴봐야 합니다. 금융상품에 대한 다음과 같은 데이터가 있다면

기간 고가 저가 종가
1 1.078 1.0678 1.0733
2 1.0788 1.0726 1.0777
3 1.0766 1.0697 1.0727
4 1.0733 1.0662 1.0724
5 1.074 1.0642 1.068
6 1.0749 1.0661 1.0734
7 1.0698 1.0558 1.0689
8 1.0599 1.0532 1.056
9 1.0608 1.046 1.0586
10 1.0565 1.046 1.0466
11 1.0556 1.0429 1.0547
12 1.0444 1.0388 1.0431
13 1.0421 1.035 1.0411
14 1.053 1.0353 1.0379
15 1.0577 1.0502 1.0511
16 1.0586 1.0525 1.0527
17 1.0594 1.0495 1.0555
18 1.0601 1.0482 1.0551
19 1.0642 1.0493 1.054
20 1.0632 1.0505 1.0621
21 1.0579 1.0491 1.052
22 1.0567 1.0491 1.051
23 1.0602 1.0381 1.0547
24 1.0509 1.0359 1.0443
25 1.0486 1.0396 1.0414
26 1.052 1.04 1.0408
27 1.0644 1.0505 1.0515
28 1.0775 1.0611 1.0614
29 1.0749 1.0671 1.0714
30 1.0715 1.0652 1.0699

계산을 하면 다음과 같은 WPR을 얻게 됩니다. 기간은 기본 설정인 14를 사용합니다.

1- 고점 중 최고가 획득.

HH 값

2- 저점 중 최저가 획득.

LL 값

3- WPR 획득.

이렇게 WPR 값을 계산했습니다. 앞에서 살펴본대로 모멘텀을 측정하기 위해 0과 -100 사이에서 진동하는 선이 있게 될 것입니다. 지표는 이미 MetaTrader 5 거래 터미널에 내장되어 있습니다. 그러므로 우리는 수동으로 계산할 필요는 없으며 다음 단계와 같이 사용 가능한 지표 중에서 선택하기만 하면 됩니다.

W_R 삽입

지표를 선택하면 매개 변수를 결정하는 창이 다음과 같이 나타납니다.

 W_R 매개변수

1- 원하는 기간을 설정합니다.

2- 지표의 색상을 결정합니다.

3- 지표의 스타일을 결정합니다.

4- WPR의 라인의 두께를 결정합니다.

다음과 같이 레벨 탭을 통해 지표의 레벨을 정할 수도 있습니다.

W_R 레벨

이전 그림을 보면 높은 판독값과 낮은 판독값을 기록하는 데 중요한 레벨인 -80과 -20의 두 가지 레벨이 있음을 볼 수 있습니다. 또한 예를 들어 추가를 누른 다음 차트의 지표 창에 표시할 레벨을 결정하여 -50 레벨을 추가할 수 있습니다. 이와 같이 다른 레벨을 추가할 수 있습니다.

원하는 모든 매개변수를 결정하고 "OK"를 누르면 다음과 같이 지표가 차트에 첨부됩니다.

 W_R 첨부

이전 그림에서 볼 수 있듯이 차트 하단 창에서 검은 선은 모멘텀을 측정하기 위해 0과 -100 사이에서 진동하고 있습니다. 또한 -50의 중간 지점은 중요한 레벨이며 WPR이 -50 레벨을 넘어갈 때 가격의 움직임에 대해 의미 있는 부분입니다. 이는 가격이 고-저 범위에서 상반부에서 거래됨을 의미합니다 계산된 기간 동안 WPR이 -50 레벨 아래로 교차하면 이는 가격이 계산된 기간의 고-저 범위의 하반부에서 거래됨을 의미합니다. 만약 -80 영역의 아래에서 지표를 보게되는 경우 이것은 가격이 저점 근처에서 거래되고 있음을 나타내는 낮은 판독값을 의미하지만 -20 레벨 영역 위에서 지표를 보게 되는 경우는 가격이 상승했음을 나타내는 높은 판독값을 의미하고 고점 근처에서 거래된다는 것을 나타냅니다. -80 및 -20 레벨은 가격이 과매수 및 과매도 영역에 도달했음을 나타내기 때문에 매우 중요한 영역입니다.


윌리엄스 %R 전략

이 부분에서는 지표의 주요 개념을 바탕으로 간단한 전략을 통해 윌리엄스의 %R을 어떻게 활용할 수 있는지 알아보겠습니다. 여기서 우리는 Williams %R 지표의 아이디어를 기반으로 사용할 수 있는 세 가지 다른 전략을 배웁니다. 첫 번째 전략은 Williams %R - OB 및 OS, 두 번째 전략은 Williams %R - 크로스오버, 세 번째 전략은 Williams %R - MA라고 부를 것입니다. 다음 줄에서 이러한 전략을 사용할 수 있는 방법에 대해 알아볼 것입니다.

  • 전략 1: 윌리엄스 %R - OB 및 OS:

이 전략에 따르면 상품이 특정 조건에 따라 과매수 영역 또는 과매도 영역에 있을 때 알림을 받아야 합니다. Williams %R 값이 -80 레벨보다 낮으면 과매도 신호가 됩니다. Williams %R 값이 -20 레벨보다 크면 과매수 신호가 됩니다.

이 전략은 가격이 과매수 또는 과매도 영역에 도달했을 때 알림을 받는데 데 도움이 될 것이며 모멘텀 상태를 읽어 향후 움직임을 예상하는 데에도 도움이 될 것입니다.

WPR 값 < -80 --> 과매도

WPR 값 > - 20 --> 과매수

  • 전략 2: 윌리엄스 %R - 교차:

이 전략에 따르면 현재 Williams %R, 이전 Williams %R(WPR) 및 -50 레벨의 교차를 기반으로 매수 또는 매도 신호가 있을 때 알림을 받아야 합니다. 이전 WPR이 -50보다 낮고 현재 WPR이 -50보다 크면 매수 신호가 됩니다. 이전 WPR이 -50보다 크고 현재 WPR이 -50보다 낮으면 매도 신호가 됩니다.

이 전략은 매우 중요한 레벨인 -50의 크로스오버를 기반으로 매수 및 매도 신호를 생성하므로 유용합니다. 이러한 신호를 확인하기 위해 다른 기술적 도구들을 결합하면 더 효과적일 것입니다.

Prev. WPR < -50 및 현재 WPR > -50 --> 매수 신호

Prev. WPR > -50 및 현재 WPR < -50 --> 매도 신호

  • 전략 3: 윌리엄스 %R - MA:

이 전략에 따르면 매수 또는 매도 신호가 있을 때도 알림을 받아야 하지만 Ask 값이 이동 평균 값보다 크고 Williams %R 값이 -50 레벨보다 클 때 매수 신호를 받아야 합니다. 우리는 Bid 가격이 이동 평균 값보다 낮고 Williams %R 값이 이동 평균 값보다 낮을 때 매도 신호를 받아야 합니다.

이 전략을 사용하면 조건에 따라 더 구체적인 매수 및 매도 신호를 얻을 수 있습니다. 현재의 신호를 확인하고 거짓 돌파를 필터링하기 위해 또 다른 기술 도구인 이동 평균을 결합했기 때문입니다.

매도 > MA 값 및 WPR > -50 --> 매수 신호

Bid < MA 값 및 WPR < -50 --> 매도 신호


Williams %R 전략 청사진

여기에서는 언급된 모든 전략을 수행하는 거래 시스템을 만들기 위한 단계별 청사진을 설계합니다. 이 단계는 조직화된 단계를 통해 수행해야 할 작업을 이해하는 데 도움이 되므로 거래 시스템을 생성하는 과정에서 매우 중요한 단계입니다.

  • 전략 1: 윌리엄스 %R - OB 및 OS:

이 전략을 기반으로 Expert Advisor는 매 틱마다 3개의 값을 확인하고 비교하여 이러한 값들 중 하나의 위치를 결정하기 위해 각 값의 비교를 수행해야 합니다. 여기서 각각의 값은 현재의 WPR, -80 및 -20 레벨입니다. 우리는 이러한 거래 시스템을 만들기 위한 단계별 청사진을 설계할 것입니다. EA는 현재의 WPR 값이 -80 레벨보다 낮은 경우에 이전의 값과 비교 후에 "과매도"라는 설명을 차트에 생성할지를 결정할 것입니다. 다른 시나리오에서는 현재 WPR 값이 -20 레벨보다 크면 EA는 "과매수"라는 표시를 차트에 생성해야 합니다.

다음은 이 전략의 청사진입니다.

 Williams_R - OB _ OS 청사진

 

  • 전략 2: 윌리엄스 %R - 교차:

이 전략을 기반으로 하면 우리는 이전 WPR, 현재 WPR 및 -50의 세 가지 값을 확인하여 매수 또는 매도 신호를 생성하는 프로그램이 필요합니다. 이 신호는 -50 레벨에서 이전의 WPR 값과 현재의 WPR 값의 위치를 결정하기 위해서 EA가 이들 세 값에 대한 모든 틱을 확인한 후 비교하여 생성됩니다. 이전 WPR이 -50보다 낮고 현재 WPR 값이 -50보다 큰 경우 차트에 주석으로 매수 신호, Williams %R 값 및 Williams %R의 이전 값을 생성합니다. 이전 WPR이 -50보다 크고 현재 WPR이 -50보다 낮은 경우에는 매도 신호, Williams %R 값 및 이전 Williams %R 값이 차트에 주석으로 표시됩니다.

다음은 이 전략의 청사진을 도표로 나타낸 것입니다.

 Williams_R - 크로스오버 청사진

  • 전략 3: 윌리엄스 %R 및 MA:

우리는 이 전략에 따라 다른 조건이나 다른 측정을 기반으로 매수 또는 매도 신호를 생성하는 거래 시스템을 만들어야 합니다. 우리는 Ask, Bid, WPR 값, 이동 평균 및 -50 레벨을 지속적으로 확인하고 신호를 생성할 수 있는 간단한 Expert Advisor를 만들어야 합니다. 만약 Ask 가격이 이동 평균보다 크고 WPR 값이 -50 레벨보다 큰 것을 EA가 발견하게 되면 EA는 매수 신호, Williams %R 값 및 지수 이동 평균 값을 차트에 주석으로 나타나게 해야 합니다. 다른 케이스는 다음과 같습니다. Bid가 이동 평균보다 낮고 WPR이 -50 레벨보다 낮을 때에는 매도 신호, Williams %R 값 및 지수 이동 평균 값을 차트에 주석으로 나타나게 해야 합니다

다음은 이러한 거래 시스템을 만들기 위한 다이어그램 청사진입니다.

 Williams_R _ MA 청사진

Williams %R 거래 시스템

이 부분에서는 이 기사에서 가장 흥미로운 부분인 앞에서 살펴본 각각의 전략을 수행하는 거래 시스템을 만드는 방법을 배웁니다. 먼저 모든 전략의 기반으로 사용되는 윌리엄스의 %R 값을 차트에 주석을 생성하는 간단한 거래 시스템을 만들 것입니다.

다음은 이 거래 시스템의 코드를 작성하는 방법입니다:

  • 분수로 값을 나타내는 "double" 함수를 사용하여 배열을 만듭니다.
double WPArray[];
  • bool 값을 반환하는, true 또는 false를 반환하는 "ArraySetAsSeries" 함수를 사용하여 현재 데이터에서 이 생성된 배열을 정렬합니다. 이 함수의 매개변수는 array[]와 flag입니다.
ArraySetAsSeries(WPArray,true);
  • Williams의 %R 정의의 WPDef에 대한 정수 변수를 생성한 후 "iWPR"을 사용하여 Williams의 %R 속성을 정의합니다. "iWPR" 함수는 Larry Williams의 %R의 핸들을 반환합니다. 매개변수는 심볼, 기간 및 평균화하는 기간입니다.
    • (_Symbol)은 현재 사용되는 심볼에 적용하여 사용할 것이고 (_Period)는 현재 사용되는 기간에 적용하여 사용할 것입니다.
int WPDef = iWPR(_Symbol,_Period,14);
  • 복사된 데이터의 개수를 반환하거나 오류가 있는 경우 -1을 반환하는 "CopyBuffer" 함수를 사용하여 생성된 배열에 가격 데이터를 복사합니다. 매개 변수는 지표 핸들, 지표 버퍼 시간, 시작 위치, 복사할 양 및 복사할 대상 배열입니다.
CopyBuffer(WPDef,0,0,3,WPArray);
  • 현재 Williams의 %R 값에 대해 WPValue의 double 변수를 생성한 후 "NormalizeDouble" 함수를 사용하여 현재 데이터의 Williams의 %R 값을 가져옵니다. "NormalizeDouble" 함수의 매개변수는 정규화된 숫자와 소수점 이하 자릿수입니다.
double WPVal = NormalizeDouble(WPArray[0],2);
  • "Comment" 기능을 사용하여 Williams의 %R 값을 차트에 주석으로 생성합니다.
Comment("Williams' %R Value is",WPVal);

결과적으로 이전 거래 시스템의 전체 코드 라인을 보려면 다음과 같은 전체 코드를 통해 확인할 수 있습니다:

//+------------------------------------------------------------------+
//|                                            Simple Williams%R.mq5 |
//|                                  Copyright 2022, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2022, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
void OnTick()
  {
   double WPArray[];

   ArraySetAsSeries(WPArray,true);

   int WPDef = iWPR(_Symbol,_Period,14);

   CopyBuffer(WPDef,0,0,3,WPArray);

   double WPVal = NormalizeDouble(WPArray[0],2);

   Comment("Williams' %R Value is",WPVal);

  }
//+------------------------------------------------------------------+

이 코드를 컴파일한 후 Navigator 창의 "Expert Advisors" 폴더 파일에서 다음 그림과 같은 Expert Advisor를 찾을 수 있습니다.

WPR nav1

원하는 차트에 드래그 앤 드롭 하여 실행하면 다음과 같은 거래 시스템 창이 나타납니다.

단순 W_R 창

확인을 누르면 파일이 차트에 첨부됩니다:

 단순 W_R 부착

다음은 테스트에서 이 거래 시스템에 의해 생성된 신호의 예입니다.

 단순 W_R 신호

이전 예에서 볼 수 있듯이 EA는 현재 WPR 값을 차트의 왼쪽 상단의 모서리에 주석으로 신호를 생성했습니다. 생성된 신호가 MetaTrader 5의 내장 지표와 동일한지 확인하는 것은 다음 그림과 같이 확인할 수 있습니다.

단순 W_R - 동일한 신호

앞의 그림에서 볼 수 있듯이 EA가 적용되어 있고 지표가 삽입되어 있고 둘 다 동일한 신호 또는 값을 생성했습니다. 오른쪽 상단에는 Simple Williams %R EA가 연결된 것을 보여주고 왼쪽 상단에는 내장된 지표의 값과 동일한 -78.15이 주석으로 생성된 신호를 확인할 수 있습니다. 내장 지표는 하단 창의 차트에 삽입되고 왼쪽의 WPR 라인 위에 동일한 값이 나타납니다. 

  • 전략 1: Williams%R - OB 및 OS:

이 전략을 기반으로 하면 우리는 가격이 과매수 또는 과매도 영역에 도달하면 자동으로 알려주는 신호를 생성할 수 있는 거래 시스템을 만들어야 합니다. 다음은 이 전략을 실행하는 거래 시스템을 만드는 전체 코드입니다:

//+------------------------------------------------------------------+
//|                                         Williams%R - OB & OS.mq5 |
//|                                  Copyright 2022, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2022, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
void OnTick()
  {
   double WPArray[];
   
   ArraySetAsSeries(WPArray,true);
   
   int WPDef = iWPR(_Symbol,_Period,14);
   
   CopyBuffer(WPDef,0,0,3,WPArray);
   
   double WPVal = NormalizeDouble(WPArray[0],2);
   
   if(WPVal<-80)
   {
      Comment("Over Sold");
   }
   
   if(WPVal>-20)
   {
      Comment("Over Bought");
   }
   
  }
//+------------------------------------------------------------------+

이 코드의 차이점은 다음과 같습니다.

과매도 조건:

   if(WPVal<-80)
   {
      Comment("Over Sold");
   }

과매수 조건:

   if(WPVal>-20)
   {
      Comment("Over Bought");
   }

이 코드를 컴파일한 후 MetaTrader 5에서 실행하여 자동으로 신호를 생성하려면 다음과 같은 단계를 수행합니다

네비게이터 창에서 EA 파일을 찾습니다.

WPR nav3

신호를 받고자 하는 차트에 끌어다 놓습니다. 다음은 해당 창에 대한 것입니다.

Williams_R - OB_ OS 창

"알고 거래 허용" 옆에 체크 --> "확인"을 누릅니다. 차트에 첨부된 것을 찾으십시오.

Williams_R - OB _ OS 부착

다음은 테스트에서 이 전략을 기반으로 신호를 생성한 예입니다.

과매수:

Williams_R - OB_OS - OB 신호

앞에서 살펴본 바와 같이 WPR 값이 -20 레벨 이상이므로 EA는 과매수 신호를 생성했습니다. 이는 가격이 14개 기간 동안 고점 근처에서 거래되고 있다는 것을 의미합니다.

과매도:

Williams_R - OB_OS - OS 신호

앞에서 살펴본 바와 같이 WPR이 -80 레벨 아래에 있으며 이는 가격이 저점인 근처에서 거래되고 있음을 의미하므로 여기서의 신호는 과매도입니다.

  • 전략 2: Williams%R - 교차:

이 전략에 따르면 우리는 교차를 기반으로 매수 및 매도 신호를 생성하는 거래 시스템을 만들어야 합니다. 다음은 이 전략을 실행하는 거래 시스템을 만드는 전체 코드입니다:

//+------------------------------------------------------------------+
//|                                       Williams%R - Crossover.mq5 |
//|                                  Copyright 2022, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2022, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
void OnTick()
  {
   double WPArray[];

   ArraySetAsSeries(WPArray,true);

   int WPDef = iWPR(_Symbol,_Period,14);

   CopyBuffer(WPDef,0,0,3,WPArray);

   double WPVal = NormalizeDouble(WPArray[0],2);
   double WPPrevVal = NormalizeDouble(WPArray[1],2);

   if(WPPrevVal<-50 && WPVal>-50)
     {
      Comment("Buy signal","\n",
              "Williams % R Value is",WPVal,"\n",
              "Williams % R Previous Value is",WPPrevVal);
     }

   if(WPPrevVal>-50 && WPVal<-50)
     {
      Comment("Sell signal","\n",
              "Williams % R Value is",WPVal,"\n",
              "Williams % R Previous Value is",WPPrevVal);
     }

  }
//+------------------------------------------------------------------+

이 코드의 차이점은 다음과 같습니다.

이전 Williams의 %R 값에 대해 WPrevValue인 double 변수를 생성한 후 "NormalizeDouble" 함수를 사용하여 이전 Williams의 %R 값을 가져옵니다. "NormalizeDouble" 함수의 매개변수는 정규화된 숫자와 소수점 뒤의 자릿수입니다.

double WPPrevVal = NormalizeDouble(WPArray[1],2);

Williams%R의 조건 - 교차 전략.

매수 신호의 경우:

   if(WPPrevVal<-50 && WPVal>-50)
     {
      Comment("Buy signal","\n",
              "Williams % R Value is",WPVal,"\n",
              "Williams % R Previous Value is",WPPrevVal);
     }

매도 신호의 경우:

   if(WPPrevVal>-50 && WPVal<-50)
     {
      Comment("Sell signal","\n",
              "Williams % R Value is",WPVal,"\n",
              "Williams % R Previous Value is",WPPrevVal);
     }

이 코드를 컴파일하면 다음 그림과 같이 탐색기 창에서 찾을 수 있습니다.

WPR nav2

이 전략의 EA를 두 번째 옵션으로 더블 클릭하여 원하는 차트에서 실행하면 EA 창이 나타납니다.

Williams_R - 교차 창

“확인”을 누르면 파일이 차트에 첨부됩니다:

Williams_R - 크로스오버 부착

다음은 테스트에서 이 전략에 따라 생성된 신호의 예입니다.

매수 신호:

Williams_R - 교차 신호 - 매수 신호

차트에서 볼 수 있듯이 EA는 매수 신호, Williams %R 값, 그리고 Williams %R 값을 차트 왼쪽 상단에 주석으로 생성했습니다. 이 전략의 조건이 충족되었기 때문입니다. 이전 WPR = -55.93으로 -50 레벨보다 낮고 현재 WPR = -41.09로 -50 레벨보다 큽니다.

매도 신호:

Williams_R - 교차 신호 - 매도 신호

 

이 전략을 기반으로 한 매도 신호의 경우 앞서 예에서 볼 수 있듯이 전략이 충족되면 차트의 왼쪽 상단에 매도 신호, 현재 WPR 및 이전 WPR 값을 주석으로 나타내는 것입니다.

이전 WPR 값 = -50 레벨보다 큰 -29.95이고 현재 WPR = -50 레벨보다 낮은 -58.8입니다.

  • 전략 3: 윌리엄스%R & MA:

다음은 이 전략을 실행하는 거래 시스템을 만드는 전체 코드입니다:

//+------------------------------------------------------------------+
//|                                              Williams%R & MA.mq5 |
//|                                  Copyright 2022, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2022, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
void OnTick()
  {
   double WPArray[];
   double MAArray[];

   double Ask = NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_ASK),_Digits);
   double Bid = NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_BID),_Digits);

   ArraySetAsSeries(WPArray,true);
   ArraySetAsSeries(MAArray,true);

   int WPDef = iWPR(_Symbol,_Period,14);
   int MADef = iMA(_Symbol,_Period,100,0,MODE_EMA,PRICE_CLOSE);

   CopyBuffer(WPDef,0,0,3,WPArray);
   CopyBuffer(MADef,0,0,3,MAArray);

   double WPVal = NormalizeDouble(WPArray[0],2);
   double MAVal = NormalizeDouble(MAArray[0],2);

   if(Ask>MAVal && WPVal>-50)
     {
      Comment("Buy signal","\n",
              "Williams % R Value is",WPVal,"\n",
              "EMA Value is",MAVal);
     }

   if(Bid<MAVal && WPVal<-50)
     {
      Comment("Sell signal","\n",
              "Williams % R Value is",WPVal,"\n",
              "EMA Value is",MAVal);
     }

  }
//+------------------------------------------------------------------+

이 코드의 차이점은 다음과 같습니다.

WP 및 MA용 배열 생성.

double WPArray[];
double MAArray[];

double 변수를 생성한 후 ask 및 bid 값을 가져옵니다.

double Ask = NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_ASK),_Digits);
double Bid = NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_BID),_Digits);

현재 데이터에서 이 생성된 배열을 정렬합니다.

ArraySetAsSeries(WPArray,true);
ArraySetAsSeries(MAArray,true);

iWPR 함수를 사용하여 Williams의 PR을 정의하고 iMA 함수를 사용하여 이동 평균을 정의합니다. 앞에서 언급한 iWPR의 매개변수. iMA의 매개 변수는 심볼명, 기간, 평균화 기간, 수평 쉬프트, 평활 유형 및 가격 유형입니다.

int WPDef = iWPR(_Symbol,_Period,14);
int MADef = iMA(_Symbol,_Period,100,0,MODE_EMA,PRICE_CLOSE);

"CopyBuffer" 기능을 사용하여 생성된 배열에 가격 데이터를 복사합니다.

CopyBuffer(WPDef,0,0,3,WPArray);
CopyBuffer(MADef,0,0,3,MAArray);

현재의 윌리엄스 RP 및 이동 평균 값을 가져옵니다.

double WPVal = NormalizeDouble(WPArray[0],2);
double MAVal = NormalizeDouble(MAArray[0],2);

전략의 조건.

매수 신호인 경우:

   if(Ask>MAVal && WPVal>-50)
     {
      Comment("Buy signal","\n",
              "Williams % R Value is",WPVal,"\n",
              "EMA Value is",MAVal);
     }

매도 시그널의 경우

   if(Bid<MAVal && WPVal<-50)
     {
      Comment("Sell signal","\n",
              "Williams % R Value is",WPVal,"\n",
              "EMA Value is",MAVal);
     }

이 코드를 컴파일하면 MetaTrader 5의 네비게이터 창에서 다음과 같은 EA를 찾을 수 있습니다.

WPR nav4

원하는 차트에 끌어다 놓으면 다음과 같은 창이 나타납니다.

 Williams_R _ MA 창

"알고 거래 허용" 체크 후 "확인"을 누르면 다음과 같이 EA가 차트에 첨부됩니다.

 Williams_R _ MA 부착

다음은 이 전략을 기반으로 생성된 신호의 예입니다.

매수 신호인 경우:

 Williams_R _ MA - 구매

차트의 왼쪽 상단 모서리에 생성된 신호를 찾을 수 있습니다.

  • 매수 신호 
  • WPR 값
  • EMA 값

조건이 충족됩니다. Ask는 MA보다 크고 WPR은 -50보다 큽니다.

매도 신호인 경우:

 Williams_R _ MA - 매도

차트의 왼쪽 상단 모서리에 생성된 신호를 찾을 수 있습니다.

  • 매도 신호 
  • WPR 값
  • EMA 값

조건이 충족됩니다. bid는 MA보다 낮고 WPR은 -50 레벨보다 낮습니다.


결론

Williams의 PR은 우리가 살펴본 바와 같이 모멘텀을 측정하는 가장 대중적인 지표 중 하나로 볼 수 있는 중요한 기술적 도구입니다. 이 지표는 또 다른 기술 지표와 결합할 수도 있습니다. 리는 기술적 분석의 가장 중요한 이점 중 하나입니다. 한가지 이상의 관점을 명확하게 할 수 있는 둘 이상의 도구를 사용하면 도구를 더욱 잘 이해하게 되고 적절한 결정을 내리는 데에 도움이 되기 때문입니다.

이 기사를 통해 Williams의 PR 기술 지표에 대해 많은 주제를 배웠습니다. 그것이 무엇인지, 무엇을 측정하는지, 우리의 이해를 깊게 하기 위해 예제를 통해 적용하였고 지표를 계산하는 방법을 배우고 삽입하는 방법을 배웠습니다.

우리는 또한 세 가지 간단한 전략을 배웠습니다. 또한 그 뒤에 있는 기본 개념을 기반으로 간단한 전략을 통해지표를 어떻게 사용할 수 있는지에 대해 배웠습니다.

  • Williams %R - OB 및 OS: 가격이 이 영역에 도달하면 과매수 및 과매도 신호를 생성합니다.
  • Williams %R - 교차: 구체적이고 의미 있는 조건에 따라 매수 및 매도 신호를 생성합니다.
  • Williams %R - MA: WPR 및 지수 이동 평균의 판독값을 기반으로 매수 및 매도 신호를 생성합니다.
그런 다음 언급된 각 전략과 관련한 단계별 청사진을 설계하여 각 전략을 수행하는 거래 시스템을 만드는 데 도움이 되도록 하였습니다. 그런 다음 우리는 MQL5를 사용하여 각 전략을 수행하는 거래 시스템을 작성하였고 MetaTrader 5 거래 터미널에서 이를 사용하여 자동으로 정확하게 신호를 생성하도록 하였습니다.

이 기사에서 배운 모든 것은 프로그래밍을 사용하여 거래를 할 수 있는 방법과 관련한 간단한 예입니다. 알고리즘 거래는 원활하고 쉽고 효과적으로 거래하는 데 도움이 되는 놀라운 도구입니다. 문자 그대로 여러분이 잠자는 동안 돈을 벌어주는 매우 유용한 도구가 될 수 있습니다. 저는 모든 사람이 이 도구를 통해 수익을 극대화할 확률을 높이는 방식을 배우거나 생각하기를 권장합니다.

모든 사람에게 공통적으로 적합한 것은 없으며 저에게는 적합한 것이 귀하에게는 적합하지 않을 수 있기 때문에 실제 계정에서 사용하기 전에 모든 전략을 테스트해야 한다는 것을 여기서 다시 한번 강조합니다. 이 기사의 주요 목적은 교육의 목적이므로 여러분은 여러분의 전략을 최적화해야 합니다. 여기서 배운 내용을 여러분 스스로 적용해보았으면 좋겠습니다. 스스로 적용해 보는 것은 배운 내용을 이해하는 데 도움이 될 것이기 때문입니다. 또한 이 기사가 더 나은 결과를 얻기 위해 여러분의 거래를 향상시키는 데 도움이 되기를 바랍니다. 가장 인기 있는 기술 지표로 거래 시스템을 설계하는 방법에 대한 유사한 기사를 읽고 싶다면 이 시리즈의 이전 기사들을 읽어 보시기 바랍니다. 기사들이 여러분에게 유용하기를 바랍니다.

MetaQuotes 소프트웨어 사를 통해 영어가 번역됨
원본 기고글: https://www.mql5.com/en/articles/11142

CCI 지표. 업그레이드 및 새로운 기능 CCI 지표. 업그레이드 및 새로운 기능
이 기사에서는 CCI 지표를 업그레이드 하는 가능성에 대해 알아봅니다. 또한 저는 지표의 수정을 제시할 것입니다.
일목균형 지표로 트레이딩 시스템을 설계하는 방법 알아보기 일목균형 지표로 트레이딩 시스템을 설계하는 방법 알아보기
다음은 가장 인기 있는 지표인 거래 시스템을 설계하는 방법에 대한 시리즈의 새로운 기사입니다. 일목균형 지표에 대해 자세히 설명하고 이 지표로 거래 시스템을 설계하는 방법에 대해 설명합니다.
데이터 과학 및 머신 러닝(파트 06): 경사 하강법(Gradient Descent) 데이터 과학 및 머신 러닝(파트 06): 경사 하강법(Gradient Descent)
경사 하강법은 신경망과 여러가지 머신러닝 알고리즘을 훈련하는 데 중요한 역할을 합니다. 경사 하강법은 인상적인 작업을 하면서도 빠르고 지능적인 알고리즘입니다. 많은 데이터 과학자들이 잘못 알고 있기도 한데 경사 하강법이 무엇인지 살펴보겠습니다.
Expert Advisor 개발 기초부터 (파트 15): 웹에서 데이터 액세스 하기(I) Expert Advisor 개발 기초부터 (파트 15): 웹에서 데이터 액세스 하기(I)
MetaTrader 5를 통해 온라인 데이터에 어떻게 액세스할 수 있을까요? 웹에는 엄청난 양의 정보를 제공하는 많은 웹사이트가 있습니다. 여러분이 알아야 할 것은 어디에서 이 정보를 가장 잘 사용할 수 있을까 하는 점입니다.