A little surprised :) Thought I'd share and ask a NOT rhetorical question. - page 10

 
Renat:

When you make strong statements in public, you have to be prepared for public evidence.

Oh, can I quote you on that?
 
Renat:

Unfortunately, this is not a test, but another unsubstantiated statement.

I didn't write for nothing:

"I've done the maths here and here are the totals" comparisons can in no way serve as evidence without publicly reproducing the whole test.

When you make strong statements publicly, you have to prepare for public evidence. That is, put the tester on the table so that it can be tested and make sure that both the calculations and the results are correct.

I have not written anything in the form of a report yet. Did I write what I see with completely my left parameters? Where did you see that I was testing something? I don't know how long it will work in MT5 - I won't even try it, it may take more than a year. I have already said that I will write a test when I will have enough time. If someone has time, let him write it according to the approximate "ToR" that I have written. I have time for nonsense while no. Will be - for fun I will write. Don't you actually think you may RUN a bare C++ compiler? Ha-ha. The only question is how many hundreds of times faster it will be.

So there's nothing to talk about, yet.

 

And there was no doubt that it would all come down to failure to provide evidence.

It's easy to overtake C++ compiler, because the terminal and the tester are written in it. The kernel of the infrastructure calculations is all optimized in C++. MQL5 code is completely converted to native x86/x64 before being executed, and executed at the maximum speed.

There will not be a hundredfold difference as soon as you show your creation to people. There will be nothing but laughter.

 
Renat:

And there was no doubt that it would all come down to failure to provide evidence.

It's easy to overtake C++ compiler, because the terminal and the tester are written in it. The kernel of the infrastructure calculations is all optimized in C++. MQL5 code is completely converted to native x86/x64 before being executed, and executed at the maximum speed.

There will not be a hundredfold difference as soon as you show your creation to people. There will be nothing but laughter.

What your creation? :)) The one that works the way I want it to and is faster than MT5? Who wants to see it?

But I have already written a test. Wait for it. :)

 
Academic:

What's your creation? :)) The one that works the way I need and faster than MT5 SUPRE? Who has to show it?

But I have already written a test. Wait for it. :)

Yes, it is the very creation you keep talking about, but the code is a mystery.

Without the code there is nothing to talk about, only the publication of the code will give you the opportunity to point your finger at a line and say here you have an error which gives such an increase.

Or I prepared another phrase "so you only use opening prices of the day, put tester by opening prices on D1 and compare" :o)

ZZZY As the cat hippo used to say "madam, for the time that I serve the sire, I have seen not only naked women, but also women with completely stripped skin", so feel free, the code in the studio, something super new there is unlikely, but the error will help to find.

 
Academic:


Good. If I have time, I will make special tests. But if someone has it (time) now and could do it, it would be interesting to see.

Basically we need to make an EA which calculates ticks and then it should be run (better to do it that way) from March 2007 till now. With two integer parameters in the range from 0 to 100 - a total of 10000 runs. Use a time stamp to document the start and the end of optimization. Then divide this time by the number of ticks multiplied by the number of runs. We will get minimal overhead per one tick - let's call it NM.

Then the Expert Advisor must be more complex - for example set to do N trades per bar. For example, for 300 bars one trade. With average number of ticks per bar let's say L - we can obtain the number of ticks for which one trade should be conducted. Buy and sell is random. That's all. Such an EA can be implemented both on МТ4 and МТ5.


Then we complicate things further - take indicators, for example, one of the mask.


As the result, we should always get the time of one tick - divide it by the number of ticks. And we can for example correlate this number with NM (minimum overheads) and that's it.

As a result we'll get performance INDEX independent from number of ticks. Both absolute (as time of one tick) and relative to NM.

A well specified way of performance analysis.

First of all compare the optimizers at least on simple Expert Advisors in MT4 and MT5.

Then on random inputs (for each optimizer plot the performance vs. the frequency of random inputs).

And then the Expert Advisor on the simplest indicators and its all-in-one analogue.

Preparing such an analysis is really not difficult. You just need a strong desire and free time.

And I do not know why I should show my own calculator, it's not universal and therefore it's maximally optimized. By definition, it is faster than ANY (not only MetaQuotes) universal optimizer.

Only universal tester-optimizers should be compared with each other. Take MT4 and MT5 only for the time being. Let me say up front that the universal tester for JForex API is considerably slower (this can be seen by eye) than MetaQuotes' tester. However, of course, the quality of testing (especially of multicurrency ones) is much better there.

Then, you can use NinjaTrader, AmiBroker and others. The main thing is to determine the comparison method.

 
Urain:

Yes, it is the very creation you keep talking about, but the code is a mystery.

Without the code there is nothing to talk about, only the publication of the code will give you the opportunity to point your finger at a line and say here you have an error which gives such an increase.

Or I prepared another phrase "so you're only using opening prices of the day, put the tester by opening prices on D1 and compare" :o)

So, don't be shy, give us the code, it's not likely to be something super new there, but we will help you find the error.


Mister :) Why should I show you the code which must be .... 10,000 lines? :) Or maybe I should show you what three nested loops look like :)) Well, you actually think what you're saying. :) That's funny.

 
Renat:

And there was no doubt that it would all come down to failure to provide evidence.

It's easy to overtake C++ compiler, because the terminal and the tester are written in it. The kernel of the infrastructure calculations is all optimized in C++. MQL5 code is completely converted to native x86/x64 before being executed, and executed at the maximum speed.

There will not be a hundredfold difference as soon as you show your creation to people. There will be nothing but laughter.

Well let's make fun of MT5 - here's the C++ code and the result :)

#include <Windows.h>
#include <stdio.h>

int main ( void )
{

        double s = 123456789.;
        double r = 0.;

        DWORD t0 = GetTickCount();
        
        int e=10000;

        for ( int i=0; i<e; i++){
                for( int j=0; j<e; j++){
                        double d = i+j;
                        r *=d;
                }
        }

        DWORD t1 = GetTickCount();

        double dt = t1-t0;
        
        double it = ( dt / (e*e) ) / 1000. ;

        printf ( "0 = %f, it = %g (sec), %f mio per sec", r, it, ( 1./it )/1000000. );
}


===============

0 = 0.000000, it = 7.8 e-010 (sec), 1282.051282 mio per sec

Let's wait for at least 400 million cycles per second. :) But here you have 1282 MILLION cycles per second. :))

 
Academic:
Well let's make fun of MT5 - here's the C++ code and the result :)

Wait at least 400 million cycles per second. :) But here you have 1282 MILLION cycles per second. :))

Why the hell would you do that?! Comparing a universal tester-optimiser with its own calculator is inherently incorrect. Your calculator will, by definition, be faster than the universal variant.

Let's not reduce more or less constructive dialogue to such a bullshit comparison.

You suggested a comparison method, already write it. I propose not to litter the thread, as they did above, and leave a more or less normal level of conversation. Otherwise, it will start such a crapfest that the thread will become just crap.

 
hrenfx:

Why the hell would you do that?! Comparing a universal tester-optimiser with its own calculator is inherently incorrect. Your calculator will, by definition, be faster than the universal variant.

Let's not reduce more or less constructive dialogue to such a bullshit comparison.

You suggested a comparison method, already write it. I propose not to litter the thread, as they did above, and leave a more or less normal level of conversation. Otherwise, it will be such a shambles that the thread will become just crap.

Well, I was told that it's easy to overtake a C compiler - well, if it's impossible to overtake it here, then the specialized optimizer certainly will not make it. :)

Reason: