디지털 필터를 기반으로 한 거래 전략 - 페이지 71

 
mrtools:
이것은 가짜 전략이므로 추측하고 이 거래가 지금 발생하지 않는다고 추측하십시오. 우리가 "황혼 지역"에 있다고 가정하십시오.

이 전략에 SSA를 사용한다면 싸이클 그래프 뿐만 아니라 매도 신호 도 다시 그려지는 케이스라고 생각합니다. 꼭 그럴 필요는 없지만 그럴 가능성은 큽니다.

따라서 SSA는 강력한 노이즈 제거 및 디트렌더이지만 실시간 거래에서 비캐주얼 버전의 사용은 제한적이며 개선된 결과는 다시 그리기 영향과 노이즈 제거/추세 제거 효과의 조합입니다.

개인적으로 나는 캐주얼 버전의 SSA와 HP 필터를 사용하기 때문에 상관하지 않습니다.

크지슈토프

 

샘플에서

안녕하세요 리치캡입니다.

따라서 MESA 시스템에서 적절한 샘플 결과를 표시할 수 있습니까?

내 입장에서는 다음 입력을 사용하여 전략의 결과를 얻을 수 있습니다.

Ehlers 방식으로 측정된 주기

NOXA 방식으로 측정된 주기

Goertzel이 측정한 주기

SN 측정 Ehlers 방법

신호 빈이 있는 SN 측정 CB 방식

그것은 물론 핵심 구성 요소입니다. 여기에 무엇이든 추가할 수 있습니다.

내가 원래 버전으로 가지고 있는 Jurik MA, VOL 또는 RSX처럼.

Goertzel 다시 그리기 문제와 관련하여 SSA 때문에 다시 그리기는 물론 디자인 방식, 즉 새 막대마다 새 막대 정보로 인해 막대마다 다른 원래 주기 곡선을 다시 그립니다.

전체 비 재도색 버전으로 다시 프로그래밍했지만 아직 실시간으로 테스트하지 않았으므로 성능이 어떻게되는지 모르겠습니다.

오프라인은 괜찮습니다

크지슈토프

파일:
scr1.jpg  81 kb
scr2.jpg  90 kb
 
fajst_k:
안녕하세요 리치캡입니다.

따라서 MESA 시스템에서 적절한 샘플 결과를 표시할 수 있습니까?

내 입장에서는 다음 입력을 사용하여 전략의 결과를 얻을 수 있습니다.

Ehlers 방식으로 측정된 주기

NOXA 방식으로 측정된 주기

Goertzel이 측정한 주기

SN 측정 Ehlers 방법

신호 빈이 있는 SN 측정 CB 방식

그것은 물론 핵심 구성 요소입니다. 여기에 무엇이든 추가할 수 있습니다.

내가 원래 버전으로 가지고 있는 Jurik MA, VOL 또는 RSX처럼.

Goertzel 다시 그리기 문제와 관련하여 SSA 때문에 다시 그리기는 물론 디자인 방식, 즉 새 막대마다 새 막대 정보로 인해 막대마다 다른 원래 주기 곡선을 다시 그립니다.

전체 비 재도색 버전으로 다시 프로그래밍했지만 아직 실시간으로 테스트하지 않았으므로 성능이 어떻게되는지 모르겠습니다.

오프라인은 괜찮습니다

크지슈토프

당신의 메시지 Krzysztof의 의미는 무엇입니까? 당신은 뭔가를 팔고 있습니까?

나는 소중한 것을 기다리고 있었지만 아무것도 보이지 않습니다.

많은 코드를 공유해 달라는 것이 아니라(저처럼) 한 가지 좋은 아이디어만 알려주셨으면 합니다.

게시물 #582로 회비를 지불했다고 생각하십니까?

'PicBuf=i*MathPow(10,-1*digs);' 성명?

왜 MathPow(10,-1*digs) PicBuf가 필요하고 PicBuf는 무엇입니까?

MESA 분석 내에서 피크만 계산하고 태그 지정하기 위해 작성한 코드를 보면 내가 왜 당신에게 만족하지 못하는지 이해할 수 있습니다.

/*

* This function fills an array with 'amplitude' and 'frequency' (0 < f < Fn=0.5, Nyquist normalized freq) values

* of the peaks (and following valleys) under f_max and above f_min frequency by finding local maxima

* with a bisection equivalent algorithm.

* It returns the number of calculated peaks

*/

