English Русский 中文 Español Deutsch 日本語 Português Français Italiano Türkçe
Envelopes로 트레이딩 시스템을 설계하는 방법을 배우보세요

Envelopes로 트레이딩 시스템을 설계하는 방법을 배우보세요

MetaTrader 5트레이딩 | 27 6월 2022, 17:19
227 0
Mohamed Abdelmaaboud
Mohamed Abdelmaaboud

소개

이전 기사는 가장 인기 있는 지표 중 하나이면서 밴드 거래에 적합한 - 볼린저 밴드 - 에 관한 글이었습니다. 기사는 다음의 링크에서 볼 수 있습니다. Bollinger Bands의 거래 시스템 설계 방법 알아보기

글은 볼린저 밴드와 관련한 글이었는데 밴드 거래의 개념에는 우리가 사용할 수 있는 다양한 방법이 있습니다. 각각의 방법은 계산과 전략에 따라 접근 방식이 다르지만 공통점은 밴드로 트레이딩을 한다는 개념입니다.

이제 밴드 거래 개념의 또 다른 하나인 Envelopes 지표에 대해 알아보겠습니다. 지표는 가격과 이동 평균을 둘러싸는 두 개의 밴드로 표시됩니다. 이 기사에서는 다음의 주제를 포함하여 몇 가지 좀 더 자세한 내용에 대해 알아볼 것입니다.

상기의 내용을 통해 이 지표에 대해 깊이 이해할 수 있도록 설명할 것입니다. 정보는 더 나은 결과를 생성할 수 있도록 더 나은 트레이딩 계획 또는 전략을 개발하는 데 도움이 되어야 합니다. 따라서 엔벨롭스 정의를 통해 엔벨롭스 지표의 개념에 대해 자세히 알려 드리겠습니다. 개념을 더 잘 이해하기 위해 계산 방법을 알아 볼 것입니다. 그런 다음 거래 결과를 향상시킬 전략을 개발하려고 노력할 것입니다.

엔벨롭스 전략 파트에서는 우선 몇 가지 간단한 기본 전략을 공유할 것이고 이는 여러분들로 하여금 더 많은 전략에 눈을 뜨게 해서 훨씬 더 좋은 결과를 얻는데 도움이 되도록 할 것입니다. 그러면 제가 매우 흥미로운 주제로 생각하는 '엔벨롭스 거래 전략 시스템 초본' 부분에서 엔벨롭스 지표를 사용한 전략을 사용하여 거래 시스템을 만드는 방법을 공유하겠습니다. 이후 '엔벨롭스 트레이딩 시스템' 부분에서는 MetaTrader 5에서 사용할 수 있는 MQL5 언어로 작성한 엔벨롭스 지표 전략을 기반으로 거래 시스템을 설계하는 방법을 공유하겠습니다.

이 기사를 통해 여러분들이 여러분들만의 거래 시스템을 개발하는 데 도움이 되고 거래 결과를 개선하는 데 도움이 되는 인사이트를 얻을 수 있기를 바랍니다.

중요! 이 기사의 모든 코드는 MQL5로 작성되었습니다. 이 코드는 MetaTrader 5에서 실행할 수 있습니다. 따라서 애플리케이션을 실행하려면 MetaTrader 5가 필요합니다. 아직 MetaTrader 5 터미널이 없는 경우 다음 링크에서 다운로드할 수 있습니다.https:// www.metatrader5.com/en/download

다음 그림은 MetaTrader 5의 창을 표시합니다.

MT5 플랫폼

MetaQuotes Language Editor(MetaEditor)를 열어 코드를 작성하려면 다음의 그림이 그 방법을 보여줍니다.

메타에디터 오프닝 1

메타에디터를 여는 또 다른 방법:

메타에디터 오프닝 2

또는 MetaTrader 5 창이 열려 있는 동안 F4 키를 누를 수 있습니다.

그러면 다음 창이 열립니다.

메타에디터 창

새 파일을 여는 방법은 다음과 같습니다.

메타에디터 창


메타에디터 - 새 파일


  1. Expert Advisor를 작성하려면 새 파일을 엽니다.
  2. 사용자 지정 지표를 작성하려면 새 파일을 엽니다.
  3. 새 파일을 열어 스크립트 작성

자세한 내용은 저의 이전 기사에서 찾아 볼 수 있습니다. 알고리즘 거래 시스템을 설계하는 이유와 방법 알아보기

면책: 이 기사의 내용은 다른 어떤 목적도 아닌 교육의 목적으로만 만들어졌습니다. 따라서 이 글의 내용이 어떠한 결과도 보장하지 않으므로 이 글의 내용에 근거하여 취하는 모든 행동에 대한 책임은 귀하에게 있습니다.

이제 엔벨롭스 지표가 우리의 거래에 어떻게 도움이 될 수 있는지 알아보기 위해 엔벨롭스 지표를 연구하는 여정을 시작하겠습니다.


엔벨롭스 정의

엔벨롭스 지표는 밴드 거래를 하는 방법 중 하나이며 앞에서 언급했듯이 Bollinger Bands, Channels, Envelopes 등과 같이 밴드 거래 방법에는 여러 가지가 있습니다.

간단히 말해서, 엔벨롭스는 이동 평균을 특정의 고정 비율로 둘러싸는 두 개의 밴드라고 말할 수 있습니다. 일반적으로 밴드는 가격을 둘러싸게 됩니다. 이 엔벨롭스는 추세의 움직임을 필터링하고 횡보 중에도 사용할 수 있습니다.

때때로 트렌드가 진행되는 동안 잘못된 브레이크아웃이나 윕소스와 같은 반대 방향의 움직임에 직면하게 됩니다. 이러한 움직임은 거짓 신호를 생성할 수 있으며 그 후 상황은 반대의 시나리오로 돌아갑니다. 예를 들어, 가격이 이동 평균을 상향 돌파하면 상향 움직임의 신호로 작용합니다. 그런 다음 이동 평균을 하향 조정하여 교차합니다. 즉, 이전 상향 교차와 반대입니다. 어쨌든 이전 기사에서 이동 평균을 사용 방법 및 이를 기반으로 하는 트레이딩 시스템을 만드는 방법에 대한 자세한 내용을 읽을 수 있습니다. 다양한 이동 평균 시스템을 설계하는 방법 알아보기

교차 MA가 거짓 돌파을 교차

위 그림에서 가격이 위에서 이동평균선을 교차하여 내려온 후 방향을 바꾸고는 다시 위로 이동합니다.

횡보하는 경우 매수세와 매도세 사이에 균형을 이루는 경우나 명백한 추세가 없는 경우 등의 움직임에서 효과를 볼 수 있습니다.

이들 경우에서 엔벨롭스 지표는 추세 중 가격의 움직임에 대한 필터가 될 수 있으므로 유용할 수 있습니다. 가격이 이동 평균을 위쪽으로 교차하면 가격이 엔벨롭스 지표의 상단 밴드 위로 교차할 때까지 기다립니다.

MA 크로스 엔벨롭스 없는 MA 크로스


위 그림은 앞에 언급한 움직임을 나타냅니다. 위 그림에서 볼 수 있듯이 가격은 이동 평균을 위쪽으로 교차했지만 엔벨롭스 지표의 상단 밴드를 교차하지 않았습니다. 따라서 우리는 교차는 일어났으나 아무런 액션을 취하지 않았으며 가격이 다시 하락했음을 볼 수 있습니다.

이 지점에서 저는 기술적 분석에 대한 흥미로운 점을 언급해야 할 필요가 있습니다. 기술적 분석은 더 나은 결과를 내기 위해 결합할 수 있는 많은 방법과 전략이 있기 때문입니다.

앞서 말씀드린 것처럼 엔벨롭스는 가격을 둘러싸고 있는 두 개의 밴드로 밴드가 넓을수록 밴드에 닿을 확률이 낮아지고 밴드가 좁을수록 닿을 확률이 높아집니다.

엔벨롭스 지표를 어떻게 계산할 수 있을까요? 엔벨롭스는 이동 평균에서 일정한 비율로 설정됩니다. 이 비율은 가격의 움직임, 시간 프레임 및 사용자의 전략에 따라 다릅니다.

엔벨롭스 계산하려면:

  1. 이동 평균 계산
  2. 엔벨롭스의 % = 이동 평균 * %
  3. 엔벨롭스의 상단 밴드 = 이동 평균 + 이동 평균에 설정된 %
  4. 엔벨롭스의 하단 밴드 = 이동 평균 - 이동 평균에 설정된 %

이를 수행하는 방법의 예를 살펴보겠습니다.

14일 동안의 가격에 대해 다음 데이터가 있는 경우:

계산 예

환경 계산

  • 기본 설정에 따라 엔벨롭스의 %를 계산하십시오.

환경 계산 2

  • 엔벨롭스의 상단 밴드 계산

환경 계산 3

  • 엔벨롭스의 하단 밴드 계산

환경 계산 4

이 계산은 매 틱마다 수행되며 상단 밴드의 값은 가격 위에 표시되고 하단 밴드의 값은 가격 아래에 표시됩니다.

