Un peu surpris :) J'ai pensé que je devais partager et poser une question NON rhétorique. - page 10

 
Renat:

Lorsque vous faites des déclarations fortes en public, vous devez être préparé aux preuves publiques.

Oh, je peux te citer là-dessus ?
 
Renat:

Malheureusement, il ne s'agit pas d'un test, mais d'une autre déclaration non fondée.

Je n'ai pas écrit pour rien :

Les comparaisons du type "j'ai fait le calcul ici et voici les totaux" ne peuvent en aucun cas servir de preuve sans reproduire publiquement l'ensemble du test.

Lorsque vous faites des déclarations fortes en public, vous devez vous préparer à des preuves publiques. C'est-à-dire qu'il faut poser le testeur sur la table pour pouvoir le tester et s'assurer que les calculs et les résultats sont corrects.

Je n'ai encore rien écrit sous forme de rapport. Ai-je écrit ce que je vois avec tous mes paramètres gauches ? Où avez-vous vu que je testais quelque chose ? Je ne sais pas combien de temps cela fonctionnera dans MT5 - je ne l'essaierai même pas, cela prendra au moins un an. J'ai déjà dit que j'écrirai un test quand j'aurai assez de temps. Si quelqu'un a le temps, qu'il l'écrive selon les "ToR" approximatifs que j'ai rédigés. J'ai le temps de faire des bêtises alors que non. Ce sera - pour le plaisir j'écrirai. Ne pensez-vous pas que vous pourriez faire tourner un compilateur C++ nu ? Ha-ha. La seule question est de savoir combien de centaines de fois il sera plus rapide.

Donc il n'y a rien à dire, pour l'instant.

 

Et il n'y avait aucun doute que tout se résumerait à l'absence de preuves.

Il est facile de dépasser le compilateur C++, car le terminal et le testeur sont écrits dedans. Le noyau des calculs d'infrastructure est entièrement optimisé en C++. Le code MQL5 est entièrement converti en code natif x86/x64 avant d'être exécuté, et exécuté à la vitesse maximale.

Il n'y aura pas de différence au centuple dès que vous montrerez votre création aux gens. Il n'y aura que des rires.

 
Renat:

Et il n'y avait aucun doute que tout se résumerait à l'absence de preuves.

Il est facile de dépasser le compilateur C++, car le terminal et le testeur sont écrits dedans. Le noyau des calculs d'infrastructure est entièrement optimisé en C++. Le code MQL5 est entièrement converti en code natif x86/x64 avant d'être exécuté, et exécuté à la vitesse maximale.

Il n'y aura pas de différence au centuple dès que vous montrerez votre création aux gens. Il n'y aura que des rires.

Quelle est votre création ? :)) Celui qui fonctionne comme je le souhaite et plus rapidement que MT5 ? Qui veut le voir ?

Mais j'ai déjà écrit un test. Attendez. :)

 
Academic:

Quelle est votre création ? :)) Celui qui fonctionne comme je le souhaite et plus rapidement que MT5 SUPRE ? Qui doit le montrer ?

Mais j'ai déjà écrit un test. Attendez. :)

Oui, c'est la création même dont vous parlez sans cesse, mais le code est un mystère.

Sans le code, il n'y a rien à dire, seule la publication du code vous donnera l'occasion de pointer du doigt une ligne et de dire "ici vous avez une erreur qui donne telle augmentation".

Ou alors j'ai préparé une autre phrase "pour que vous n'utilisiez que les prix d'ouverture du jour, mettez le testeur par les prix d'ouverture sur D1 et comparez" :o)

ZZZY Comme le chat hippopotame avait l'habitude de dire "madame, pour le temps que je sers le sire, j'ai vu non seulement des femmes nues, mais aussi des femmes avec la peau complètement dénudée", alors n'hésitez pas, le code dans le studio, quelque chose de super nouveau il est peu probable, mais l'erreur aidera à trouver.

 
Academic:


Bien. Si j'ai le temps, je ferai des tests spéciaux. Mais si quelqu'un l'a (le temps) maintenant et pouvait le faire, ce serait intéressant à voir.

