Championnat d'optimisation des algorithmes. - page 75

 
Quelqu'un a-t-il essayé la tâche du texte ? Quels ont été les résultats ?
 
Si personne de l'administration de MetaQuotes ne se présente ici avant le 11 juillet, le championnat ne pourra pas avoir lieu, car la procédure de génération de FF pour le championnat ne pourra pas se faire sans eux.
 

Voyons maintenant ce dont le testeur ordinaire est capable dans le problème du texte, les conditions d'optimisation sont les mêmes que dans le code présenté - le texte n'a pas changé, c'est-à-dire 49 lettres.

ZS. J'ai trouvé, à mon avis, un travail incorrect de l'EA avec la bibliothèque dans le testeur, je vais signaler dans le fil d'erreur.

 

2016.06.29 02:15:16 Statistiques optimisation faite en 1 minutes 18 secondes

2016.06.29 02:15:16 Testeur optimisation génétique terminée sur la passe 23552

L'optimisation s'est terminée avec le meilleur résultat 35 (le nombre de lettres que l'optimiseur a pu nommer correctement sur 49).

Comme il n'y a pas d'option pour ajuster le nombre de passages/exécutions de FF dans le testeur standard, je dois exécuter mon algorithme avec le même nombre d'exécutions de FF si je veux comparer mon algorithme avec le standard.

Mon résultat :

2016.06.29 02:27:30.817 Script OAC Dik (GBPUSD,H1) Temps : 475397 µs ; 0.47539700 c

2016.06.29 02:27:30.817 Script OAC Dik (GBPUSD,H1) Courses FF : 23552

2016.06.29 02:27:30.817 Script OAC Dik (GBPUSD,H1) Max : 42.00000000

Bien que le testeur ait exécuté l'optimisation sur 4 cœurs et mon script sur 1 cœur, j'ai obtenu le résultat plus de 100 fois plus vite en temps.

Voici le texte de l'Expert Advisor pour tester l'optimiseur interne dans la tâche sur le texte :

//+------------------------------------------------------------------+
//|                                                      ProjectName |
//|                                      Copyright 2012, CompanyName |
//|                                       http://www.companyname.net |
//+------------------------------------------------------------------+
#property strict

//+------------------------------------------------------------------+
// тестовая фитнес функция чемпионата, не известна участникам
#import "FFtext.ex5"
int    GetParamCount (); 
void   GetParamProperties (double &min, double &max, double &step); 
double FF (double &array []); 
int    GetCountRunsFF (); 
void   PrintCodeToFile (double &param []); 
#import
//+------------------------------------------------------------------+

//--- input parameters
input int      Input1  = 0; 
input int      Input2  = 0; 
input int      Input3  = 0; 
input int      Input4  = 0; 
input int      Input5  = 0; 
input int      Input6  = 0; 
input int      Input7  = 0; 
input int      Input8  = 0; 
input int      Input9  = 0; 
input int      Input10 = 0; 
input int      Input11 = 0; 
input int      Input12 = 0; 
input int      Input13 = 0; 
input int      Input14 = 0; 
input int      Input15 = 0; 
input int      Input16 = 0; 
input int      Input17 = 0; 
input int      Input18 = 0; 
input int      Input19 = 0; 
input int      Input20 = 0; 
input int      Input21 = 0; 
input int      Input22 = 0; 
input int      Input23 = 0; 
input int      Input24 = 0; 
input int      Input25 = 0; 
input int      Input26 = 0; 
input int      Input27 = 0; 
input int      Input28 = 0; 
input int      Input29 = 0; 
input int      Input30 = 0; 
input int      Input31 = 0; 
input int      Input32 = 0; 
input int      Input33 = 0; 
input int      Input34 = 0; 
input int      Input35 = 0; 
input int      Input36 = 0; 
input int      Input37 = 0; 
input int      Input38 = 0; 
input int      Input39 = 0; 
input int      Input40 = 0; 
input int      Input41 = 0; 
input int      Input42 = 0; 
input int      Input43 = 0; 
input int      Input44 = 0; 
input int      Input45 = 0; 
input int      Input46 = 0; 
input int      Input47 = 0; 
input int      Input48 = 0; 
input int      Input49 = 0; 

double param []; 
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit () 
{ 
  ArrayResize (param, GetParamCount ()); 
  
  param [0] = Input1; 
  param [1] = Input2; 
  param [2] = Input3; 
  param [3] = Input4; 
  param [4] = Input5; 
  param [5] = Input6; 
  param [6] = Input7; 
  param [7] = Input8; 
  param [8] = Input9; 
  param [9] = Input10; 
  param [10] = Input11; 
  param [11] = Input12; 
  param [12] = Input13; 
  param [13] = Input14; 
  param [14] = Input15; 
  param [15] = Input16; 
  param [16] = Input17; 
  param [17] = Input18; 
  param [18] = Input19; 
  param [19] = Input20; 
  param [20] = Input21; 
  param [21] = Input22; 
  param [22] = Input23; 
  param [23] = Input24; 
  param [24] = Input25; 
  param [25] = Input26; 
  param [26] = Input27; 
  param [27] = Input28; 
  param [28] = Input29; 
  param [29] = Input30; 
  param [30] = Input31; 
  param [31] = Input32; 
  param [32] = Input33; 
  param [33] = Input34; 
  param [34] = Input35; 
  param [35] = Input36; 
  param [36] = Input37; 
  param [37] = Input38; 
  param [38] = Input39; 
  param [39] = Input40; 
  param [40] = Input41; 
  param [41] = Input42; 
  param [42] = Input43; 
  param [43] = Input44; 
  param [44] = Input45; 
  param [45] = Input46; 
  param [46] = Input47; 
  param [47] = Input48; 
  param [48] = Input49; 
  //---
  return (INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit (const int reason) 
{ 
  PrintCodeToFile (param); 
  //---
}
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick () 
{ 
  //---
}
//+------------------------------------------------------------------+
//| Tester function                                                  |
//+------------------------------------------------------------------+
double OnTester () 
{ 
  double ret = FF (param); 
  
  //---
  return (ret);
}
//+------------------------------------------------------------------+

Bien sûr, et j'en suis sûr, si vous exécutez l'optimisation dans le testeur plusieurs fois pour être sûr des résultats, vous obtiendrez probablement de meilleurs résultats. Mais je suis honnêtement trop paresseux pour nettoyer le cache une centaine de fois et attendre si longtemps. Mais si quelqu'un a beaucoup de temps - peut payer plusieurs fois et obtenir le résultat moyen fiable optimiseur de personnel.

Pour être honnête, je suis surpris par les résultats de l'optimiseur interne. Je m'attendais à des résultats bien pires (sans vouloir offenser MQ), car il utilise l'AG binaire. Je vous rappelle que c'est une tâche très compliquée, non seulement je dois choisir la meilleure option parmi d'innombrables options pour un nombre limité de passages, mais FF est une surface discrète où l'algorithme n'a rien à quoi se tenir.

ZZZI :

"reako-scientific article zhovataye zhevataye mt'yuipa" - ceci a été collecté par un testeur personnel

"Il est rare qu'un article scientifique combine ces deux types" - et c'est le texte de la tâche.

ZZZI. J'ai joint le fichier *.set du conseiller avec un meilleur résultat.

Dossiers :
 
Bonjour ! Il y a quelqu'un ici... ?
 
Lecture.
 

J'étais en vacances. Où se trouve le post avec les fichiers de connexion finaux joints et les options (1 et 2) et, de préférence, un argumentaire expliquant pourquoi l'option 2 est nécessaire ?

Puisque l'inconvénient de cette option que j'ai écrit plus tôt et n'a pas obtenu une réponse

В примере библиотеки участника по 2-му есть импорт FF и в скрипте запуска и в библиотеке участника. Но если я пришлю ex файл, какой путь импорта ff туда зашивать? Как запускать на другой FF? Не продумано.

J'ai pensé que cette question sera résolue par les participants lorsque je ne serai plus là (

 
Merde, tout le monde se bat et se disperse.
 
Igor Volodin:

J'étais en vacances. Où se trouve le post avec les fichiers de connexion finaux joints et les options (1 et 2) et, de préférence, un argumentaire expliquant pourquoi l'option 2 est nécessaire ?

Puisque l'inconvénient de cette option que j'ai écrit plus tôt et n'a pas obtenu une réponse

J'ai pensé que la question serait résolue par les participants lorsque je serais parti (

Utiliser la méthode de connexion par la 2ème variante. Certains participants pensent qu'il y a beaucoup de travail pour refaire leurs algorithmes pour la 1e variante. Alors que nous pouvons facilement faire n'importe quel algorithme pour la 2ème variante. Cette question est donc réglée.
Inconvénient de la 2ème option d'une manière différente, mais dans le championnat c'est acceptable.
Chemin vers les bibliothèques standard "ff.ex5".
 
Igor Volodin:
Oh, mec, tout le monde est déchiré et dispersé.
Je suis là. Je suis par ici.
Nous attendons les représentants de MQ, sans lesquels le championnat ne peut avoir lieu, car eux seuls peuvent être sûrs de générer la clé pour FF.