Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 1866

 
Andrey Sokolov #:

Les tableaux k_buffer[0] et d_buffer[0] contiennent les dernières valeurs des indicateurs. Quel est le problème de les sortir et de les voir soi-même ?

Oui, en effet, apparemment mon erreur est ailleurs. Merci !

 
Andrey Sokolov #:

Qu'est-ce qui ne fonctionne pas exactement dans l'abréviation du code ?

J'ai déjà écrit. Si certaines conditions sont remplies, plusieurs commandes seront fermées. Ils sont placés sur différentes paires de devises et dans différentes directions. Voici un morceau de code.

 if ( NormalizeDouble((MaxOpenSell(2) + MaxOpenBuy(2) + MinOpenSell(2))*Point,Digits) >= Profit1 && FindLastSell() >= Block 
         && FindLastBuy() >= 1 && MaxOpenSell(2) > 0 && MA1 < MA2)
      {
         LockTicket = 0;
         CalProfHis = 0;
         bool close =  OrderClose((int)MaxOpenSell(5),MaxOpenSell(3), Ask, Slippage, clrPink);
              close =  OrderClose((int)MinOpenSell(5),MinOpenSell(3), Ask, Slippage, clrPink);
              close =  OrderClose((int)MaxOpenBuy(5),MaxOpenBuy(3), Bid, Slippage, clrBlue);
      }

J'ai conclu trois commandes avec elle.

Cependant, ma société de courtage les rate parfois, je suppose que c'est à cause de nombreux signaux à la fois. Ainsi, je peux vérifier chaque commande et la répéter si j'échoue.
La question est de savoir comment le faire correctement et avec compétence, sans écrire un code énorme. Je suis sûr qu'il y a un chemin plus court, c'est pourquoi je vous demande à vous, mes programmeurs chevronnés.

 
makssub #:

Je peux donc faire un chèque pour chaque commande, et recommencer si elle échoue.
La question est de savoir comment le faire correctement et avec compétence, sans écrire un code énorme. Je suis sûr qu'il y a un moyen plus court, donc je vous demande à vous, nos programmeurs seniors.

L'option que j'ai proposée ne vous convient pas ?

C'est le forum pour le trading, les systèmes de trading automatisés et les tests de stratégies.

Toutes les questions des débutants sur MQL4 et MQL5, ou tous les conseils et discussions sur les algorithmes et les codes.

Mihail Matkovskij, 2022.01.17 10:35

Si la condition de sortie/fermeture se produit, ajoutez les ticks au tableau. Ensuite, si le tableau n'est pas vide, bouclez-le, en appelant OrderClose pour chaque ticket. Ensuite, vérifiez l'existence de chaque ticket, et supprimez-le de la liste (tableau). Répétez ces actions à des intervalles de 1 à 3 secondes jusqu'à ce que la liste soit vide.


 
Le polysticisme est tout
 
Artyom Trishkin #:
Le polysticisme est tout

c'est au début :)

Bien sûr, quand je vois de tels codes, des larmes de pitié me viennent aux yeux.

 
Vitaly Muzichenko #:

c'est au début :)

Bien sûr, quand je vois de tels codes, des larmes de pitié me viennent aux yeux.

En même temps, les béquilles ne s'écrivent pas toutes seules...

 
Vitaly Muzichenko #:

c'est au début :)

Bien sûr, quand je vois de tels codes, des larmes de pitié me viennent aux yeux.

Messieurs, veuillez utiliser une critique raisonnée.

 
Andrey Sokolov #:

Messieurs, veuillez utiliser une critique raisonnée.

C'est juste nous... en train de parler pendant une pause cigarette. Ne faites pas attention à nous.

 
Tout peut être appelé béquilles. Comme on ne comprend pas bien le code machine en langage assembleur, on a inventé les langages de programmation de haut niveau et de très haut niveau. Qu'est-ce qui n'est pas des béquilles ?
 
Mihail Matkovskij #:

Lorsqu'une condition de sortie/fermeture se produit, ajoutez les tickets au tableau. Ensuite, si le tableau n'est pas vide, bouclez-le, en appelant OrderClose pour chaque ticket. Vérifiez ensuite l'existence de chaque ticket, et supprimez-le de la liste. Répétez ces actions à des intervalles de 1 à 3 secondes jusqu'à ce que la liste soit vide.

Pouvez-vous montrer l'ensemble de la fonction de fermeture ?

Raison: