추세 거래 전략은 항상 모든 진지한 거래자들 사이에서 가장 선호되는 전략이며, 추세 거래 지표의 왕은 항상 이동 평균이었습니다. 오늘날에는 다른 모든 기술 지표를 합친 것보다 이동 평균을 사용하여 더 많은 돈을 거래할 수 있습니다. 인기가 높은 이유는 트렌드를 가장 명확하게 파악할 수 있는 방법을 제공하기 때문입니다. 추세의 방향을 보여주고 변동을 완화하거나 완화합니다.
따라서 우리는 자동화된 이동 평균 전략을 개발하는 방법에 대한 예시 지표로 이동 평균에 관심을 돌립니다.
이 기사에서는 Expert Advisor 전략을 설계하고 다양한 유형의 이동 평균 크로스오버를 사용하여 자동 거래를 설정하는 방법을 배울 수 있습니다.
모든 지표 기반 전략과 마찬가지로 절대 원시 상태에서 가능한 전략으로 이동 평균 지표의 견고성을 테스트해야 합니다. 이는 가능한 외부 옵션과 내부 매개변수의 수를 최대한 제한하려고 한다는 의미입니다. 외부 옵션과 내부 매개변수를 제한하면 사전 정의된 기간 내에서 길이와 접근 방식 측면에서 최상의 이동 평균과 간단한 이동 평균 교차 전략을 구축하는 방법에 집중할 수 있습니다.
이 두 가지 개념에 대한 몇 가지 배경 정보를 제공하겠습니다.
제한된 외부 선택;
내부 매개변수를 제한합니다.
외부 옵션 제한
외부 옵션 제한은 지표의 견고성 테스트를 시작할 때 공통 전략을 사용하지 않음을 의미합니다. 이를 수정할 수 있는 추가 요소:
다른 지표와 결합하지 마십시오.
시작하기 위한 추가 팁은 없습니다.
추가 청산 기법 없음
(손절매 없음, 이익 실현, 손익분기점, 후행 중지 없음...
< p>간단한 정지 및 반대 신호의 역전).추가 필터링 기술이 없습니다(시간별 또는 일일 필터 없음, 거래량, 추세 또는 역추세 필터 없음).
추가 주문 관리 기술이 없습니다.
추가 자금 관리 기술이 없습니다.
지금 우리가 그것을 그대로 그대로 유지하는 이유는 모든 추가 추가 또는 지표, 진입 및 퇴출 기술, 필터, 자금 관리 공식의 조합이 모두 증가하기 때문입니다. 곡선 맞춤 및 표시기 오염 가능성.
과잉 최적화(곡선 피팅)는 특정 데이터를 기반으로 지표 매개변수를 조정하고 거래 시스템을 과도하게 최적화하여 좋아 보이는 것을 생성하는 프로세스입니다. 시스템에 더 많은 부품과 매개변수가 있을수록 실제 세계가 아닌 백테스트에서 시스템을 "수익성" 있게 만드는 정확한 숫자를 찾기 위해 컴퓨터가 최적화할 수 있는 매개변수 값이 더 많아집니다.
측정항목 오염은 하나의 측정항목에 외부 측정항목과 기술을 추가하면 해당 측정항목의 진정한 특성이 어떻게 모호해지고 왜곡될 수 있는지 설명하기 위해 제가 방금 고안한 용어입니다. 예를 들어, 지표 기반 전략에 이익실현 또는 후행 중지를 추가하면 조기에 이익을 청산하게 되어 전략 개발자가 처음부터 끝까지 해당 전략이 어떻게 수행되었는지 이해하고 매수에 들어가고 매도 방향을 바꾸는 것을 방해할 수 있습니다. 마찬가지로 두 번째 지표를 확인 지표로 추가하면 너무 늦게 삽입되어 전략 개발자가 처음부터 끝까지 수행 방법을 이해하지 못할 수 있습니다. 대신, 나는 전략 개발자가 지표의 본질적인 가치를 진정으로 이해할 수 있도록 지표 기반 전략을 순수하고 오염되지 않은 상태로 유지해야 한다고 주장합니다. 저는 전략에 다른 지표와 기법을 추가하는 것을 반대하지 않습니다. 투명성을 위해 처음부터 깔끔하게 유지하는 것이 좋습니다.
지표 자체가 수익성 있는 손절매 및 반전 전략이 될 수 있는지 파악하고 나면 이러한 추가 기능을 추가하여 지표를 개선할 수 있는지 확인할 수 있습니다.
내부 매개변수 제한
내부 매개변수 제한은 지표의 견고성 테스트를 시작할 때 지표의 핵심 매개변수에 초점을 맞춘다는 것을 의미합니다. 가능한 최적화 및 기타 매개변수의 기본값을 공통 값으로 설정합니다.
예를 들어 이동 평균 지표를 사용하면 단일, 이중 또는 삼중 크로스오버 시스템으로 거래할지 여부를 결정하는 것 외에도 다음이 있습니다. 많은 내부 매개변수를 결정합니다:
가장 좋은 통화 쌍은 무엇입니까(EURUSD, GBPUSD, USDCHF, AUDUSD 등)?
가장 좋은 기간은 언제입니까(M1부터 MN1까지)?
최고가는 얼마입니까(시가, 최고가, 최저가, 종가)?
가장 좋은 접근 방식은 무엇입니까(단순, 지수, 선형 가중치 등)?
최적의 길이 또는 기간(2~2000)은 얼마입니까?
이러한 매개변수의 대부분은 고유한 특정 구문이 있는 MT4 기본 이동 평균 표시기에 나타납니다.
< /p>
double iMA(문자열 표기법), int timeframe, int period, int ma_shift, int ma_method, int MAPrice, int Shift)
p>
I iMA 식별자 뒤의 괄호 안에 있는 구조를 여러 좌석이 할당된 버스로 생각하고 싶습니다. 버스의 각 좌석은 쉼표로 구분되며 이를 매개변수라고 합니다. iMA 표시기
참고로 2008년 20일 EMA가 200일 EMA 아래로 교차했을 때 위기 이후 하락 추세에서 1,600포인트를 얻었고, 이후 2009년 교차했을 때 위기에서 성공적으로 상승 추세 회복에 성공했습니다. .2700점 정도. 2009년 3월부터 2011년 7월까지. 이 골든 크로스 전략은 장기적인 외환 추세를 포착하는 데 정말 강력합니다. 시장의 프랙탈 특성으로 인해 더 짧은 기간에 사용할 수 있는 강력한 조합이 될 수도 있습니다.
장기 이동 평균의 단점은 가격 변화 및 추세 반전에 대한 반응이 더 느리다는 것입니다. 새로운 추세 진입을 너무 오랫동안 지연하여 좋은 가격 진입이나 전체 거래를 놓칠 수 있습니다. 기간이 길수록 가격이 이동 평균을 최종적으로 교차하는 데 걸리는 시간이 길어지며, 이때 이동이 종료될 수 있습니다.
이동평균 길이를 줄이면 추세와 반전을 더 일찍 입력할 수 있습니다. 가능한 한 많은 포인트를 캡처할 수 있기를 원하기 때문에 이것은 아마도 좋은 것입니다. 하지만 조심하세요. 길이를 과도하게 단축하면 횡보 시장에서 필연적으로 잘리고 위조될 수 있는 더 들쭉날쭉하고 가까운 이동 평균이 생성됩니다. 예를 들어, H1 이하 기간에서 25개 기간보다 작은 이동 평균을 사용하는 것은 매우 어렵습니다. 길이가 짧을수록 잘못된 추세와 잘못된 종료가 너무 많이 발생하기 때문입니다.
길이 문제의 핵심은 부드러움과 속도 사이의 적절한 균형을 찾는 것입니다. 사람들은 길이가 매끄럽고 고르지 않을 만큼 길어야 하지만 트렌드에 빨리 적응할 수 있을 만큼 짧기를 원합니다. 따라서 전략 개발자는 부드러움과 속도 사이의 적절한 균형을 찾기 위해 길이를 최적화하려고 노력합니다. 앞으로 살펴보겠지만, 거래자들은 이 문제를 해결하기 위해 다양한 방법을 시도합니다.
최적화 팁 #1: 길이를 지표 기반 전략의 외부 매개변수로 만들어 최적화하는 것이 좋습니다.
예:
Double ma_current = iMA (NULL,0,200,0, 0 ,0,0);
장소:
// 외부 변수 Area
External int MALength = 200;
// start() 함수 뒤에 배치
Double ma_current = iMA (NULL,0,MALength,0,0,0,0);
최적화 팁 #2: 저는 보통 Reliable으로 시작합니다. 교육을 통해 길이를 추측한 다음 변수 범위에 따라 5, 10 또는 25단계로 최적화합니다. 예를 들어, H1 기간의 이동 평균을 테스트하고 25~600 범위를 테스트하고 싶다면 25단계로 테스트합니다. 최적의 길이는 인접한 모든 매개변수에서 이익이 되어야 한다는 점을 명심하십시오. 예를 들어 최적의 길이가 200인 경우 이전(150, 175)과 이후(225, 250)의 매개변수 값도 수익성이 있어야 합니다.
방법: 지표 매개변수의 여왕(단순과 지수 사이의 실제 선택).
지금까지 살펴보았듯이 길이를 바꾸는 것은 부드러움과 속도 사이의 적절한 균형을 찾는 가장 중요한 방법입니다. 접근 방식을 바꾸는 것도 이 문제를 해결하는 데 도움이 될 수 있습니다.
이동 평균 지표에는 단순, 지수, 평활, 가중의 네 가지 방법이 내장되어 있습니다.
상수 값 이름 계산 지침
MODE_SMA 0 단순 이동 평균은 계산 중에 각 가격에 동일한 가중치를 부여합니다.
MODE_EMA 1 지수 이동 평균 지연을 줄이기 위해 최근 가격에 더 많은 가중치를 부여합니다.
MODE_SMMA 2 평활 이동 평균, SMA와 유사하지만 가장 오래된 값을 빼는 대신 이전 평활 평균을 뺍니다.
MODE_LWMA 3 선형 가중 이동 평균 최근 데이터에 더 많은 가중치를 부여하고 과거 데이터에 더 적은 가중치를 부여하도록 설계되었습니다.
웹상의 다른 기사에서 다루고 있는 이러한 패턴의 수학적인 부분에 대해서는 다루지 않겠습니다.
실제로는 4가지 모드 사이에 두 가지 동맹이 표시되며, 이로 인해 실제 선택 항목 수가 두 가지로 줄어듭니다.
부드러운 동맹: 단순 + 부드러움
SMA와 SMMA는 모두 부드러움을 강조합니다. 동일한 길이를 사용하면 SMMA가 SMA보다 더 부드럽다는 것을 알 수 있습니다.
예를 들어 GBPUSD H1 차트의 50 SMMA 대 50 SMA는 7개의 매개변수로 표시됩니다. 각 매개변수에는 사용자 정의(또는 버스 비유를 유지하기 위해 개인화)할 수 있는 기본값이 있습니다. 각 매개변수의 기능, 각 매개변수의 기본값, 맞춤 설정 방법, 실제로 버스를 구동하는 매개변수를 이해하는 것이 유용합니다.
다음 표에서는 이동 평균의 각 매개변수를 설명합니다.
글쎄요 / p>
매개변수 설명
EURUSD와 같은 기호 거래 기호입니다. NULL 또는 Symbol()은 해당 지표가 위치한 차트의 통화쌍을 나타냅니다.
TimeFrame 이동 평균이 적용되는 차트 기간으로 일반적으로 0으로 설정되며 EA가 첨부된 차트 기호를 나타냅니다.
MAPeriod 이동 평균의 전환 기간입니다. 이것이 가장 중요한 변수입니다.
MAShift 막대 단위 이동평균의 전진 이동으로, 일반적으로 0으로 설정됩니다.
MAMethod 이동 평균 계산 방법은 단순, 지수, 평활 또는 선형 가중치를 선택할 수 있습니다. 두 번째로 중요한 변수입니다.
MAPrice는 종가, 시가, 최고가, 최저가 또는 일부 평균 유형일 수 있는 이동 평균을 계산할 때 사용되는 가격 배열입니다. 일반적으로 기본값 0 또는 off가 사용됩니다.
Shift는 계산된 막대의 뒤로 이동을 반환합니다. 값 0은 현재 바의 표시 값을 반환하고, 값 3은 3바 전의 표시 값을 반환합니다. 앞으로 살펴보겠지만 이는 세 번째로 중요한 변수입니다.
MA 매개변수(20개 기본 지표 모두의 매개변수 포함)에 대한 편리한 빠른 참조는 여기에서 찾을 수 있습니다: https://docs.mql4.com/indicators/iMA
이제 가능한 모든 매개변수를 살펴보았으므로 제안을 드리고 싶습니다. 길이와 패턴이라는 두 가지만 최적화하려고 합니다. 막대 끝에 크로스오버를 입력하는 경우 기간을 최적화할 수도 있습니다. 나머지는 기본값으로 유지하세요.
구분 매개변수: 통화 쌍, 기간, 가격.
통화쌍.
이동평균과 같은 추세 지표로 거래할 때는 두 가지 이유로 EURUSD를 먼저 테스트하는 것이 가장 좋습니다. 첫째, 대부분의 주요 통화는 모두 미국 달러와 짝을 이루기 때문에 상관성이 높으므로 가장 낮은 스프레드와 가장 빠른 실행을 위해 가장 유동성이 높은 통화 쌍을 선택하는 것이 가장 좋습니다. 둘째, EURUSD는 가장 많이 거래되는 통화쌍이므로 대부분의 지표가 그 인기에 대한 자기실현적 예언에 크게 의존하기 때문에 지표로서 성공할 가능성이 가장 높은 후보입니다. 따라서 최고의 성공 가능성을 위해 가장 인기 있는 통화 쌍에 대한 가장 인기 있는 지표를 테스트하려고 합니다. 이동 평균이 가장 인기 있는 지표이고 EURUSD가 가장 인기 있는 통화 쌍이라는 점을 고려하면 이 조합이 가장 논리적입니다. EURUSD 작업을 마친 후에는 GBPUSD, AUDUSD 및 USDCHF를 테스트하여 이러한 관련 통화 쌍에서 전략이 작동하는지 확인할 차례입니다.
일반적인 시간
시간 범위가 이동 평균 자체의 형성에 어떤 영향을 미치는지에 대한 일반적인 오해가 있습니다. 많은 초보 전략 개발자들은 특정 시간대에 이동 평균 교차를 개발하고 최적화한 후 다른 시간대에 개발하면 새로운 전략이라고 생각합니다. 하지만 정말 그렇습니까? 대신, 나는 길이가 더 중요하며 시간 프레임이 제공하는 표면적인 이점을 대체할 수 있다고 생각합니다. 다양한 시간 범위를 설명하기 위해 시간 범위 차이의 배수만큼 길이를 늘리거나 줄입니다. 예를 들어, 100일 이동평균이 H1 기간에 가장 효과적이라면 이는 M30 기간의 200일 이동평균과 어느 정도 같아야 합니다(M30은 H1의 절반이므로 100X2= 200) 또는 H4 기간의 25주기 이동 평균(H4는 H1보다 4배 크므로 100/4 = 25)입니다.
그러나 전략이 크로스오버 자체의 순간이 아니라 크로스오버를 형성하는 막대의 끝 부분에서 항목을 기다리도록 하려면 기간이 정말 중요해요. 그런 다음 막대가 닫힐 때까지 항목을 연기하여 이제 막대의 기간을 더욱 적절하게 만듭니다. 마감 시 거래가 어떻게 기간의 관련성을 더 높이는가? H1 기간에 구축된 100일 MA 크로스오버 전략과 M30 기간에 구축된 200일 MA 크로스오버 전략을 예로 들어보겠습니다. 둘 다 바 끝에서 들어가거나 나가도록 설정되어 있습니다. 위에서 언급했듯이 이 두 가지 전략은 각각의 막대 내 어딘가에서 동일한 지점에서 교차합니다. 그러나 시간 입력/종료는 다른 시간 프레임에 맞게 조정되어야 합니다. M30 차트에서 200선 이동평균의 교차를 기다리도록 전략을 설정하면 해당 전략은 100-H1 차트와 동일한 교차점에서 진입/청산하게 되지만 차이점은 100-H1 차트에서 진입/청산한다는 것입니다. 초과/ M30 바 종가는 H1 바 후반이 아닌 이동 평균 아래에 있습니다. 따라서 M30 시간 프레임은 H1 막대에서 구성된 동일한 전략보다 30분 일찍 크로스오버 기회를 제공합니다. 때로는 전략을 빠르게 시작하고 종료하기를 원하는 경우 노이즈를 피하기 위해 추가 지연 시간이 필요한 경우도 있습니다. 때로는 H4 또는 D1 컬럼의 지연을 원하지만 M15 또는 M30 컬럼의 빠른 컬럼은 원하지 않을 수도 있고 그 반대의 경우도 있습니다. 왜 마감을 기다리나요? 첫째, 마감을 기다리면 전략을 백테스트하는 것이 더 쉽습니다. 둘째, 어떤 이유로든 때로는 더 나은 결과를 낳기도 합니다.
따라서 마감 막대를 사용하여 크로스오버 전략을 구축하기로 결정한 경우 H1 기간을 초기 기간으로 테스트한 후 다음 기간을 테스트하는 것이 좋습니다. (M15 및 M30) 속도가 더 유리할 수 있는지 확인하고, 위의 기간(H4 및 D1)을 테스트하여 지연 또는 느림이 더 유리한지 확인하세요.
기간이 전략에 중요한 경우 기간을 외부 매개변수로 만들어 최적화하는 것이 가장 좋습니다.
가격
가격은 기본값인 0(종가)으로 유지되어야 합니다. 가격을 높음, 낮음 또는 공개로 변경해야 할 타당한 이유가 있다고 생각합니다. 실제로 다른 가격에는 타당한 이유가 있을 수 있지만 이동 평균 전략이 종가에서 작동하지 않으면 다른 가격에서도 작동하지 않습니다.
길이: 지표 매개변수의 왕
길이는 모든 이동 평균의 가장 중요한 구성 요소입니다. 이것이 최적화를 위해 찾아야 할 첫 번째 변수입니다.
이중 이동 평균을 사용하는 경우 실제로 추세를 정의하는 것은 느린 이동 평균입니다. 빠른 이동 평균의 길이는 일반적으로 느린 이동 평균 길이의 1/4에서 1/10에 불과하므로 그것이 맞는지 아닌지는 그다지 큰 문제가 아닙니다.
일반적으로 길이가 길수록 가격 변동에 대한 반응이 더 부드럽고 느려집니다. 이것이 바로 더 크고 중간 규모의 트렌드를 찾는 데 필요한 것입니다. 예를 들어, 200일 SMA(단순 이동 평균)와 더 빠른 20일 SMA 또는 50일 SMA의 교차는 전 세계 거래자가 더 큰 추세를 식별하기 위해 사용하는 유명한 "골든 크로스"의 기초입니다. /p>
다음은 200일 SMA 위/아래 AUDUSD에 대한 20일 SMA 교차입니다.
보시다시피 SMMA(50)는 가격 변동에 더 많이 반응합니다. SMA(50) 대응 제품보다 훨씬 느립니다. 이는 SMMA가 SMA보다 더 부드러운 계산을 제공하기 때문이라고 들었습니다.
그러나 SMMA의 길이를 절반으로 줄이면 EMA와 매우 유사해 보이기 때문에 시각적으로 구별이 약해집니다.
GBPUSD H1 차트의 50 EMA와 25 SMMA입니다:
보시다시피 50EMA와 절반으로 줄어든 SMMA(25) 사이에는 거의 차이가 없습니다. ) 차이점. 선이 완전히 겹칩니다.
따라서 EMA와 SMMA의 실제 차이가 길이라면 SMA를 부드러움의 진정한 프록시로 사용하는 것이 좋습니다. Simple을 사용하는 것의 장점은 인기가 있고 원활하게 진행되도록 의도되었다는 것입니다. 즉, 보다 신뢰할 수 있는 추세 신호를 제공하기 위한 것입니다(충분히 긴 길이 제공).
그러나 일부 사람들은 평활화 특성으로 인해 SMA가 최신 데이터 포인트보다 뒤처진다는 사실을 좋아하지 않으며 가장 가까운 데이터 포인트에 더 많은 것을 제공하는 것을 선호합니다. 데이터 포인트 가중 및 지수 이동 평균과 같은 가중치.
속도 동맹: 지수 + 선형 가중
지수 및 선형 가중 이동 평균 모두 더 많은 가중치를 할당하여 이를 수행하려고 합니다. 가격 지체를 극복하기 위해 이전 가격에 덜 의미를 부여하는 것을 의미합니다. 이런 식으로 그들은 모두 가격 변화에 더 빨리 반응할 수 있습니다. 그러나 실제로는 다양한 방식으로 최근 가격에 더 많은 의미를 부여하지만 일반적으로 동일한 경로를 따른다는 것을 알 수 있습니다.
예를 들어 GBPUSD H1 차트의 50 EMA와 50 LWMA는 다음과 같습니다.
정확히 일치하지는 않지만 대부분의 추세 반전은 다음과 같이 발생합니다. 같은 위치. 50주기 EMA의 교차와 50주기 LMMA의 교차 간에는 완전히 다른 전략을 찾을 수 없습니다.
그래서 둘 사이에 큰 차이가 없다면 지수형이 더 대중적이므로 사용하는 것이 좋습니다.
단순 지수에 비해 지수 지수를 사용하는 장점은 단순 지수보다 시장 가격에 더 빨리 적응한다는 것입니다. 지연을 줄여 추세 반전을 더 일찍 시작할 수 있습니다. 단점은 지나치게 민감하여 이동 평균의 원래 목적인 원활한 가격 조치를 무효화할 수 있다는 것입니다. EMA는 시장 변동에 더 민감한 경향이 있습니다.
진짜 선택: SMA와 EMA 사이
방법을 미리 알고 있는 동안 실제 선택은 간단한 방법과 지수 방법 사이에 있습니다. 방법 훨씬 쉽지만 어떤 방법이 더 나은지 미리 알기가 어렵습니다. 부드러움 때문에 Simple에 기댈 수도 있고 속도 때문에 Exponential에 기댈 수도 있지만 궁극적으로 둘 사이에 공정한 재판이 열릴 때까지는 누가 게임의 진정한 여왕이 될지 결코 알 수 없습니다.
최적화 팁 #1: 지표 기반 전략의 외부 매개변수로 메소드를 사용하여 최적화하는 것이 좋습니다.
예:
Double ma_current = iMA(NULL,0,200,0, 0 ,0,0);
장소:
// 외부 변수 Area
External int MATime = 0;
External int MALength = 200;
External int MAMethod = 0; // 0 = 이동 평균; 1 = 이동 평균; 2 = 표준 이동 평균; 4= SWMA
// start() 함수에 넣기
Double ma_current = iMA ( NULL ,MATime,MALength,0,MAMethod,0,0);
최적화 팁 #2: SMA와 EMA 사이에서만 최적화하세요.
SMMA는 SMA의 중복 버전이고 LWMA는 EMA의 중복 버전임을 보여주었으므로 실제로 최적화할 필요는 없습니다. SMA와 EMA 사이, 0과 1 사이에서는 1단계로 최적화하는 것이 더 스마트하고 쉽습니다.
교차: 이중 이동 평균 교차로 시작
거래자가 이동 평균 교차 시스템을 구성하려고 할 때 그는 다음을 수행합니다. 단일 이동 평균, 이중 이동 평균 또는 삼중 이동 평균 크로스오버를 수행해야 하는지 자주 자문해 보세요. 차이점은 이동 평균에 대한 내 기사를 참조하세요.
답은 간단합니다. 이중 이동 평균 교차가 가장 좋습니다.
일부 이동 평균 교차가 가장 단순한 장점을 가지고 있다고 주장하는 사람들도 있습니다. 종가가 이동평균보다 높거나 낮을 때 매수 또는 매도 포지션을 취할 수 있습니다. 그러나 이중 이동 평균은 간단할 수도 있습니다. 빠른 이동 평균이 느린 이동 평균을 교차하거나 아래로 이동할 때 매수 또는 매도할 수 있습니다. 단일 MA는 크로스오버에서 더 빠르다는 장점이 있지만, 빠른 MA가 충분히 짧다면 더블 MA도 크로스오버에서 더 빠를 수 있습니다. 실제로 이중 이동평균 교차 시스템을 구축하는 경우 빠른 MA를 1로 설정하여 단일 이동평균 교차를 잠재적인 전략으로 테스트할 수 있습니다. Fast MA를 1로 설정하면 기본적으로 Fast MA가 닫힌 막대의 기능으로 줄어들어 단일 이동 평균 크로스오버 시스템처럼 작동합니다.
삼중 이동 평균은 문제가 될 수 있습니다. 진입 메커니즘은 기본적으로 이중 이동 평균과 동일하며 빠른 이동 평균이 느린 이동 평균을 교차할 때 진입합니다. 차이점은 더 빠른 접근이 필요한 출구 메커니즘에 있으며, 세 번째 빠른 MA가 느린 MA를 통과하거나 아래로 이동할 때 종료됩니다. 그러나 세 번째 MA의 도입은 지표 오염의 위험을 수반합니다. 빠른 이동평균선이 느린 이동평균선을 교차/하회할 때 종료되면 이익실현 또는 후행 중지와 같은 방식으로 이동 평균의 잠재적 수명이 단축됩니다. 이 세 번째 MA를 추가하면 MA 전략이 조기에 종료되어 전략 개발자가 처음부터 끝까지, 종료 및 반전 신호의 성과를 이해하지 못하게 됩니다.
이중 크로스오버부터 시작하겠습니다.
정지 및 역방향 이중 MA 크로스오버 형성을 위한 진입/퇴출 조건
일부 외부 옵션 및 내부 매개변수는 처음부터 제한됩니다. 느린 MA 길이와 SMA 및 EMA의 두 가지 방법만 최적화하려는 이중 이동 평균 전략을 사용할 때입니다.
글쎄, 우리의 초기 아이디어는 20-200 기간의 MAC Cross에 대한 진입 조건을 작성하는 것이었지만 처음처럼 더 높은 수준에서는 이를 수행하지 않을 것입니다. 일일 기간에 테스트하는 대신 H4 기간에 테스트하세요. 시장의 프랙탈 특성을 고려할 때 이 짧은 기간에도 잘 작동해야 하며 일일 기간보다 더 큰 거래 샘플 크기를 제공해야 합니다. 우리는 반대쪽 입구를 출구로 변환하여 간단한 정지 및 역방향 시스템으로 만듭니다. 이는 진입 방법의 강도를 테스트하는 가장 좋은 방법입니다. 반대쪽 진입이 출구가 되도록 뒤집는 좋은 진입 방식도 퇴장 방식으로 적절하게 기능해야 합니다. 나중에 이동 평균의 기간, 길이 및 방법을 변경하여 이러한 변경이 더 나은 가능성을 제공하는지 확인할 것입니다.
조건:
매도 SMA 선이 매수 SMA를 교차하는 경우 매수 (길게)를 입력하세요.
약세 SMA 선이 강세 SMA 아래를 교차하는 경우 매도(공매도)합니다.
언제든지 하나의 거래 주문만 개설됩니다.
종료 조건:
매도 SMA가 매수 SMA 아래로 교차하는 경우 종료 ( 매수)
단기 SMA가 장기 SMA를 상향 교차하면 청산(단기)
이동 평균 교차를 코딩하는 표준 방법은 두 가지 변수 및 조건 세트를 나타내는 것입니다.
p>< p>현재 막대(보다 큼/보다 작음)에서 FastMA와 SlowMA의 관계 및 이전 막대에서 FastMA와 SlowMA의 관계.
변수 정의의 예:
// 외부 변수 섹션에 배치합니다.
외부 int MATime = 0;
외부 int MAFastLen = 20;
외부 int MASlowLen = 200;
외부 int MAMethod = 0;< /p>
// 전역 변수 섹션의 외부 변수 바로 아래에 배치하세요.
Double
현재 FastMAC,
FastMAPrevious,
느린 MAC 현재,
SlowMAPrevious;
// 진입 조건 앞에 Start() 함수에 배치됩니다.
FastMACurrent = iMA (NULL, MATime, MAFastLen, 0, MAMethod, 0, 0);
FastMAPrevious = iMA (NULL , MATime, MAFastLen, 0, MAMethod, 0, 1);
SlowMACurrent = iMA (NULL, MATime, MASlowLen, 0, MAMethod, 0, 0);
SlowMAPrevious = iMA (NULL, MATime, MASlowLen, 0, MAMethod, 0, 1);
참고: iMA(이동 평균) 매개변수에 대한 편리한 참조를 위해, 여기를 방문하십시오: https://docs.mql4.com/indicators/iMA
FastMACurrent와 FastMAPrevious의 차이점은 제가 각 변수에 할당한 이름이 아닙니다. (I 이 이름은 내가 작업 중인 이동 평균을 기억하는 데 도움이 되도록 선택되었습니다.) 이는 iMA의 마지막 매개변수입니다. 마지막 매개변수는 "shift"라고 하며 현재 막대는 0, 이전 막대는 1, 현재 막대 뒤의 두 막대는 2 등으로 표시됩니다.
설정에서 다음 변수를 입력 조건으로 참조합니다.
부울 값
구매 개시=false,
판매 종료=false,
구매 종료=false,
판매 종료 = false;
if (FastMACurrent > SlowMACurrent && FastMAPrevious < SlowMAPrevious)
{
open buy=true; // 매수
if(반대 닫기)
close Sell=true;
}
< br/ >
If (FastMACurrent < SlowMACurrent && FastMAPrevious > SlowMAPrevious)
{
공개 판매 = True; // 판매
p>If(반대 닫기)
CloseBuy=True;
}
For 매수 신호가 나타나면 현재 막대의 빠른 이동 평균이 현재 막대의 느린 이동 평균보다 커야 한다는 점을 지적해야 한다는 것을 알 수 있습니다. 현재 막대의 조건이 의미가 있습니다.
그렇다면 이전 막대의 빠른 이동 평균이 이전 막대의 느린 이동 평균보다 작아야 한다는 두 번째 조건도 지적해야 하는 이유는 무엇입니까?
두 번째 조건을 지정하지 않고 현재 MA 관계만 매수 신호로 사용한 경우(예: (FastMACurrent > SlowMACurrent)) 현재 빠른 이동 평균이 여전히 느린 이동 평균보다 높기 때문에 코드가 새 주문을 배치해야 함을 프로그램에 알려주기 때문에 각 정지 손실 후에 포지션을 지속적으로 구매하거나 이익을 얻습니다. 하지만 계속해서 입력하고 싶지는 않습니다. 크로스오버 순간에 들어가고 싶어요. MT4에는 기본 교차 기능이 없기 때문에 해결 방법을 만들어야 했습니다. 이전에 빠른 MA가 느린 MA보다 낮지 않는 한 빠른 MA가 현재 느린 MA 위에 있을 때 진입할 수 없다는 두 번째 조건을 만들어야 했습니다. 엄마.
TS8과의 일화 비교
Tradestation의 EasyLanguage에서는 "Crosses Above/Over" 또는 "Crosses Below/Under"라는 이름을 사용합니다. " 예약어(함수)를 사용하여 이 추가 단계를 저장합니다. "평균FC(C,20)가 평균FC(C,200)를 교차하면 매수"라고 말하면 됩니다. 그러나 MT4에서는 그렇게 간단하지 않습니다. 직접 만들지 않는 한 "크로스오버" 기능의 편리함을 누릴 수 없습니다. 대신, 현재 봉의 MA(20) > MA(200)인 경우 매수하고, 과거 봉의 MA(20) < MA(200)인 경우 매수라는 두 가지 조건으로 크로스오버 프로세스를 명시해야 합니다.
이제 해야 할 일은 설정 매개변수를 EA에 삽입하는 것뿐입니다. EA에서 이 작업을 어떻게 수행했는지 확인할 수 있습니다.
p>ForexRazor_MACrossoverEA_InstrumentX_v1.0
EA를 다운로드하고 후드를 열어 어떻게 보이는지 확인하세요.
MA Crossover 사용 EA 예비 백테스트 수행
저는 0.1 미니 랏을 사용하여 10K 데모 계좌에서 EURUSD의 H4 기간에 새로 생성된 20-200 SMA 크로스오버를 테스트할 계획입니다. 이는 MA 크로스오버이기 때문에 일반적으로 더 높은 프레임의 더 긴 길이에서 최상의 신호가 생성됩니다. 더 짧은 기간에 더 짧은 길이를 사용하면 잘못된 신호가 너무 많이 생성될 수 있습니다. 나는 백테스팅을 위해 세 가지 기간을 선택합니다.
저는 FXPro를 사용하여 유로가 공식적으로 채택되기 전인 1971년부터 1999년 1월까지 28년 동안 EURUSD를 백테스트할 것입니다. 유로가 존재하지 않는 경우 FXPro는 1999년 1월 이전의 EURUSD 데이터를 어떻게 얻습니까? 두 가지 가능한 방법이 있습니다. FXPro는 유로를 가장 강력하게 대표하는 독일 마르크에 대한 데이터를 사용할 수도 있고, 1999년 1월부터 유로를 구성한 11개 전통 통화의 통합된 역사적 바스켓을 사용할 수도 있습니다. 다음으로 1999년 1월부터 2009년 1월까지 10년 동안 EURUSD를 백테스트해 보겠습니다. 이를 통해 공식 출시 이후 첫 10년 동안의 우여곡절 동안 해당 전략이 어떻게 수행되었는지에 대한 아이디어를 얻을 수 있습니다. 마지막으로, 2009년부터 2012년까지 지난 3년 동안 백테스트를 통해 최근 국가 부채 위기로 어려움을 겪은 기간 동안 전략이 어떻게 수행되었는지 살펴보겠습니다.
Backest#1: 1971년 1월부터 1999년 1월까지 28년(자세한 보고서를 보려면 이미지를 클릭하세요):
EA는 49회 거래되었습니다( 16 승리) 및 28년(연간 2.8% 수익률)은 $7690/7690 포인트/76%의 수익을 얻었습니다. 만약 잘못된 시작점에서 시작했다면 $3786/3780 포인트/37% 되돌림 시간의 수익을 얻게 될 것입니다. 하락을 견딜 수 있다면 이는 좋은 결과입니다. 왜냐하면 대부분의 EA가 성능이 심각하게 저하된 28년이 넘는 기간 동안 이 제품은 항상 상위권을 유지하며 결과를 만들어왔기 때문입니다.
유로화의 첫 10년 동안 그것이 무엇을 했는지 살펴보겠습니다.
백테스트 #2: 1999년 1월부터 2009년 1월까지 10년(자세한 보고서를 보려면 이미지를 클릭하세요):
향후 10년 동안 EA는 여전히 최고의 자리에 머물기 위해. 여기서 10년 수익률은 $4996/4996포인트/49%(연간 4.9%)이고 최대 손실률은 $2088/2088포인트/20%이므로 이 수치는 지난 28년보다 더 나은 성과를 시사합니다. 이익계수는 1.8에서 1.48로 떨어졌는데, 이는 되돌림 기간이 더 길어졌음을 의미합니다. 두 개의 주식 차트를 비교할 때 첫 번째 차트는 꾸준한 상승세를 보이는 반면 두 번째 차트는 들쭉날쭉한 상승세를 보이는 경우가 그렇습니다.
자, 이제 지난 3년간의 성과를 살펴보겠습니다.
백테스트 #3: 2009년 1월부터 2012년 1월까지 3년간의 기간(자세한 결과를 보려면 이미지를 클릭하세요):
< p>만약 당신이 보시다시피 EA 는 유망해 보입니다. 3년(연간 7%)에 걸쳐 $2152/2152포인트/21%를 반환하고 41번의 거래(11승)를 달성한 반면 $1978/1978포인트/19%의 손실을 입었습니다. 나는 성과가 매년 두 배로 증가하는 것을 보고 싶습니다. 전체 통계는 지난 38년 동안과 거의 동일합니다. 전략을 백테스트하는 기간이 길어질수록 회귀 가능성이 커진다는 점을 명심하세요. EA에 대해 3년 이상의 백테스팅을 보여준 EA 전략 개발자/공급업체는 거의 없으며, 10년 이상의 백테스팅을 보여주는 경우는 더 적습니다. 그들은 가장 최근의 데이터 기간에 전략을 곡선으로 맞추었고 이전 기간에는 효과가 없었기 때문에 이를 표시하지 않습니다. 위에서 만든 EA는 최적화와 곡선 맞춤이 없는 기본 시스템이며 41년 동안 더 큰 추세를 포착하는 데 매우 안정적으로 수행되었습니다.
결론
지금까지 우리는 대부분의 외부 옵션을 정의하고 모든 내부 매개변수를 정의하여 매우 독창적이고 단순한 정지 손실 및 역 20-200 이중 이동 평균 교차. 보시다시피 지난 41년 동안 EURUSD H4 지원을 통해 자금 관리 없이 10K 계정에서 15000 USD / 15000 pips 이상을 생성하는 등 매우 좋은 성과를 거두었습니다. 나는 그것이 원래의 상태 때문에 정확하게 잘 이루어졌다고 믿습니다. 추가 지표, 진입/퇴출 기술, 필터, 주문 및 관리 기술을 사용하여 지표 기반 전략을 꾸미지 않으면 곡선 피팅 및 지표 오염 가능성이 줄어들면서 제대로 작동하는 것을 볼 수 있습니다. 시스템에 포함된 부품과 매개변수가 적을수록 과거 데이터에 곡선을 맞출 가능성이 줄어듭니다. 또한 지표와 기술의 여러 조합을 중첩하면 지표 기반 전략의 진정한 성격을 모호하게 하고 왜곡할 수 있으므로 적어도 처음에는 이 장비 프로세스를 유지하면 지표 기반 전략이 원래 상태에서 어떻게 수행되는지 이해하는 데 도움이 될 수 있습니다.
또한 모든 내부 매개변수 중에서 길이가 가장 중요하고 방법(여기서 실제 선택은 간단하고 기하급수적임)이 두 번째라고 생각합니다. 저는 20-200 듀얼 SMA 크로스오버를 선택했습니다. 이는 장기 추세 방향을 결정하는 데 사용되는 이동 평균 크로스오버의 가장 인기 있는 버전 중 하나이기 때문입니다. 대부분의 사람들이 일일 시간대에 사용하지만 시장의 프랙탈 특성과 더 큰 거래 샘플 크기를 볼 수 있기 때문에 H4 시간대에도 사용할 수 있다고 생각합니다. 나는 차트에 이 두 개의 단순 이동 평균을 그릴 때마다 느린 속도를 빠르게 교차하는 것이 일반적으로 어떻게 더 큰 추세를 얻는지 상상할 수 있기 때문에 41년 동안 성공한 것을 보고 완전히 놀라지 않습니다.
다음 기사에서는 길이와 방법을 계속 최적화하여 이중 이동 평균 크로스오버가 200 길이와 다른 길이를 통과할 수 있는지 확인할 수 있습니다. 또는 단순한 방법 이외의 방법(예: 지수)으로 보강됩니다. 그렇게 함으로써 우리는 과도한 최적화와 곡선 맞춤이라는 두 가지 위험을 피하려고 노력할 것입니다.