엘리엇 파동 이론에 기반한 거래 전략 - 페이지 259

 
cooper123 15:15

어쩌면 나는 오랫동안 생각하고 있지만 채널의 교차점이 무엇인지 알 수 없습니다.
내 생각에 여기 그림은 전형적인 상황이지만 채널의 교차점은 없습니다.
다양한 크기의 채널이 있습니다. 그리고 수로를 가로질러 역전대가 어떻게 형성되는지 이해가 되지 않습니다.
누군가 이 그림을 설명할 수 있습니까?


다음은 전형적인 반전 영역 중 하나입니다.



다른 색상을 사용하여 이 영역에서 반전 확률 기울기의 유사성을 보여주고 싶었습니다.

위협 처음에는 페인트로 고문하다가 부끄럽게도 포토샵으로 다시 했어
 

따라서 선택할 수 있는 권한을 주시면 MQL을 선택합니다. :-))
여기 또는 사서함으로 직접 - 원하는 대로.
미리 감사드립니다.


확인!


실제로 코드:

//+------------------------------------------------------------------+
//|                                     Moving Average Batteruot.mq4 |
//|                                                  Code by Neutron |
//+------------------------------------------------------------------+
#property indicator_chart_window
#property indicator_color1 Blue
#property indicator_width1 3

#define Pi 3.14159
extern int FLFPeriod=300, K=1;
int Start,i,m;
double Gamma,alfa,b,ci,g,MA[5000],Y[5000]; 

int start()
{
Start=5000;
Gamma= MathPow(0.484,1/(2*K))/MathTan(Pi/(FLFPeriod+1));	 
	 MA[Start+1]=Open[Start+1];
	 MA[Start+2]=Open[Start+2];
	 for (i=0;i<=Start;i++) {Y[i]=Open[i];}

for (m=1;m<=K;m++) 	 {
	 alfa=2*MathSin(Pi/4*(2*m-1)/K);
	 g=1/(Gamma*Gamma+Gamma*alfa+1);
	 b=2*g*(Gamma*Gamma-1);
	 ci=g*(Gamma*Gamma-Gamma*alfa+1); 
	 for (i=Start-2;i>=0;i--) {MA[i]=g*(Y[i]+2*Y[i+1]+Y[i+2])+b*MA[i+1]-ci*MA[i+2];}	 
    for (i=Start-2;i>=0;i--) {Y[i]=MA[i];}
                       }
}

int init()
{
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0,Y);
   return(0);
}



따라서 차트에 표시기를 던지고 작업하십시오. 이것은 최적(위상 지연(FZ) 측면에서) 저주파 필터(LPF)입니다. 설정에서 두 개의 변수를 만들었습니다.
FLFPeriod - 2와 원하는 사이의 자연수입니다. LPF의 대역폭을 담당합니다.
K 는 1부터 원하는 것까지의 자연수이다. 이 변수는 LPF 차수를 설정하고 차례로 LPF 컷오프의 기울기를 결정합니다. 위 링크에서 저역 통과 필터의 작동 및 장치에 대한 모든 세부 정보. K>2에서 고주파수 고조파는 매우 강력하게 억제되며 차수를 더 늘리는 것은 무의미합니다. 이는 FZ의 강한 증가와 기생의 약하게 감쇠된 비트(Gib 현상)의 출현으로 이어질 뿐입니다. 시작점에서(저에게는 5000바입니다). 평균은 시가에서 수행됩니다.
경험적으로, 나는 적용 목적을 위해 K = 1을 선택하는 것이 최적이라는 것을 발견했습니다. 이 경우 평활화 품질 / FZ의 비율이 최대입니다.

 
쟈니님 정말 감사합니다
이제 모든 것이 어느 정도 명확해졌고, 잠재적인 에너지를 어디에 쏟을지조차 생각할 수 있게 된 것 같습니다.


행운을 빕니다.
 
중성자에게.
물론, 이 스레드에서 많이 놓쳤지만 표시기 코드를 보고 더 일찍 이 표시기가 그리는 것을 보고도 이해하지 못했습니다. 트릭이 무엇입니까?
첫째, 이 이동 평균 은 지연이 동일하고 해당 이동 평균에 비해 이점이 없습니다(일정에 따름).
둘째, 표시기 코드에서 열광을 보지 못했습니다. 이제 주제의 마지막 5페이지를 살펴보고 답을 찾을 수 있을 것입니다.

추신. 표시기의 코드는 이상적이지 않습니다.
 
로쉬에게

그것은 모두 하나 또는 다른 LPF를 사용하여 추구하는 목표에 달려 있습니다. 내 TS의 경우 가능한 최소 FZ는 필터 통과 대역에서 최대 안정성과 함께 중요합니다. Butterloot 필터가 만족하는 것은 이러한 특성입니다(자세한 내용은 위 링크 참조). 예를 들어, Butterloot(파란색)과 그냥 슬라이딩 합산(빨간색)이라는 두 가지 움직임이 실행되는 터미널의 스크린샷이 있습니다.



FZ가 클수록 기존 필터는 더 낮은 품질의 평활화를 나타내며 이는 고주파 성분의 전송(그래프의 끊김)과 스펙트럼의 저주파 성분 억제에서 나타납니다. (중간 크기의 딥과 언덕이 없음). 특히, 제 차량에서는 수익성이 몇 배 이상 낮아집니다. 또한 K 매개변수를 변경하여 재량에 따라 필터 통과대역의 모양을 변경하여 이상적인 통과대역에 더 가깝게 또는 그 반대로 단순 이동 평균으로 이동할 수 있습니다. 동의합니다. 이것은 호기심 많은 마음을 위한 추가 펜입니다!

