Questions d'un "mannequin - page 198

 
lazarev-d-m:

de cette condition ressort qu'elle sera performante dans trois situations :

1) Lorsque le testeur fonctionne

2)Lorsque le testeur ne fonctionne PAS

3) Quand le testeur visuel fonctionne

pour que la fonction fonctionne toujours, vous devez probablement supprimer la deuxième condition et relier la première et la troisième avec &&.

Plutôt comme ça :

2 ou (1 et 2). C'est ce dont j'ai besoin. Pas pour être en mode testeur, mais en mode testeur visuel.

Je suis désolé, mais je pense que j'ai juste confondu les terminaux et testé le mauvais code. Mon état semble fonctionner correctement.

 
lazarev-d-m:

pour que la fonction fonctionne toujours, vous devez probablement supprimer la deuxième condition et relier la première et la troisième avec &&.

Vous voulez dire que cette condition est suffisante :

if(MQL5InfoInteger(MQL5_TESTER)!=1 || MQL5InfoInteger(MQL5_VISUAL_MODE)==1)

 
tor4en:

Vous voulez dire qu'une telle condition est suffisante :

if(MQL5InfoInteger(MQL5_TESTER)!=1 || MQL5InfoInteger(MQL5_VISUAL_MODE)==1)

Oui, ça marche aussi. Merci.
 
Comment influencer un paramètre à optimiser si sa plage dépend d'un autre paramètre optimisé ? Appeler expertremove dans oninit si le paramètre ne convient pas ? Quelle est la meilleure façon d'accélérer l'optimisation?
 
aharata:
Comment influencer le paramètre à optimiser, si sa plage dépend d'un autre paramètre optimisé ? Appeler expertremove dans oninit si le paramètre ne convient pas ? Quelle est la meilleure façon d'accélérer l'optimisation ?

Examinez les fonctions ParameterSetRange et ParameterGetRange. Ils vous permettent de réécrire le paramètre à énumérer sur la base des conditions non numériques définies précédemment.

Par exemple, comme ceci :

//--- input parameters
sinput int   Param1=4;            // хитрый параметр
sinput int   Param2=30;           // хитрый параметр
sinput bool  Param3=false;        // хитрый параметр
                                  
sinput long  Counter=1;           // а вот этот параметр мы и будем оптимизировать (синтетический счетчик)


//--- на основе Param1, Param2 и Param3 высчитаем хитрое количество проходов счетчика Counter
ParameterSetRange("Counter",true,0,0,1,1+long(Param3 ? (Param1*Param2):(Param1*2));

Notez l'utilisation de sinput (entrée statique) au lieu de input, qui donne un changement bloqué "de" et "à" ce paramètre dans l'interface graphique. De même, le paramètre Compteur, dont les modifications sont bloquées par la fonction ParameterSetRange, est débloqué par la définition de limites calculées.

Vous pouvez utiliser ce mécanisme pour créer des conditions d'entrée très complexes qui peuvent être utilisées pour faire tourner des compteurs de facturation synthétiques. N'oubliez pas que la fonction de paramétrage ne fonctionne que dans OnTesterInit.

 
Merci beaucoup, Renat. Juste ce dont j'avais besoin !)
 
Question sur la mise en place d'un cycle de démarrage du terminal pour les tests en ligne de commande.

Situation actuelle :
1. J'utilise la ligne de commande pour démarrer le terminal afin d'optimiser le conseiller expert.
2. Le terminal démarre, optimise et enregistre le résultat dans un fichier xml.
3. Fermez manuellement le terminal
4. Je modifie le fichier ini (changer par exemple la période d'essai)

5. Passons au point 1.


Question : quelqu'un a-t-il déjà pu automatiser ce processus, notamment en sélectionnant automatiquement les paramètres du fichier ini dans une liste donnée, et en fermant le terminal ? Veuillez nous faire part de vos idées sur la manière dont cela pourrait être fait. La meilleure option serait d'offrir une solution prête à l'emploi pour automatiser le processus ci-dessus. Quelqu'un y a sûrement déjà pensé avant moi.

 
Il existe une commande dans le fichier de configuration pour fermer automatiquement le terminal à la fin d'un test. Regardez dans le fichier d'aide.
 
papaklass:

Renat, faites un STOCKAGE pour les quatre, S'IL VOUS PLAÎT. J'ai téléchargé le Conseiller Expert sur mon ordinateur portable, mais j'ai oublié les inclusions. Maintenant, je suis assis ici comme un simple :) programmeur, écrivant des fonctions au lieu de déboguer l'Expert Advisor.

Ma clé USB est notre fidèle STOCKAGE :)

SZY, bien, et du courrier de temps en temps.

 
sergeev:

La clé USB est notre fidèle STOCKAGE :)

ZS, et parfois le courrier.

Clé USB - je dirais qu'elles se cassent souvent.

J'ai un disque dur externe qui se synchronise automatiquement une fois par jour (environ 300 gigas de fichiers de travail). Si je vais quelque part, je le mets dans mon sac et je suis content.

Ils disent que les disques ssd sont virtuellement indestructibles. Mais très cher.