Welcome to Forex-TSD!, one of the largest Forex forums worldwide, where you will be able to find the most complete and reliable Forex information imaginable.
From the list below, select the forum that you want to visit and register to post, as many times you want. It’s absolutely free. Click here for registering on Forex-TSD.
Exclusive Forum
The Exclusive Forum is the only paid section. Once you subscribe, you will get free access to real cutting-edge Trading Systems (automated and not), Indicators, Signals, Articles, etc., that will help and guide you, in ways that you could only imagine, with your Forex trading.
Elite Section
Get access to private discussions, specialized support, indicators and trading systems reported every week.
Advanced Elite Section
For professional traders, trading system developers and any other member who may need to use and/or convert, the most cutting-edge exclusive indicators and trading systems for MT4 and MT5.
can anybody help me with this:
let's say i use richcap's indicators to find dominant cycles. after this i would like to recreate the signal using the frequencies i like. the problem is i don't know the phase every cycle has at a specific time.
Guess since this is fake strategy, then guess this trade not happening now, guess we are in the "Twilight Zone"
If you use SSA for this strategy and I think it is a case than not only the cycle graph but also sell signal is most likely repainted. Don't have to be but there is a great possibility for it.
So SSA is maybe strong denoiser and detrender but usage of non casulal version in real time trading is limited and improved results this is a combination of repaint impact and denoise/detrend impact.
Personally i simple don't care as I use casulal versions of SSA and HP filter.
So are you able to show any proper out of sample results from your MESA system ??
From my side I can have results from strategies with following inputs
cycles measured Ehlers way
cycles measured NOXA way
cycles measured by Goertzel
SN measured Ehlers way
SN measured CB way with signal bins
that's the key components of course, it's possible to add to this whatever
like Jurik MA, VOL or RSX which I have in original versions.
Regarding Goertzel repaint issue, It repaints not only because of SSA but also from the way how it is designed i.e. every new bar it redraws original cycle curve which is different every bar because of new bar information.
I reprogrammed it for full non repainting version but haven't test in real time yet so I really don't know how it performs.
So are you able to show any proper out of sample results from your MESA system ??
From my side I can have results from strategies with following inputs
cycles measured Ehlers way
cycles measured NOXA way
cycles measured by Goertzel
SN measured Ehlers way
SN measured CB way with signal bins
that's the key components of course, it's possible to add to this whatever
like Jurik MA, VOL or RSX which I have in original versions.
Regarding Goertzel repaint issue, It repaints not only because of SSA but also from the way how it is designed i.e. every new bar it redraws original cycle curve which is different every bar because of new bar information.
I reprogrammed it for full non repainting version but haven't test in real time yet so I really don't know how it performs.
Offline is OK
Krzysztof
What's the meaning of your message Krzysztof? Are you selling something?
I have been waiting for something valuable but I see nothing.
I'm not asking you to share tons of code (like I did), I only would like you to give us one good idea.
Do you really think that you paid your dues with your post #582?
What's that 'PicBuf[i]=i*MathPow(10,-1*digs);' statement?
Why do you need to MathPow(10,-1*digs) PicBuf and what the hell is PicBuf ?
If you look at the code I wrote to only count and tag peaks within MESA analysis, you can understand why I'm not happy with you
Code:
/*
* 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[i]))/(1.0-MathAbs(aa[i]));
}*/
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 || (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[i]= spectrumValue (fm,aa,degree);
peaks[i+1]=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[i]= spectrumValue (fm,aa,degree);
peaks[i+1]=fm;
i+=2;
growing=true;
}
}
return(count);
}
Strange reply. I didn't look at your code at all to be honest as I'm using NS only.
I'm also not a professional C++/MQL coder, for a lot of years i was working with software test so I think I pick up the faults pretty easy. I already told you that you are a God programmer as you had a patience to design all this.
Anyway I just offer you exchange of information on the strategy results level with clearly defined inputs, it was the intention of this mail. If you are interested let me know.
I think this is just this good idea - create different strategies with different inputs, maybe use Genetic Optimizer to choose proper combination of inputs and compare the results.
than I looked to your code. Obviously your method for finding important peaks is much more advanced than currently in Goertzel.
// find important peaks by measuring each peak's height and sharpness and obtain an "importance" number
// to measure sharpness we consider linear lines between peaks and valleys and measure angles
// the smaller is the angle, the sharpest is the peak. Importance for each peak is given by height/angle
In Goertzel peaks are found and sorted without any additional testing than user defined number of peaks is used to make reverse transform.
So resolution of your MESA should be much better than Goertzel. Than I just wonder if the simple cycle strategy results based on MESA cycles would be better. Unfortunatelly it is not possible to compare it at the moment due to repaint issue.
But it is possible to compare to Ehlers cycles based on the bank filter responses if you want.
i see the thread died but maybe i'll find somebody to help me...
i have the goertzel_cycle_v1_1 and i'm stuck with this:
1. i created a sinewave indicator to see how goertzel work. code:
------------------------------------
int start()
{
int counted_bars=IndicatorCounted();
int i=Bars-counted_bars-1;
//----
while (i>=0)
{
indybuffer[i]= MathSin(2*PI*i/20);
i--;
}
//----
return(0);
-------------------------------
2. i replaced in the goertzel code "close" with the indicator "sinewave"
3. then the result is: a clear cycle of 20 bars -ok. but the amplitude is 149.98 when the sine indicator is between -1 and 1 as expected.
squareamp is "false", i tried everything but i have no clue what's wrong.
any help will be greatly apreciated
Firstly, I'd like to thank you for sharing what you have created. I didn't realize what it was you posted until moments prior to me starting this comment. It's this kind of R&D that had this thread ablaze w/ the fire of progress, burning thru all the dross that is the daily mundane booty chatter of this and most other forums. It is mighty powerful, indeed. Those that have been following this thread would be wise to do a double take on what you've brought to the lab bench
I don't think Krzysztof was attempting to be malicious in his reply. After reading it a few times, seems a couple of words and sentence structures just gave the impression of such. Please correct me, if I'm wrong, Krzysztof.
Now, I am by no means, an authority on the topic of DSP. I've frequented this thread, as a pupil, moreso than almost any other. However, I have learned a few things that I think might be of value to you in your pursuit. You may already know everything I'm sharing w/ you and if that is, in fact, the case, please don't take it as patronizing.
1. MESA has been determined to be one of the less ideal methods of spectral analysis because of it's inability to identify frequencies in above average noisy data scenarios (which is what the price data from financial markets has been determined to be). Goertzel's Algorithm, on the other hand, might be a better choice. Please reference the Meyer's Analytics "paper's page", artictle titled "Mesa vs. GDF"
2. There is further discussion on the aforementioned topic (indicators included) in this very thread, starting @ post 225.
3. Sergey Iljuhkin, creator of the DFG software, created something very similar to the indicator you posted (which, I think, means you're on the right track ), complete w/ library and all, posted here by NewDigital. I've used it in the past. Very good, IMHO. Might be worth a look.
4. Krzysztof was accurate in his assessment of CB's thread. I know a couple of folks who've collaborated w/ CB and they confirmed that he will share only pictures and theories, nothing concrete. That being said, those on this thread, like you, clahn04, Simba, dvarrin, and fajst_k are the communal type and are willing to exchange thoughts and the resulting products openly. Please don't allow that flow of progress to be halted or else the thread will experience another lull in forward movement.
I have a setup that I've been using and it only has 2 indicators: un-optimized FTLM_KG and STLM in histogram form, both smoothed via a Jurik price proxy to remove some of the noise present, resulting from the fact the two indicators are not tuned to the pair and t.f. Nothing amazing and depending on the settings may lag a bar every now and then, but effective enough until I can digest more information and excrete something better i.e. easily tunable FTLM and STLM indicators. Screenshot attached.
Best Regards,
F_F_L
Hello forex_for_life,
thanks for your information. Your both Indi from page 49 of these thread FLM_KG and STLM are looking very nice. Would it be possible that you have posts the two Indicators? It is exactly what I'm looking for. Thanks in advance and regard from Munich.