En gros, nous devons créer un EA qui calcule les ticks et le faire fonctionner (c'est mieux de le faire comme ça) de mars 2007 à aujourd'hui. Avec deux paramètres entiers dans la plage de 0 à 100 - un total de 10000 exécutions. Utilisez un horodateur pour documenter le début et la fin de l'optimisation. Divisez ensuite ce temps par le nombre de ticks multiplié par le nombre de passages. Nous obtiendrons des frais généraux minimaux par coche - appelons cela NM.

Dans ce cas, le conseiller expert doit être plus complexe - par exemple, il doit être configuré pour effectuer N transactions par barre. Par exemple, pour 300 barres, une transaction. Avec un nombre moyen de ticks par barre, disons L, nous pouvons obtenir le nombre de ticks pour lequel une transaction doit être effectuée. L'achat et la vente sont aléatoires. C'est tout. Une telle EE peut être mise en place à la fois sur МТ4 et МТ5.


Ensuite, nous compliquons encore les choses - prenons par exemple les indicateurs, l'un des masques.


Par conséquent, nous devrions toujours obtenir le temps d'un tick - le diviser par le nombre de ticks. Et nous pouvons par exemple corréler ce chiffre avec les NM (frais généraux minimums) et c'est tout.

Par conséquent, nous obtiendrons un INDEX de performance indépendant du nombre de ticks. A la fois absolu (en tant que temps d'un tick) et relatif à NM.

Une façon bien précise d'analyser les performances.

Tout d'abord, comparez les optimiseurs au moins sur les conseillers experts simples dans MT4 et MT5.

Puis sur des entrées aléatoires (pour chaque optimiseur, tracer les performances en fonction de la fréquence des entrées aléatoires).

Et puis le conseiller expert sur les indicateurs les plus simples et son analogue tout-en-un.

Préparer une telle analyse n'est vraiment pas difficile. Vous avez juste besoin d'une forte envie et de temps libre.

Et je ne sais pas pourquoi je devrais montrer ma propre calculatrice, elle n'est pas universelle et donc elle est optimisée au maximum. Par définition, il est plus rapide que TOUT optimiseur universel (pas seulement MetaQuotes).

Seuls les testeurs-optimisateurs universels doivent être comparés entre eux. Ne prenez que MT4 et MT5 pour l'instant. Permettez-moi de dire d'emblée que le testeur universel de l'API JForex est considérablement plus lent (cela se voit à l'œil) que le testeur de MetaQuotes. Toutefois, la qualité des tests (en particulier des tests multi-devises) y est évidemment bien meilleure.

Ensuite, vous pouvez utiliser NinjaTrader, AmiBroker et d'autres. L'essentiel est de déterminer la méthode de comparaison.

 
Urain:

Oui, c'est la création même dont vous parlez sans cesse, mais le code est un mystère.

Sans le code, il n'y a rien à dire, seule la publication du code vous donnera l'occasion de pointer du doigt une ligne et de dire "ici vous avez une erreur qui donne telle augmentation".

Ou alors j'ai préparé une autre phrase "si vous n'utilisez que les prix d'ouverture du jour, mettez le testeur par les prix d'ouverture sur D1 et comparez" :o)

Alors, ne soyez pas timide, donnez-nous le code, il est peu probable qu'il y ait quelque chose de super nouveau, mais nous vous aiderons à trouver l'erreur.


Monsieur :) Pourquoi devrais-je vous montrer le code qui doit être ..... 10 000 lignes ? :) Ou peut-être que je devrais vous montrer à quoi ressemblent trois boucles imbriquées :)) Eh bien, tu penses réellement ce que tu dis. :) C'est drôle.

 
Renat:

Et il n'y avait aucun doute que tout se résumerait à l'absence de preuves.

Il est facile de dépasser le compilateur C++, car le terminal et le testeur sont écrits dedans. Le noyau de l'infrastructure de calcul est entièrement optimisé en C++. Le code MQL5 est entièrement converti en code natif x86/x64 avant d'être exécuté, et exécuté à la vitesse maximale.

Il n'y aura pas de différence au centuple dès que vous montrerez votre création aux gens. Il n'y aura que des rires.

Et bien moquons nous de MT5 - voici le code C++ et le résultat :)

#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

Attendons au moins 400 millions de cycles par seconde. :) Mais ici vous avez 1282 MILLIONS de cycles par seconde. :))

 
Academic:
Et bien moquons nous de MT5 - voici le code C++ et le résultat :)

Attendez au moins 400 millions de cycles par seconde. :) Mais ici vous avez 1282 MILLIONS de cycles par seconde. :))

Pourquoi diable ferais-tu ça ? ! Comparer un testeur-optimiseur universel avec son propre calculateur est intrinsèquement incorrect. Votre calculatrice sera, par définition, plus rapide que la variante universelle.

Ne réduisons pas un dialogue plus ou moins constructif à une telle comparaison de merde.

Vous avez proposé une méthode de comparaison, écrivez-la déjà. Je propose de ne pas polluer le fil, comme ils l'ont fait plus haut, et de laisser un niveau de conversation plus ou moins normal. Sinon, cela va déclencher une telle pagaille que le fil de discussion ne sera plus que de la merde.

 
hrenfx:

Pourquoi diable ferais-tu ça ? ! Comparer un testeur-optimiseur universel avec son propre calculateur est intrinsèquement incorrect. Votre calculatrice sera, par définition, plus rapide que la variante universelle.

Ne réduisons pas un dialogue plus ou moins constructif à une telle comparaison de merde.

Vous avez proposé une méthode de comparaison, écrivez-la déjà. Je propose de ne pas polluer le fil, comme ils l'ont fait plus haut, et de laisser un niveau de conversation plus ou moins normal. Sinon, ce sera une telle pagaille que le fil de discussion ne sera plus que de la merde.

On m'a dit qu'il était facile de dépasser un compilateur C. Eh bien, s'il est impossible de le dépasser ici, l'optimiseur spécialisé n'y arrivera certainement pas. :)