추신 코드가 최적이 아니라는 데 동의합니다. 직접 긁어봤어요 :-)
 
나는 코냑을 마시고 카오스의 조화에 대해 생각합니다. :)
 
2 중성자
안녕, 세르게이! 코드 감사합니다, 나는 사진을 비교했습니다. 결과를 올리고 싶었지만 mql4.com의 에디터에 문제가 생겨서 바이러스에 걸리고 정리하고 데이터를 복원해야 했습니다. 이제 포스팅을 하고 있습니다.


귀하의 FLFPeriod 매개변수가 일반적인 MA 기간과 어떻게 관련되는지 모르므로 세 차트 모두에 대해 period=100을 사용했습니다. 또한, K=1이다. 파란색 라인 - Butterloot MA, 빨간색 - 광산, CadetBlue - 표준 MA 단순.
더 작은 FZ를 사용하면 곡선이 여전히 충분히 부드럽지 않기 때문에 이 그림은 당신에게 깊은 인상을 주지 못할 것입니다.
그러나 나는 그런 목표를 추구하지 않고 단순히 "결과보고"했습니다. :-))
 
귀하의 FLFPeriod 매개변수가 일반적인 MA 기간과 어떻게 관련되는지 모르므로 세 차트 모두에 대해 period=100을 사용했습니다. 또한, K=1이다. 파란색 라인 - Butterloot MA, 빨간색 - 광산, CadetBlue - 표준 MA 단순.
더 작은 FZ를 사용하면 곡선이 여전히 충분히 부드럽지 않기 때문에 이 그림은 당신에게 깊은 인상을 주지 못할 것입니다.


유라, 안녕!
솔직히 말해서 FLFPeriod 매개변수를 저역 통과 필터의 대역폭에 바인딩하지 않았지만 그렇게 하는 것은 어렵지 않습니다.
FZ가 일치하도록 모든 필터에 대한 매개변수를 선택한 경우 결과를 살펴보는 것이 흥미로웠습니다.

아래는 ZERO FZ가 포함된 Butterloot LPF 코드입니다!!! :-)))
//+------------------------------------------------------------------+
//|              Moving Average Batteruot Simmetric (ЭТО ШУТКА!).mq4 |
//|                                                  Code by Neutron |
//+------------------------------------------------------------------+
#property indicator_chart_window
#property indicator_color1 Red
#property indicator_width1 3

#define Pi 3.14159
extern int FLFPeriod=20, K=4;
int Start,i,m;
double Gamma,alfa,b,ci,g,MA[5000],Y[5000]; 

int start()
{
Start=5000;
Gamma= MathPow(0.484,1/(2*K))/MathTan(Pi/(FLFPeriod+1));	 
	 MA[Start+1]=(Open[Start+1]+Close[Start+1]+High[Start+1]+Low[Start+1])/4;
	 MA[Start+2]=(Open[Start+2]+Close[Start+2]+High[Start+2]+Low[Start+2])/4;
	 for (i=0;i<=Start;i++) {Y[i]=(Open[i]+Close[i]+High[i]+Low[i])/4;}

for (m=1;m<=K;m++) 	 {
	 alfa=2*MathSin(Pi/4*(2*m-1)/K);
	 g=1/(Gamma*Gamma+Gamma*alfa+1);
	 b=2*g*(Gamma*Gamma-1);
	 ci=g*(Gamma*Gamma-Gamma*alfa+1); 
	 for (i=Start-2;i>=0;i--) {MA[i]=g*(Y[i]+2*Y[i+1]+Y[i+2])+b*MA[i+1]-ci*MA[i+2];}
	 Y[0]=MA[0];
	 Y[1]=MA[1]; 	 
          for (i=2;i<=Start-2;i++) {Y[i]=g*(MA[i]+2*MA[i-1]+MA[i-2])+b*Y[i-1]-ci*Y[i-2];}
                       }
}

int init()
{
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0,Y);
   return(0);
}



이 코드를 사용하여 거래 전략을 세우려고 하지 마십시오!!!




 
2 중성자
농담 감사합니다! :-))
그러나 그것은 얼마나 아름다운가!
그림의 최대값이 일치하도록 MA 의 매개변수를 선택했습니다 .
FLFPeriod = 100, K=1, 내 MA는 period=136이고 MASimple period=136입니다.
하나의 최대값의 일치가 나머지 최대값의 일치를 전혀 의미하지 않는다는 것은 그림에서 분명합니다.


그런데 표시기 코드를 약간 수정해야 합니다. 대신에
 MA[시작+1]=열기[시작+1];
MA[시작+2]=열기[시작+2];


쓰다

 MA[시작]=열기[시작];
MA[시작-1]=열기[시작-1];
 

확인!

실제로 코드:
.................................................................. . ............


표시기 주셔서 감사합니다 - 흥미롭습니다.

또한: 코드에 오류가 있습니다. 배열 범위를 벗어났습니다.
크기를 MA[5003]의 두 배로 설정합니다.
Y[]는 생략할 수 있지만 왼쪽은 double Y[]입니다. 사실이 될 것입니다.


행운을 빕니다.