거래 로봇을 무료로 다운로드 하는 법을 시청해보세요
당사를 Facebook에서 찾아주십시오!
당사 팬 페이지에 가입하십시오
당사 팬 페이지에 가입하십시오
스크립트가 마음에 드시나요? MetaTrader 5 터미널에서 시도해보십시오
John Ehlers의 Smoothed ADX - MetaTrader 4용 지표
- 조회수:
- 208
- 평가:
- 게시됨:
- 2022.01.25 16:47
- 이 코드를 기반으로 한 로봇이나 지표가 필요하신가요? 프리랜스로 주문하세요 프리랜스로 이동
Smoothed ADX는 포럼 방문자의 요청에 따라 작성되었으며 그다지 어렵지 않았습니다. 그러나 평활화된 ADX 알고리즘에 대한 설명을 검색한 결과 아무 것도 나오지 않았습니다. 그래서 아래에 제공된 코드만 제공하는 것입니다:
Inputs: {declaring inputs}
Length( 14 ),
ADXTrend( 25 ), alpha1(0.25), alpha2(0.33);
variables: {declaring variables}
DMIPlus( 0 ), DMIMinus( 0 ), DMI( 0 ), ADX( 0 ),
DIPlusLead(0), DIMinusLead(0), DIPlusFinal(0), DIMinusFinal(0),
ADXLead(0), ADXFinal(0);
DMIPlus( 0 ), DMIMinus( 0 ), DMI( 0 ), ADX( 0 ),
DIPlusLead(0), DIMinusLead(0), DIPlusFinal(0), DIMinusFinal(0),
ADXLead(0), ADXFinal(0);
{이제 내장된 ADX 함수를 호출합니다 그러므로 ADX를 다시 계산할 필요가 없습니다}
Value1 = DirMovement( H, L, C, Length, DMIPlus, DMIMinus, ADX);
{이 부분이 원래의 ADX 지표를 평화화 하는 부분입니다, DI+, DI- 와 ADX l라인이 평활화 되었습니다}
DIPlusLead = 2*DMIPlus + (alpha1 - 2) * DMIPlus[1] + (1 - alpha1) * DIPlusLead[1];
DIPlusFinal = alpha2*DIPlusLead + (1 - alpha2) * DIPlusFinal[1];
DIPlusFinal = alpha2*DIPlusLead + (1 - alpha2) * DIPlusFinal[1];
DIMinusLead = 2*DMIMinus + (alpha1 - 2) * DMIMinus[1] + (1 - alpha1) * DIMinusLead[1];
DIMinusFinal = alpha2*DIMinusLead + (1 - alpha2) * DIMinusFinal[1];
DIMinusFinal = alpha2*DIMinusLead + (1 - alpha2) * DIMinusFinal[1];
ADXLead = 2*ADX + (alpha1 - 2) * ADX[1] + (1 - alpha1) * ADXLead[1];
ADXFinal = alpha2*ADXLead + (1 - alpha2) * ADXFinal[1];
ADXFinal = alpha2*ADXLead + (1 - alpha2) * ADXFinal[1];
{차트에 나나냅니다}
Plot1( DIPlusFinal, "DMI+" ) ;
Plot2( DIMinusFinal, "DMI-" ) ;
Plot3( ADXFinal, "ADX" ) ;
Plot3( ADXFinal, "ADX" ) ;
실제로, 평활화된 ADX에 대한 깊은 의미를 이해가 필요 없다면 이 평활화는 두 단계로 나눌 수 있습니다. 숫자 시퀀스 P가 있고 이를 최소 지연으로 매끄럽게 해야 한다고 가정합니다. 이를 위해 첫 번째 단계에서 다음 공식에서 P 시퀀스 진동의 함수 V(P)를 구축합니다.
V0 = (8*P0 - 7*P1 + 3*V1) / 4,
설명:
- P0은 시퀀스의 현재 값(가격 또는 지표)입니다.
- P1은 시퀀스의 선행 값입니다.
- V1은 오실레이터의 선행 값입니다.
- V0는 오실레이터의 현재 값입니다.
혹은 다른 방식으로:
V0 = (Vol(P) + 3*V1) / 4,
다음에서:
Vol(P) = 8*P0 - 7P1 - Ehlers' burst (이 용어는 제가 만든 것입니다).
두 번째 단계에서는 단순 가중치 평활화(simple weighted smoothing)를 적용합니다.
W0 = (1*V0 + 2*W1) / (2 + 1).
설명:
- W0는 시퀀스 P의 현재 평활 값입니다.
- V0는 P 시퀀스 오실레이터의 현재 값입니다.
- W1은 이전 평활 값입니다.
MetaQuotes Ltd에서 러시아어로 번역함.
원본 코드: https://www.mql5.com/ru/code/7072
JF Ehlers의 Center of Gravity
Center of Gravity는 John F. Ehlers가 개발한 오실레이터이며 Stocks & Commodities(2002년 5월) 기사에서 소개되었습니다.
Moving Average (MA) Crossover EAThis is an EA based on Moving average crossover.