Erreurs, bugs, questions - page 306

 
Jager:
Si les builds sont les mêmes partout, essayez également de supprimer les dossiers tester\Agent-x.x.x.x-xxxxx\bases (sur les agents distants et locaux). Cela a fonctionné pour moi si j'optimisais sur les devis MQ et le suivant sur les devis A-ri - parfois les agents distants ne voulaient pas démarrer non plus.
 
notused:
Si les builds sont les mêmes partout, essayez également de supprimer les dossiers tester\Agent-x.x.x.x-xxxxx\bases (sur les agents distants et locaux). Cela a fonctionné pour moi, si j'ai exécuté l'optimisation sur les devis MQ, et la suivante sur les devis A-ri - parfois les agents distants ne voulaient pas exécuter l'un ou l'autre.
S'il y a des dizaines d'agents sur différents ordinateurs, ce n'est pas réaliste. C'est censé fonctionner sans interférence extérieure.
 

L'auto-substitution de "uint" au lieu de "int" pour le snippet for est une perte de temps. Les débutants tombent souvent dans le panneau :

for (uint i = 0; i < SomeObject.Count - 1; i++)

uint peut être n'importe quel nombre entier non signé

 
Pour une raison quelconque, il arrive souvent qu'une fois que l'optimiseur a terminé son travail, la barre de menu contextuel "Exécuter un test unique" ne soit pas active dans l'onglet"Résultats de l'optimisation" et, par conséquent, le clic gauche sur la ligne de passage ne démarre pas non plus.
 

Aujourd'hui, je me suis rendu compte que rendre les paramètres de l'EA dynamiques

et il est impossible de combiner le conseiller-expert et l'indicateur en un seul.

...ensemble.

Y a-t-il un moyen ?

 
Im_hungry:

J'ai réalisé aujourd'hui qu'il n'est pas possible de rendre les paramètres de l'EA dynamiques dans l'EA, et qu'il n'est pas possible de combiner un EA avec un indicateur en un seul. Il n'y a aucun moyen de le faire ?

Vous feriez mieux de décrire non pas vos conclusions, mais les buts et objectifs que vous essayez d'atteindre.

 
Yedelkin:

Vous feriez mieux de décrire, non pas vos conclusions, mais les buts et objectifs que vous essayez d'atteindre.

Tout cela est correct, bien sûr. Voici la tâche à accomplir :

rendre le paramètre de l'indicateur dynamique, lorsque vous fermez la position.

Nous changeons un des paramètres de l'indicateur, c'est la tâche.

Voici ma solution :

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   vhandle=iCustom(NULL,0,"МТ5"); 
   if(vhandle<0)
     {
      Alert("Ошибка при создании индикаторов: ",GetLastError());
      return(-1);
     }
   return(0);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   IndicatorRelease(vhandle);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
{ 
   if (isNewBar()==true)
     {
     ArraySetAsSeries(Sp1Buffer,true);
     ArraySetAsSeries(Sp2Buffer,true);
//----------------------
     vhandle=iCustom(NULL,0,"МТ5",Symbol1,100,Lots,Close());
     if(vhandle<0)
       {
        Alert("Ошибка при создании индиката: ",GetLastError());
       }
     if(CopyBuffer(vhandle,0,0,50,Sp1Buffer)<0 || CopyBuffer(vhandle,1,0,50,Sp2Buffer)<0)
       {
        Alert("Ошибка копирования буферов индикатора номер ошибки:",GetLastError());
       }
     }    
}
//+==================================================================+
int Close()
{
...
}


Je peux dire que ce code fonctionne parce que les tests montrent des résultats différents, mais ce n'est pas clair...

mais c'est difficile de comprendre pourquoi ça marche si mal.

il se fige et donne les mêmes valeurs dans le tampon, bien que ce soit impossible (2 semaines avec les mêmes valeurs

S'il n'y a pas de boucle, il écrit simplement une erreur :

message via Alert

Ошибка копирования буферов индикатора номер
 

Les agents distants ont cessé de se mettre à jour.

2011.02.19 21:15:01     Tester  tester agent VPN  20 lvlaxim is failed
2011.02.19 21:15:01     VPN  20 lvlaxim connect closed
2011.02.19 21:15:01     Tester  tester agent VPN  20 lvlaxim cannot synchronized
2011.02.19 21:14:00     VPN  20 lvlaxim Old build 392 of Tester Agent. Attempt to update.
2011.02.19 21:14:00     VPN  20 lvlaxim authorized (agent build 392)
2011.02.19 21:13:59     VPN  20 lvlaxim connected

2011.02.19 19:08:29     VPN  20 lvlaxim connect closed
2011.02.19 19:08:29     Tester  tester agent VPN  20 lvlaxim cannot synchronized
2011.02.19 19:07:28     VPN  20 lvlaxim Old build 392 of Tester Agent. Attempt to update.
2011.02.19 19:07:28     VPN  20 lvlaxim authorized (agent build 392)
 
Voodoo_King:

construire 401.

1) Il semble que les utilisateurs de MT5 n'attendront jamais que les développeurs ajoutent un commutateur sur le formulaire de test et

écrire une ligne de code avec une condition if... pour éviter l'ouverture de la fenêtre de visualisation à chaque exécution

même si de nombreux utilisateurs dans ce fil de discussion l'ont demandé à plusieurs reprises il y a de nombreuses années.

2) Veuillez rétablir la sortie du calcul du temps d'optimisation restant dans la fenêtre du testeur en taille réelle (comme c'était le cas dans MT4).

Je le soutiens pleinement - peut-être dans le cadre de Servicedesk ? (fermez-la une centaine de fois).
 
notused:

L'auto-substitution de "uint" au lieu de "int" pour le snippet for est une perte de temps. Les nouveaux arrivants se laissent souvent prendre à ce piège :

uint peut être n'importe quel nombre entier non signé

Merci