int peaksVector (

double& peaks[], // this vector must be dimensioned to 4*degree

double f_max, // the frequency under which to search peaks (f_max < Fn)

double f_min, // the frequency above which to search peaks (f_max > 0 )

double& aa[], // autoregression coefficients

int degree) // order of autoregression

{

double frequency, Qn, delta_f, delta_f2;

double s1, s2;

double f1, f2, fm, d1, d2, dm;

double tolerance=0.01; // zero (maximum) finding tolerance (we don't need a very high precision

double fine_stepping = 1.0 / 10.0; // 2nd level stepping for local minimum/maximum search

int count=0, i;

bool growing=true;

// check for Nyquist

if (f_max > 0.5) f_max=0.5;

// First evaluate Qn to set proper resolution delta_f... (see (II-70) formula in Burg's PhD thesis)

/*

Qn=1.0;

for (i=0; i<degree; i++)

{

Qn=Qn*(1.0+MathAbs(aa))/(1.0-MathAbs(aa));

}*/

Qn=50; // above formula gives too high Qn, to be verified

delta_f=1.0/(degree*Qn);

// ...then starts to find peaks (and valleys)

s1=spectrumValue(f_min+delta_f,aa,degree);

peaks[0]= s1; // include first point ...

peaks[1]= f_min+delta_f; // ... and frequency

i=2;

d1=spectrumValue(f_min+delta_f*(1.0+fine_stepping),aa,degree) - s1 ;

if (d1 < 0)

growing=false; // set initial slope direcion

for (frequency=f_min+2*delta_f; frequency = f_max && !growing); frequency+=delta_f)

{

s2=spectrumValue (frequency,aa,degree);

if (s2>s1 && growing)

{

s1=s2; // updates new maximum

}

else if (s2<=s1 && growing) // found an interval in which there is a local maximum??

{

// search for a local maximum in the interval [ frequency-delta_f,frequency + delta_f ]

f1=frequency-2.0*delta_f;

f2=frequency;

delta_f2=delta_f*fine_stepping; // delta_f2 (adaptive) is used to evaluate funcion's slope

d1=spectrumValue(f1+delta_f2,aa,degree) - spectrumValue(f1,aa,degree);

d2=spectrumValue(f2+delta_f2,aa,degree) - spectrumValue(f2,aa,degree);

while (true)

{

// try to find maximum value by evaluating central point's slope

fm = (f1+f2)/2.0;

dm=spectrumValue(fm+delta_f2,aa,degree) - spectrumValue(fm,aa,degree);

if ( MathAbs(dm) < tolerance)

break;

if (dm < 0.0) f2=fm;

else f1=fm;

delta_f2=(f2-f1)*fine_stepping; // adapt delta_f2

d1=spectrumValue(f1+delta_f2,aa,degree) - spectrumValue(f1,aa,degree);

d2=spectrumValue(f2+delta_f2,aa,degree) - spectrumValue(f2,aa,degree);

}

peaks= spectrumValue (fm,aa,degree);

peaks=fm;

i+=2;

count++; // increments number of peaks

growing=false; // after a peak there must be a valley, so the funcion starts to decrease

}

else if (s2<s1 && !growing)

{

s1=s2; // updates new minimum

}

else if (s2>=s1 && !growing) // found an interval in which there is a local minimum??

{

// search for a local maximum in the interval [ frequency-delta_f,frequency + delta_f ]

f1=frequency-2.0*delta_f;

f2=frequency;

delta_f2=delta_f*fine_stepping; // delta_f2 (adaptive) is used to evaluate funcion's slope

d1=spectrumValue(f1+delta_f2,aa,degree) - spectrumValue(f1,aa,degree);

d2=spectrumValue(f2+delta_f2,aa,degree) - spectrumValue(f2,aa,degree);

while (true)

{

// try to find maximum value by evaluating central point's slope

fm = (f1+f2)/2.0;

dm=spectrumValue(fm+delta_f2,aa,degree) - spectrumValue(fm,aa,degree);

if ( MathAbs(dm) < tolerance)

break;

if (dm > 0.0) f2=fm;

else f1=fm;

delta_f2=(f2-f1)*fine_stepping; // adapt delta_f2

d1=spectrumValue(f1+delta_f2,aa,degree) - spectrumValue(f1,aa,degree);

d2=spectrumValue(f2+delta_f2,aa,degree) - spectrumValue(f2,aa,degree);

}

peaks= spectrumValue (fm,aa,degree);

peaks=fm;

i+=2;

growing=true;

}

}

return(count);

}
 

???

이상한 대답. 나는 NS만을 사용하고 있기 때문에 솔직히 당신의 코드를 전혀 보지 않았습니다.

나는 또한 전문적인 C++/MQL 코더가 아닙니다. 수년 동안 소프트웨어 테스트 작업을 했기 때문에 결함을 아주 쉽게 찾아낼 수 있다고 생각합니다. 나는 이미 당신이 이 모든 것을 디자인하는 데 인내심을 가지고 있었기 때문에 당신이 신의 프로그래머라고 말했습니다.

어쨌든 나는 명확하게 정의된 입력과 함께 전략 결과 수준에 대한 정보 교환을 제안합니다. 이것이 이 메일의 의도였습니다. 관심이 있으시면 알려주세요.

크지슈토프

 

좋은 생각

나는 이것이 바로 좋은 생각이라고 생각합니다. 다른 입력으로 다른 전략을 만들고 Genetic Optimizer를 사용하여 입력의 적절한 조합을 선택하고 결과를 비교할 수 있습니다.

크지슈토프

 

내가 당신의 코드를 본 것보다. 분명히 중요한 피크를 찾는 방법은 현재 Goertzel보다 훨씬 더 발전되어 있습니다.

// 각 피크의 높이와 선명도를 측정하여 중요한 피크를 찾아 "중요도" 숫자를 얻습니다.

// 선명도를 측정하기 위해 봉우리와 계곡 사이의 선형 선을 고려하고 각도를 측정합니다.

// 각도가 작을수록 뾰족한 것이 피크입니다. 각 피크의 중요도는 높이/각도로 표시됩니다.

Goertzel에서는 사용자가 정의한 피크 수보다 추가 테스트 없이 피크를 찾아 정렬하여 역변환을 수행합니다.

따라서 MESA의 해상도는 Goertzel보다 훨씬 우수해야 합니다. MESA 주기를 기반으로 하는 단순 주기 전략 결과가 더 나은지 궁금합니다. 불행히도 재도색 문제로 인해 현재 비교할 수 없습니다.

그러나 원하는 경우 뱅크 필터 응답을 기반으로 Ehlers 주기와 비교할 수 있습니다.

크지슈토프

 

가짜 거래 전략 ?

아무 것도 설득하지 말고 나 자신만!!!!!!!!!

 

안녕하세요 여러분,

스레드가 죽은 것을 보았지만 아마도 나를 도울 누군가를 찾을 것입니다 ...

나는 goertzel_cycle_v1_1을 가지고 있고 이것에 붙어 있습니다.

1. goertzel이 어떻게 작동하는지 보기 위해 사인파 표시기를 만들었습니다. 암호:

------------------------------------

정수 시작()

{

int counted_bars=IndicatorCounted();

int i=바 개수 계산_바-1;

//----

동안 (i>=0)

{

인디버퍼= MathSin(2*PI*i/20);

나--;

}

//----

반환(0);

-------------------------------

2. goertzel 코드 "close"를 "sinewave" 표시기로 대체했습니다.

3. 결과는 다음과 같습니다. 20바의 명확한 주기 - 좋습니다. 그러나 사인 표시기가 예상대로 -1과 1 사이에 있을 때 진폭은 149.98입니다.

squareamp는 "거짓"이고 모든 것을 시도했지만 무엇이 잘못되었는지 전혀 모릅니다.

어떤 도움이라도 대단히 감사하겠습니다.

 

FTLM_KG 및 STLM 표시기

forex_for_life:
리치캡,

먼저, 당신이 만든 것을 공유해 주셔서 감사합니다. 나는 이 댓글을 시작하기 직전까지 당신이 무엇을 게시했는지 몰랐습니다. 이러한 종류의 R&D는 이 스레드를 발전의 불로 타오르게 하고, 이 포럼과 대부분의 다른 포럼에서 매일 일어나는 일상적인 전리품 잡담인 모든 찌꺼기를 통해 타오르게 했습니다. 정말 강력합니다. 이 스레드를 팔로우한 사람들은 당신이 실험실 벤치에 가져온 것을 이중으로 받아들이는 것이 현명할 것입니다.

나는 Krzysztof가 그의 답장에서 악의를 품으려 했다고 생각하지 않습니다. 몇 번 읽고 나면 몇 단어와 문장 구조가 그런 느낌을 준 것 같습니다. 내가 틀렸다면 정정해주세요, Krzysztof.

이제 나는 DSP라는 주제의 권위자가 아닙니다. 나는 학생으로서 이 스레드를 거의 다른 어떤 스레드보다 자주 사용했습니다. 그러나 나는 당신이 추구하는 데 가치가 있다고 생각하는 몇 가지를 배웠습니다. 당신은 내가 당신과 공유하고 있는 모든 것을 이미 알고 있을지도 모릅니다. 만약 그것이 사실이라면, 부디 그것을 선심으로 받아들이지 마십시오.

1. MESA는 평균 이상의 노이즈 데이터 시나리오에서 주파수를 식별할 수 없기 때문에 스펙트럼 분석의 덜 이상적인 방법 중 하나로 결정되었습니다(이는 금융 시장의 가격 데이터로 결정됨). 반면에 Goertzel의 알고리즘이 더 나은 선택일 수 있습니다. Meyer's Analytics "paper's page" , "Mesa vs. GDF"라는 제목의 기사를 참조하십시오.

2. 이 스레드에서 앞서 언급한 주제(지표 포함)에 대한 추가 논의가 @ post 225 부터 시작됩니다.

3. DFG 소프트웨어의 제작자인 Sergey Iljuhkin은 귀하가 게시한 지표와 매우 유사한 것을 만들었습니다. ), 라이브러리 및 모두 포함, 여기 에 NewDigital이 게시했습니다. 나는 과거에 그것을 사용했습니다. 아주 좋아, IMHO. 볼 가치가 있습니다.

