[Archive] Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Je ne peux aller nulle part sans toi - 2. - page 246

 
BBSL:

Eddy a dit qu'il ne voulait offenser personne.

J'ai dit que j'en avais rien à foutre :D Je me comporterai correctement même si cela offense quelqu'un parce que c'est leur problème. mais c'est pour leur bénéfice, pour qu'ils puissent résoudre le problème et chercher les causes et éventuellement les éradiquer, sinon il y aura toujours des problèmes.
 
Ais:

Une raison de tout faire dans un seul fichier -> https://docs.mql4.com/ru/basis/variables/formal:

"Il est possible de passer des paramètres par référence. Dans ce cas, la modification de ces paramètres affectera les variables correspondantes dans la fonction appelée passée par référence. Vous ne pouvez pas transmettre des éléments de tableaux par référence. Les paramètres par référence ne peuvent être transmis qu'au sein d'un seul module, ce qui n'est pas possible pour les fonctions de bibliothèque. "


Oui, c'est peut-être ça le problème...

J'ai de nombreuses fonctions dont l'un des paramètres est un tableau passé par référence...

C'est-à-dire qu'il faut abandonner la structure de programme multi-fichier pour éviter les problèmes, ne peut-on pas le résoudre autrement ?

 
Bicus:

Messieurs, j'ai une question.

J'exécute l'EA dans le testeur. L'EA a accès à l'historique, c'est-à-dire qu'il recherche l'un des 20 derniers ordres fermés, par exemple.

Ceci est très facile dans un EA réel : nous pouvons spécifier la période de l'historique pendant laquelle les ordres doivent être affichés. Ainsi, les derniers ordres sont toujours "au-dessus". Mais, plus nous avons de transactions dans le testeur, plus les ordres sont fermés et plus leur liste doit être parcourue et plus le conseiller expert commence à travailler lentement.

Bref, comment avez-vous résolu ce problème ?

Les ordinateurs modernes effectuent des centaines de millions d'opérations par seconde.

Combien de transactions faut-il pour que l'ordinateur commence à ralentir ?

Dans votre cas "difficile", vous pouvez spécifier la condition selon laquelle la recherche de commande sera effectuée uniquement pour le dernier mois/semestre.

 
eddy:
J'ai dit en fait que je n'en ai rien à foutre :D je me comporterai correctement même si cela offense quelqu'un parce que c'est leur problème. mais c'est pour leur bien, donc ils veulent résoudre le problème et commencer à chercher les causes et éventuellement les éradiquer, sinon il y aura toujours des problèmes.


eddy, la notion de droit est très subjective ;))

Si un groupe de personnes pense que quelque chose est généralement accepté et juste, alors c'est la règle pour ce groupe de personnes. Il existe un tel groupe sur ce forum.

C'est très bien d'avoir sa propre vision du monde, mais passer du temps à en discuter et encore plus à changer ou rééduquer les gens est un très grand luxe)).

Se disputer sur la justesse des idées est un gaspillage de ressources et nos problèmes ne sont pas résolus.

Je propose, avec tout le respect que je vous dois et la compréhension de vos idées, de revenir à la programmation))).

 
tmt0086:
Salut =) Je viens d'écrire un EA... il n'y a pas de conditions, juste une ouverture sur GBPUSD et EURUSD. Ainsi, lors du test, il ne ferme pas les ordres GBPUSD lorsqu'il se trouve sur EURUSD. Et vice versa. Vous pouvez le paramétrer ? Ainsi, il ouvrira les commandes. Je ne peux pas le faire sur la démo, mais je ne peux pas le tester.

Quelqu'un peut me dire...
 
Sergey_Rogozin:

Dans votre cas "difficile", vous pouvez introduire une condition selon laquelle les commandes ne seront rejouées qu'au cours du dernier mois/semestre.

Quelles conditions ?

Il est impossible de trier l'historique dans le testeur. La dernière commande arrive tout en bas. Il faut faire défiler toute l'histoire pour y accéder.

Ai-je tort ?

 
tmt0086:

Quelqu'un peut me dire...

Il n'existe pas de testeur de stratégie multi-devises dans MT4.
 
BBSL:


eddy, la notion de droit est très subjective ;))

Il y a des règles objectives et donc la correction. il y a aussi l'importance des règles et la hiérarchie des règles. si une règle est moins importante qu'une autre ou hiérarchiquement inférieure, elle doit être ignorée si une règle l'exige. j'ai étudié les règles et la correction toute ma vie.
 
Roman.:

Il n'existe pas de testeur de stratégie multi-devises dans MT4.

Pouvez-vous me dire où je peux le tester et s'il fonctionne sur MT5 ?
 
Bicus:

Quelles sont les conditions ?

Il est impossible de trier l'historique dans le testeur. La dernière commande tombe tout en bas. Vous devez faire défiler toute l'histoire pour y accéder.

Ai-je tort ?


Non. Voici un exemple de sélection de la commande fermée la plus récente dans l'historique des commandes afin de pouvoir l'utiliser ultérieurement...

//---Поиск последнего отработавшего ордера для открытия очередной позиции ---
   
   for (orderIndex = (OrdersHistoryTotal() - 1); orderIndex >= 0; orderIndex--)
   {   
      if (!OrderSelect(orderIndex, SELECT_BY_POS, MODE_HISTORY))
      {
         Print("Ошибка при доступе к исторической базе (",GetLastError(),")");
         continue;
      }
   
      if ((OrderSymbol() != Symbol()) || (OrderMagicNumber() != MagicNumber))
      {
         continue;
      }
      
        
   //-------------------------Принимаем в расчет только ордер, закрытый недавно-----------------------
if(time<OrderCloseTime())     //(сравниваем его с хранящимся в пероеменной time) 
  {
    time=OrderCloseTime();     //если время закрытия ордера больше - ложим его в переменную
         
         
     
         int lastType = OrderType();
         double lastLots = OrderLots();
         double lastProfit = OrderProfit() + OrderSwap();
.....
.....
.....