그러나 수동으로 할 필요는 없습니다. 이들은 플랫폼에 이미 내장되어 있고 우리가 선택하기만 하면 차트에 그려질 것입니다. 다음 그림은 그 방법을 보여줍니다.

인디케이터 인서트


인디케이터 인서트 1


표시 매개변수


위의 그림은 엔벨롭스의 매개변수를 보여줍니다.

  1. 이동 평균의 기간을 결정합니다.
  2. 엔벨롭스의 %.
  3. 가격의 종류(close, Median price, Typical price 등)
  4. 차트의 엔벨롭스에 대해 이동할 값.
  5. 이동 평균 유형.
  6. 엔벨롭스 상단 밴드 색상.
  7. Envelopes 상단 밴드의 라인 스타일.
  8. Envelopes의 하단 밴드 색상.
  9. Envelopes 하단 밴드의 라인 스타일.

그리고 모든 매개변수를 결정하면 이후 다음 그림과 같이 지표가 차트에 나타납니다.

표시차트의 의 표시



엔벨롭스 전략

이 부분에서는 엔벨롭스 전략 중 일부를 여러분과 공유할 것입니다. 이러한 전략은 시장 상황이나 시장 방향에 따라 선택되어 사용됩니다.

우리 모두 알다시피 시장에는 상승 추세, 하락 추세 및 횡보 움직임이 있습니다. 시장 방향에 따라 우리는 시장의 움직임에서 이익을 얻을 수 있는 특정한 전략을 사용해야 합니다.

엔벨롭스를 다른 도구와 결합하고 이 결합을 기반으로 전략을 만들 수 있습니다. 이렇게 결합하여 사용하면 하나의 도구만 사용하는 것보다 더 나을 수 있습니다. 따라서 엔벨롭스 지표를 가격 패턴등과 같은 다른 도구와 결합할 수 있습니다: 예를 들어 엔벨롭스 지표에서 신호를 가져오고 가격 패턴에서 다른 신호 또는 확인 신호를 가져옵니다. 선택적으로 여러가지 기술적 분석 지표를 사용할 수 있습니다. 나는 이것이 더 나은 결과를 얻고 매매 결정을 개선하는 방식으로 하나 이상의 개념을 결합하는 기술 분석 거래의 놀라운 접근 방식이라고 생각합니다.

이에 따라 추세 진행 시 사용할 수 있는 전략과 횡보 시 사용할 수 있는 전략으로 구분합니다. 

    추세 시장 동안
      • 전략 1: 상승 추세

        상승 추세 시장에서 가격은 상승하며 저점과 고점을 높입니다. 이제 가격과 엔벨롭스 지표가 상승세 동안 어떻게 움직이는지 알아야 합니다.

        엔벨롭스 지표는 가격 기간의 평균인 이동 평균의 백분율이므로 상승 추세 동안 가격은 엔벨롭스 지표의 상단 밴드 위에서 움직입니다. 따라서 상승세 동안의 전략은 다음과 같습니다.

        가격이 엔벨롭스의 상단 밴드를 위쪽으로 교차할 때 매수 신호를 받은 다음 가격이 엔벨롭스의 하단 밴드를 아래쪽으로 교차할 때 수익을 얻습니다.

        • 가격 > 상위 밴드 = 매수
        • 가격 < 하한 밴드 = 수익 실현

        전략 1 - 상승세

        • 전략 2: 하락 추세

        하락 추세 시장에서 가격은 하락 추세를 따라 이동하여 고점을 낮추고 저점을 낮춥니다. 이제 가격과 엔벨롭스 지표가 하락세 동안 어떻게 작용할 것인지 알아 볼 차례입니다.

        하락세 동안 가격은 엔벨롭스 지표의 하단 밴드 아래로 이동합니다. 따라서 하락세 중 우리의 전략은 다음과 같습니다.

        가격이 엔벨롭스의 하단 밴드를 아래쪽으로 교차할 때 매도 신호로 삼고 이후 가격이 엔벨롭스 지표의 위쪽 밴드를 교차할 때 수익을 얻습니다.

        • 가격 < 하단 밴드 = 매도
        • 가격 > 상위 밴드 = 수익 실현

        전략 2 - 하락세


        • 전략 3: 횡보:

        횡보 시장중에 가격은 횡보 형태로 움직이며 동일한 고점과 동일한 저점을 만듭니다. 혹은 매수세와 매도세 사이에 균형이 있으며 어느 한쪽이 다른 한쪽을 지배하지 않는 형태입니다. 이는 균형을 보여줍니다. 이것이 횡보시의 또 다른 대응 방법이 없다는 것을 의미하지는 않습니다. 그러나 횡보란 상승 추세와 하락 추세를 제외한 모든 움직임 또는 형태라고 이해하는 것이 좋습니다. 이제 우리는 가격과 엔벨롭스 지표가 횡보하는 동안 어떻게 움직이는 것인지 알아야 합니다.

        횡보하는 동안 가격은 엔벨롭스 지표의 하단 밴드와 상단 밴드 사이에서 움직입니다. 따라서 횡보시의 우리의 전략은 다음과 같습니다.

        가격이 Envelopes의 하단 밴드에 닿으면 매수 신호를 받고 가격이 Envelopes의 상단 밴드에 닿으면 이익 실현을 합니다. 가격이 Envelopes의 상단 밴드에 닿으면 매도 신호를 받고 가격이 Envelopes의 하단 밴드에 닿으면 이익 실현을 합니다.

        • 가격 = 하단 밴드 = 구매
        • 가격 = 상단 밴드 = 이익 실현
        • 가격 = 상단 밴드 = 매도
        • 가격 = 하단 밴드 = 이익 실현

        전략 3 - 옆으로

        이러한 전략은 지표의 사용 방법을 이해하는 데 도움이 되도록 제공하는 것입니다. 이 전략은 적절하게 사용하도록 하기 위해 개선되어야 하고 추가적인 개발도 필요합니다. 여러분이 읽어보거나 배우는 모든 전략을 항상 철저히 테스트하십시오. 특히 교육 목적으로 만들어진 경우 테스트 및 결과를 확인하지 않고 사용하지 마십시오.


        엔벨롭스 거래 전략 시스템의 초본

        이 흥미로운 부분에서 우리는 우리가 정확히 무엇을 하고 싶은지 그리고 프로그램이 무엇을 하기를 원하는지를 결정하기 위한 기초로 삼은 전략을 설계할 것입니다. 한번 해 봅시다.

          추세 시장 동안
            • 전략 1: 상승 추세
                • 가격 > 상단 밴드 = 매수
                • 가격 < 하한 밴드 = 수익 실현

              따라서 이 전략의 초본은 다음과 같습니다.

              상승세 전략 청사진


                • 전략 2: 하향 추세:
                    • 가격 < 하단 밴드 = 매도
                    • 가격 > 상위 밴드 = 수익 실현

                  따라서 이 전략의 초본은 다음과 같습니다.

                  하락 추세 전략 청사진

                    횡보시,
                      • 전략 3: 횡보:
                          • 가격 = 하단 밴드 = 구매
                          • 가격 = 상단 밴드 = 이익 실현
                          • 가격 = 상단 밴드 = 매도
                          • 가격 = 하단 밴드 = 이익 실현
                        따라서 이 전략의 초본은 다음과 같습니다.

                        측면 전략 청사진



                        엔벨롭스 트레이딩 시스템

                        여기서는 EA(Expert Advisors) 프로그램의 형태로 MQL5를 사용하여 이러한 전략을 코딩하는 방법을 공유하겠습니다. 이를 통해 트레이딩 능력을 향상시키고 신호를 쉽게 자동으로 식별하는 데 도움이 될 수 있습니다. 이제 기본 엔벨롭스 EA를 코딩하는 방법을 공유하고 엔벨롭스 지표의 상단 및 하단의 값을 차트에 나타나게 하도록 프로그램에 명령을 하도록 하겠습니다.

                        엔벨롭스의 상단 및 하단 밴드의 값을 차트에 코멘트로 나타나도록 하는 프로그램을 설계해 보겠습니다:

                        //+------------------------------------------------------------------+
                        //|                                          Simple Envelopes EA.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"
                        
                        //+------------------------------------------------------------------+
                        //| Expert tick function                                             |
                        //+------------------------------------------------------------------+
                        void OnTick()
                          {
                           //Creating an array for price info
                           MqlRates PriceInfo[];
                           
                           //Sorting it from current data to old data
                           ArraySetAsSeries(PriceInfo, true);
                           
                           //Copy prices data to array
                           int Data = CopyRates(Symbol(), Period (), 0, Bars(Symbol(), Period()), PriceInfo);
                           
                           //Creating two arrays for prices of upper and lower band
                           double UpperBandArray[];
                           double LowerBandArray[];
                           
                           //Identify Envelopes indicator
                           int EnvelopesIdentify = iEnvelopes(_Symbol,_Period,14,0,MODE_SMA,PRICE_CLOSE,0.100);
                           
                           //Copying prices data to arrays
                           CopyBuffer(EnvelopesIdentify,0,0,1,UpperBandArray);
                           CopyBuffer(EnvelopesIdentify,1,0,1,LowerBandArray);
                           
                           //Calculation for the current data
                           double UpperBandValue=NormalizeDouble(UpperBandArray[0],6);
                           double LowerBandValue=NormalizeDouble(LowerBandArray[0],6);
                           
                           //Comments on the chart with values of Band of Envelopes
                           Comment("Envelopes Upper Band =",UpperBandValue,"\n" "Envelopes Lower Band =",LowerBandValue,"\n");
                           
                          }
                        //+------------------------------------------------------------------+
                        

                        MetaTrader 5의 코드는 다음 그림과 같이 실행할 수 있습니다.

                        기본 엔벨롭스 EA 인서트

                        차트에 파일을 드래그 앤 드롭하거나 파일을 더블 클릭하면 코드가 실행되고 다음과 같은 창이 열립니다.

                        1

                        이후 프로그램이 차트에 나타납니다.

                        11

                        MetaTrader 5 거래 터미널에서 코드를 실행하면 다음과 같은 차트와 신호가 표시됩니다.

                        기본 엔벨롭스 EA


                        엔벨롭스 지표에는 두 가지 밴드가 있으며 - 하단 밴드와 상단 밴드 - 차트에서 해당 값을 볼 수 있습니다.

                        이제 우리는 위에서 언급한 세 가지 전략을 코딩할 것입니다. 전략 1은 상승 추세에서 매수하여 이익을 취하는 것, 전략 2는 하락 추세에서 매도하고 이익을 취하는 것, 그리고 전략 3은 횡보시 하단 밴드에서 매수하고 상단 밴드에서 이익을 취하는 것 그리고 상단 밴드에서 매도하고 하단 밴드에서 수익을 보는 것입니다. 

                          추세 시장 동안
                            • 전략 1: 상승 추세:
                                • 가격 > 상단 밴드 = 매수
                                • 가격 < 하한 밴드 = 수익 실현

                              다음 코드는 이 전략을 실행하는 프로그램을 설계하는 것입니다.

                              //+------------------------------------------------------------------+
                              //|                                   Envelopes uptrend Strategy.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"
                              
                              //+------------------------------------------------------------------+
                              //| Expert tick function                                             |
                              //+------------------------------------------------------------------+
                              void OnTick()
                                {
                                 //Creating an array for price info
                                 MqlRates PriceInfo[];
                                 
                                 //Sorting it from current data to old data
                                 ArraySetAsSeries(PriceInfo, true);
                                 
                                 //Copy prices data to array
                                 int Data = CopyRates(Symbol(), Period (), 0, Bars(Symbol(), Period()), PriceInfo);
                                 
                                 //Creating two arrays for prices of upper and lower band
                                 double UpperBandArray[];
                                 double LowerBandArray[];
                                 
                                 //Identify Envelopes indicator
                                 int EnvelopesIdentify = iEnvelopes(_Symbol,_Period,14,0,MODE_SMA,PRICE_CLOSE,0.100);
                                 
                                 //Copying prices data to arrays
                                 CopyBuffer(EnvelopesIdentify,0,0,1,UpperBandArray);
                                 CopyBuffer(EnvelopesIdentify,1,0,1,LowerBandArray);
                                 
                                 //Calculation for the current data
                                 double UpperBandValue=NormalizeDouble(UpperBandArray[0],6);
                                 double LowerBandValue=NormalizeDouble(LowerBandArray[0],6);
                                 
                                 //Comment Buy signal on the chart or no signal
                                 if (PriceInfo[0].close > UpperBandValue)
                                 Comment("Envelopes Buy Signal");
                                 
                                 if (PriceInfo[0].close < LowerBandValue)
                                 Comment("Envelopes Take Profit or Stop Loss");
                                 
                                }
                              //+------------------------------------------------------------------+
                              

                              MetaTrader의 코드는 다음 그림과 같이 실행할 수 있습니다.

                              엔벨롭스 상승 추세 전략 삽입


                              차트에 파일을 드래그 앤 드롭하거나 파일을 더블 클릭하면 코드가 실행되고 다음과 같은 창이 열립니다.

                              2

                              이 후 프로그램이 차트에 첨부됩니다.

                              22

                              MetaTrader 5 거래 터미널에서 코드를 실행하면 다음과 같은 차트와 신호가 표시됩니다.

                              Envelopes 상승 추세 전략 - 매수 신호

                              이전 차트에서 볼 수 있듯이 프로그램은 가격이 상승 추세 동안 상단 밴드를 상향 돌파 할 때 매수 신호를 줍니다.

                              엔벨로프 상승세 전략 - 이익실현

                              이전 차트에서 볼 수 있듯이 프로그램은 가격이 하단 밴드 아래로 돌파할 때 수익 실현의 신호를 제공합니다.

                                • 전략 2: 하락 추세
                                    • 가격 < 하단 밴드 = 매도
                                    • 가격 > 상위 밴드 = 수익 실현

                                  다음 코드는 이 전략을 실행하는 프로그램을 설계하는 것입니다.

                                  //+------------------------------------------------------------------+
                                  //|                                 Envelopes Downtrend Strategy.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"
                                  
                                  //+------------------------------------------------------------------+
                                  //| Expert tick function                                             |
                                  //+------------------------------------------------------------------+
                                  void OnTick()
                                    {
                                     //Creating an array for price info
                                     MqlRates PriceInfo[];
                                     
                                     //Sorting it from current data to old data
                                     ArraySetAsSeries(PriceInfo, true);
                                     
                                     //Copy prices data to array
                                     int Data = CopyRates(Symbol(), Period (), 0, Bars(Symbol(), Period()), PriceInfo);
                                     
                                     //Creating two arrays for prices of upper and lower band
                                     double UpperBandArray[];
                                     double LowerBandArray[];
                                     
                                     //Identify Envelopes indicator
                                     int EnvelopesIdentify = iEnvelopes(_Symbol,_Period,14,0,MODE_SMA,PRICE_CLOSE,0.100);
                                     
                                     //Copying prices data to arrays
                                     CopyBuffer(EnvelopesIdentify,0,0,1,UpperBandArray);
                                     CopyBuffer(EnvelopesIdentify,1,0,1,LowerBandArray);
                                     
                                     //Calculation for the current data
                                     double UpperBandValue=NormalizeDouble(UpperBandArray[0],6);
                                     double LowerBandValue=NormalizeDouble(LowerBandArray[0],6);
                                     
                                     //Comment Buy signal on the chart or no signal
                                     if (PriceInfo[0].close < LowerBandValue)
                                     Comment("Envelopes Short Signal");
                                     
                                     if (PriceInfo[0].close > UpperBandValue)
                                     Comment("Envelopes Take Profit or Stop Loss");
                                     
                                    }
                                  //+------------------------------------------------------------------+

                                  다음 그림에서 볼 수 있는 것처럼 MetaTrader 5에서 코드를 실행할 수 있습니다.

                                  엔벨롭스 하락 추세 전략 삽입


                                  파일을 차트에 끌어다 놓거나 파일을 더블 클릭하면 코드가 실행되고 다음과 같은 창이 열립니다.

                                  3

                                  그 후 차트에 첨부된 프로그램을 볼 수 있습니다.

                                  33

                                  엔벨로프 하락세 전략 - 신호 매도

                                  이전 차트에서 볼 수 있듯이 프로그램은 하락 추세 동안 가격이 하단 밴드 아래로 교차할 때 매도 신호를 제공합니다.

                                  엔벨로프 하락세 전략 - 이익실현

                                  이전 차트에서 볼 수 있듯이 이 프로그램은 하락세 동안 가격이 상단 밴드를 교차할 때 수익실현의 신호를 제공합니다.

                                    • 전략 3: 횡보
                                  • 가격 = 하단 밴드 = 매수
                                  • 가격 = 상단 밴드 = 이익 실현
                                  다음 코드는 이 전략을 실행하는 프로그램을 설계하는 것입니다.
                                  //+------------------------------------------------------------------+
                                  //|                              Envelopes Sideways Buy Strategy.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"
                                  
                                  //+------------------------------------------------------------------+
                                  //| Expert tick function                                             |
                                  //+------------------------------------------------------------------+
                                  void OnTick()
                                    {
                                     //Creating an array for price info
                                     MqlRates PriceInfo[];
                                     
                                     //Sorting it from current data to old data
                                     ArraySetAsSeries(PriceInfo, true);
                                     
                                     //Copy prices data to array
                                     int Data = CopyRates(Symbol(), Period (), 0, Bars(Symbol(), Period()), PriceInfo);
                                     
                                     //Creating two arrays for prices of upper and lower band
                                     double UpperBandArray[];
                                     double LowerBandArray[];
                                     
                                     //Identify Envelopes indicator
                                     int EnvelopesIdentify = iEnvelopes(_Symbol,_Period,14,0,MODE_SMA,PRICE_CLOSE,0.150);
                                     
                                     //Copying prices data to arrays
                                     CopyBuffer(EnvelopesIdentify,0,0,1,UpperBandArray);
                                     CopyBuffer(EnvelopesIdentify,1,0,1,LowerBandArray);
                                     
                                     //Calculation for the current data
                                     double UpperBandValue=NormalizeDouble(UpperBandArray[0],6);
                                     double LowerBandValue=NormalizeDouble(LowerBandArray[0],6);
                                     
                                     //Comment Buy signal on the chart or no signal
                                     if (PriceInfo[0].close <= LowerBandValue)
                                     Comment("Envelopes Buy Signal");
                                     
                                     if (PriceInfo[0].close >= UpperBandValue)
                                     Comment("Envelopes Take Profit");
                                     
                                     if (PriceInfo[0].close > LowerBandValue
                                     &&  PriceInfo[0].close < UpperBandValue)
                                     Comment("No Signal"); 
                                    }
                                  //+------------------------------------------------------------------+
                                  
                                  MetaTrader 5의 코드는 다음 그림과 같이 실행할 수 있습니다.

                                  엔벨롭스 옆으로 매수 전략 삽입


                                  차트에 파일을 드래그 앤 드롭하거나 파일을 더블 클릭하면 코드가 실행되고 다음과 같은 창이 열립니다.

                                  4

                                  이후 프로그램이 차트에 나타납니다.

                                  44

                                  Envelopes Sideways Buy 전략 - 신호 없음

                                  MetaTrader 5 거래 터미널에서 코드를 실행하면 다음과 같은 차트와 신호가 표시됩니다.

                                  Envelopes Sideways Buy 전략 - 매수 신호

                                  이전 차트에서 볼 수 있듯이 프로그램은 가격이 횡보하는 동안 하단 밴드를 터치하면 매수 신호를 제공합니다.


                                  얻다 엔벨롭스 옆으로 매수 전략 - 이익을 얻다

                                  이전 차트에서 볼 수 있듯이 이 프로그램은 가격이 횡보하는 동안 상단 밴드를 터치 하면 수익 실현 신호를 제공합니다.

                                  • 가격 = 상단 밴드 = 매도
                                  • 가격 = 하단 밴드 = 이익 실현

                                  다음 코드는 이 전략을 실행하는 프로그램을 설계하는 것입니다.

                                  //+------------------------------------------------------------------+
                                  //|                            Envelopes Sideways Short Strategy.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"
                                  
                                  //+------------------------------------------------------------------+
                                  //| Expert tick function                                             |
                                  //+------------------------------------------------------------------+
                                  void OnTick()
                                    {
                                     //Creating an array for price info
                                     MqlRates PriceInfo[];
                                     
                                     //Sorting it from current data to old data
                                     ArraySetAsSeries(PriceInfo, true);
                                     
                                     //Copy prices data to array
                                     int Data = CopyRates(Symbol(), Period (), 0, Bars(Symbol(), Period()), PriceInfo);
                                     
                                     //Creating two arrays for prices of upper and lower band
                                     double UpperBandArray[];
                                     double LowerBandArray[];
                                     
                                     //Identify Envelopes indicator
                                     int EnvelopesIdentify = iEnvelopes(_Symbol,_Period,14,0,MODE_SMA,PRICE_CLOSE,0.150);
                                     
                                     //Copying prices data to arrays
                                     CopyBuffer(EnvelopesIdentify,0,0,1,UpperBandArray);
                                     CopyBuffer(EnvelopesIdentify,1,0,1,LowerBandArray);
                                     
                                     //Calculation for the current data
                                     double UpperBandValue=NormalizeDouble(UpperBandArray[0],6);
                                     double LowerBandValue=NormalizeDouble(LowerBandArray[0],6);
                                     
                                     //Comment Buy signal on the chart or no signal
                                     if (PriceInfo[0].close >= UpperBandValue)
                                     Comment("Envelopes Short Signal");
                                     
                                     if (PriceInfo[0].close <= LowerBandValue)
                                     Comment("Envelopes Take Profit");
                                    
                                     if (PriceInfo[0].close > LowerBandValue
                                     &&  PriceInfo[0].close < UpperBandValue)
                                     Comment("No Signal"); 
                                     
                                    }
                                  //+------------------------------------------------------------------+
                                  
                                  MetaTrader 5의 코드는 다음 그림과 같이 실행할 수 있습니다.

                                  엔벨롭스 옆으로 매도 전략 삽입


                                  차트에 파일을 드래그 앤 드롭하거나 파일을 더블 클릭하면 코드가 실행되고 다음과 같은 창이 열립니다.

                                  5

                                  이후 프로그램이 차트에 나타납니다.

                                  55

                                  엔벨롭스 옆으로 매도 전략 - 신호 없음

                                  이전 차트에서 볼 수 있듯이 프로그램은 가격이 횡보하는 동안 상단 밴드와 하단 밴드 사이에서 움직일 경우 아무런 신호를 주지 않습니다.


                                  엔벨롭스 옆으로 매도 전략 - 매도 신호

                                  이전 차트에서 볼 수 있듯이 횡보하는 동안 가격이 상단 밴드에 닿을 때 프로그램은 매도 신호를 제공합니다.

                                  엔벨롭스 옆으로 매도 전략 - 이익을 얻으십시오

                                  이전 차트에서 볼 수 있듯이 이 프로그램은 가격이 횡보하는 동안 하단 밴드에 닿을 때 수익 실현 신호를 제공합니다.


                                  결론

                                  이 기사에서는 엔벨롭스 지표를 통해 밴드 거래의 개념을 살펴보았습니다. 또한 밴드 거래의 이점과 추세나 횡보의 움직임 동안 엔벨롭스 지표를 사용할 수 있는 방법을 살펴보았습니다.

                                  우리는 또한 엔벨롭스가 어떻게 계산된 지표인지도 살펴보았습니다. 우리가 사용하는 지표의 내부를 이해하는 것은 항상 좋습니다. 엔벨롭스는 거래와 관련한 우리의 결정과 결과를 개선할 수 있는 방법에 대한 새로운 통찰력과 아이디어를 제공할 수 있는 지표 중 하나입니다.

                                  또한 추세 시장 상승 추세와 하락 추세 또는 횡보와 같은 다양한 시장 조건에서 지표를 사용할 수 있는 간단한 전략을 살펴보았습니다. 우리는 또한 이러한 전략을 쉽게 이해하고 코딩할 수 있도록 하기 위해 트레이딩 시스템의 초본을 설계하는 방법을 보았습니다.

                                  또한 이 기사에서는 엔벨롭스 기반 전략의 구현과 관련된 MQL5 언어의 코드를 제공합니다. 그리고 이 기사의 주요 목적은 코딩이 거래에서 우리에게 어떻게 도움이 되고 유용할 수 있는지 그리고 그것이 우리가 쉽고 효과적으로 거래하는 데 어떻게 도움이 될 수 있는지 배우는 것이라는 점을 다시 한 번 언급하고 싶습니다.

                                  주제에 대한 이해를 높이기 위해 여러분만의 코드를 작성하고 실행하는 것이 좋습니다. 이 기사가 귀하와 귀하의 거래에 유용하기를 바랍니다.


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

                                  Momentum 기반의 트레이딩 시스템을 설계하는 방법 알아보기 Momentum 기반의 트레이딩 시스템을 설계하는 방법 알아보기
                                  저는 이전 글에서 추세를 파악하는 것의 중요성에 대해 언급했습니다. 추세란 곧 가격의 방향이라는 점에서 말입니다. 이 기사에서 저는 가장 중요한 개념이자 지표 중 하나인 모멘텀 지표를 여러분과 공유할 것입니다. 이 모멘텀 지표를 기반으로 트레이딩 시스템을 설계하는 방법에 대해 공유하겠습니다.
                                  하나의 차트에 여러개의 지표 넣기(파트 03): 사용자 정의 개발 하나의 차트에 여러개의 지표 넣기(파트 03): 사용자 정의 개발
                                  오늘은 지표 시스템의 기능을 업데이트할 것입니다. "하나의 차트에 여러 개의 지표 넣기"의 이전 기사에서 우리는 차트 하위 창에서 두개 이상의 지표를 사용할 수 있도록 하게 하는 기본 코드 살펴 보았습니다. 그러나 살펴본 내용은 훨씬 더 큰 시스템을 시작하기 위한 기반에 불과합니다.
                                  CCI 기반의 트레이딩 시스템을 설계하는 방법 알아보기 CCI 기반의 트레이딩 시스템을 설계하는 방법 알아보기
                                  거래 시스템을 설계하는 방법을 배우기 위한 시리즈의 이 기사에서는 상품 채널 지수(CCI)를 제시하고 그 세부 사항을 설명하며 이 지표를 기반으로 거래 시스템을 만드는 방법을 공유합니다.
                                  하나의 차트에 여러 개의 지표 넣기(파트 02): 첫 번째 실험 하나의 차트에 여러 개의 지표 넣기(파트 02): 첫 번째 실험
                                  이전 기사 "하나의 차트에 여러 개의 지표 넣기"에서 저는 하나의 차트에 여러 개의 지표를 사용하는 방법과 관련한 개념과 기본적인 사항을 제시했습니다. 이 기사에서는 소스 코드를 제공하고 자세히 설명합니다.