4. Krzysztof는 CB의 스레드를 정확하게 평가했습니다. 나는 CB와 협력한 몇 명의 사람들을 알고 있으며 그들은 그가 사진과 이론만 공유할 것이며 구체적인 것은 아무것도 공유하지 않을 것이라고 확인했습니다. 즉, 이 스레드에 있는 clahn04, Simba, dvarrin 및 fajst_k와 같은 사람들은 공동 유형이며 공개적으로 생각과 결과를 교환할 의향이 있습니다. 진행 흐름이 중단되지 않도록 하십시오. 그렇지 않으면 스레드가 앞으로 이동하는 데 또 다른 잠잠해질 것입니다.

제가 사용하고 있는 설정이 있는데 2개의 지표만 있습니다: 최적화되지 않은 FTLM_KG 및 히스토그램 형식의 STLM, 둘 다 Jurik 가격 프록시를 통해 평활화되어 존재하는 노이즈 중 일부를 제거합니다. 쌍 및 tf에 조정되지 않은 놀라운 것은 설정에 따라 때때로 막대가 지연될 수 있지만 더 많은 정보를 소화하고 더 나은 것을 배설할 수 있을 때까지는 충분히 효과적입니다. 즉, 쉽게 조정할 수 있는 FTLM 및 STLM 표시기입니다. 스크린샷이 첨부되었습니다.

친애하는,

F_F_L

안녕하세요 forex_for_life,

정보 감사합니다. 이 스레드 FLM_KG 및 STLM의 49페이지에 있는 두 Indi 모두 매우 멋지게 보입니다. 두 개의 지표를 게시할 수 있습니까? 내가 찾고 있는 것이 바로 그것입니다. 뮌헨에서 미리 감사드립니다.

짐 클라크

 
SIMBA:
내 경험에 따르면 추세를 표시하는 가장 좋은 비 사용자 지정 지표 중 하나는 STLM2입니다. h4와 h1, 또는 D1과 H4에서 추세를 확인할 수 있으며 둘 다 일치하는 경우 더 짧은 기간을 살펴보고 적절한 항목을 트리거합니다. 너.

mtf 스레드에 mtf stlm2를 게시했습니다. 여기에 다시 게시하여 확인할 수 있습니다. FTLM 또는 FTLM_KG용 STLM2를 변경하면 이러한 필터에도 여러 시간 프레임 기능을 사용할 수 있습니다. 또한 Ea를 수정할 수 있습니다. stlm2의 mtf를 포함한 대부분의 전략을 테스트할 수 있습니다.

전략 메뉴를 만든 다음 먼저 표준 디지털 필터로 역사적으로 테스트한 다음, 두 번째로 가장 유망한 것으로 테스트하고 맞춤형 디지털 필터로 데모를 전달하는 것이 좋습니다.

위대한 Simba가 게시한 #MFT_STLM2_v2 표시기를 다운로드했지만 내 플랫폼에서는 작동하지 않았습니다.

이 버전이 만료되었거나 뭔가요?

추세를 정의할 STLM MTF를 찾고 있습니다.

미리 감사드립니다.

친절한.