L'EA ne fonctionne pas sur plusieurs paires, besoin d'aide - page 5

 
Matt_Townsend: Donc je ne devrais pas avoir de Continue ou Break dans la boucle du tout ?
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true) break;
      if(OrderMagicNumber()==MagicNumber || OrderSymbol()==Symbol()) continue;
Non pertinent. Vous avez complètement raté le coche.
  1. Je vous ai donné un formulaire sans aucun.
  2. Keith Watford vous a donné une version correcte avec, et vous l'avez utilisée.
  3. Maintenant vous l'avez encore cassé. Si vous sélectionnez un ordre, vous sortez de la boucle et ne faites rien.
    Vous l'avez encore cassé. Pensez à votre condition if.
    CommanderNuméroMagiqueMagicNumberOrderSymbolSymboleif(OrderMagicNumber()==MagicNumber || OrderSymbol()==Symbol())
    1 123 EURUSD EURUSD Ordre vrai rejeté (les symboles correspondent)
    123 123 EURUSD EURUSD Ordre vrai rejeté (correspondance MN)
    123 123 EURJPY EURUSD Ordre vrai rejeté (correspondance MN)
    1 123 EURJPY EURUSD Faux ordre accepté (mauvais MN et mauvais symbole)




























 

Je vous ai donné un exemple de boucle pour compter les transactions et vous l'avez ignoré.

for(int i=OrdersTotal();i<=0;i--)


Cela ne sera vrai que s'il n'y a pas d'ordres ouverts, ce n'est pas une boucle.
 
Il n'y a pas non plus d'index égal à OrdersTotal(), puisque la numérotation commence à partir de 0.
Raison: