fake trading strategy?
don't have to convince anyone anything, just myself!!!!!!!!
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.
out of sample
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
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*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
* 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;
// 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)
for (i=0; i<degree; i++)
Qn=50; // above formula gives too high Qn, to be verified
// ...then starts to find peaks (and valleys)
peaks= s1; // include first point ...
peaks= f_min+delta_f; // ... and frequency
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)
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 ]
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);
// 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)
if (dm < 0.0) f2=fm;
delta_f2=(f2-f1)*fine_stepping; // adapt delta_f2
peaks= spectrumValue (fm,aa,degree);
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??
if (dm > 0.0) f2=fm;
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:
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
FTLM_KG and STLM Indicator
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.
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.
I posted a mtf stlm2 in the mtf thread,will repost here,so that you can check it,by just changing STLM2 for FTLM or FTLM_KG you will have the multiple time frame capabilities for these filters too.Additionally ,we can just modify the Ea to be able to test most strategies,including mtf of stlm2..
I download the #MFT_STLM2_v2 indicator posted by the great Simba, but didn't work for me on my plataform.
This version expired or something?
I'm looking for a STLM MTF to define the trend.
Thanks in advance friends.