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

 
Artyom Trishkin:
Ouvert comment ? Quelle est la raison de l'ouverture ?

La raison d'ouvrir une position sur l'euro et la raison d'ouvrir une position sur la livre. De toute évidence, cela doit être écrit d'une manière ou d'une autre dans le code du conseiller expert en euros. Mais comment - je ne comprends pas.

 
novichok2018:

La raison d'ouvrir une position sur l'euro et la raison d'ouvrir une position sur la livre. De toute évidence, cela doit être écrit d'une manière ou d'une autre dans le code du conseiller expert en euros. Mais comment - je ne comprends pas.

Cela se fait par le biais de l'habituel if() avec vérification des commentaires. Et dans les commentaires de l'ordre, nous insérons l'heure d'ouverture ou le ticket de l'ordre à partir duquel le deuxième ordre s'ouvre.
 
Alexandr Sokolov:
Le code est mis en œuvre par le biais de l'habituel if() avec vérification des commentaires. Dans le commentaire de l'ordre, vous devez insérer l'heure d'ouverture ou le ticket de l'ordre à partir duquel le second ordre s'ouvre.

Comment le if() du code EA de l'Euro peut-il être référencé au code EA de la Livre ? Comment puis-je voir la position de la livre dans le code de l'euro ?

 
novichok2018:

Comment le if() du code EA de l'Euro peut-il être référencé au code EA de la Livre ? Comment voyez-vous la position de la livre dans le code de l'euro ?

Vous compliquez vous-même les choses. Il suffit de passer en boucle les commandes en euros et de comparer chaque commande en euros avec toutes les commandes en livres. Et si aucun des commentaires ne correspond, alors vous ouvrez un ordre en livres avec le commentaire où le ticket ou l'heure d'ouverture de l'ordre en euros.

 

Pouvez-vous m'éclairer sur la façon de transférer les résultats de l'optimisation de l'EA dans le testeur MT5, à l'EA sur le panneau graphique MT5 ? Comment les sauver ?

Dans le manuel et Google ne peut pas encore le trouver ...

MILLE MERCIS.

Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - MetaTrader 5
Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - MetaTrader 5
  • www.metatrader5.com
Тестер стратегий позволяет тестировать и оптимизировать торговые стратегии (советники) перед началом использования их в реальной торговле. При тестировании советника происходит его однократная прогонка с начальными параметрами на исторических данных. При оптимизации торговая стратегия прогоняется несколько раз с различным набором параметров...
 
Alexandr Sokolov:

Vous compliquez vous-même les choses. Il suffit de passer en boucle les commandes en euros et de comparer chaque commande en euros avec toutes les commandes en livres. Et si aucun des commentaires ne correspond, alors vous ouvrez un ordre sur la livre avec le commentaire du ticket ou de l'heure d'ouverture d' un ordre sur l'euro.

Pour être honnête - je ne comprends rien. La situation est la suivante : il n'y a aucun ordre sur l'euro ou la livre. Et nous avons des conditions pour ouvrir une position dans la livre et la position est ouverte. L'ouverture de la position sur la livre devrait devenir un signal pour l'ouverture d'une position sur l'euro et la position devrait s'ouvrir. Alors, que dois-je faire pendant le cycle ? Et je ne comprends rien aux commentaires. Pouvez-vous écrire un exemple de code pour m'aider à le comprendre ?

Et dans le code de la livre, lorsque les conditions apparaissent, pouvons-nous ouvrir deux positions - une pour la livre et l'autre pour l'euro en spécifiant le symbole requis dans OrderSend ? Est-ce que ça va marcher ?

 
novichok2018:

Pour être honnête - je ne comprends rien. La situation est la suivante : il n'y a aucun ordre sur l'euro ou la livre. Et il y a des conditions pour ouvrir une position dans la livre et la position a été ouverte. L'ouverture de la position sur la livre devrait être un signal pour l'ouverture de la position sur l'euro et la position devrait s'ouvrir. Alors, que dois-je faire pendant le cycle ? Et je ne comprends rien aux commentaires. Pouvez-vous écrire un exemple de code pour que je puisse comprendre ?

int ticket;
for(int  i = 0; i < OrdersTotal(); i++)
  {
   if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) == true)
     {
      if(OrderMagicNumber() == id_number1 && OrderSymbol() == "GBPUSD")
        {
         if(SecondExpert(OrderTicket()) == false)
           {
            ticket = OrderSend(...);
           };
        };
     };
  };

//----------------------------------------------------------------------------------------------------------------------

bool SecondExpert(int ticket)
  {
   bool se = false;
   for(int i = 0; i < OrdersTotal(); i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) == true)
        {
         if(OrderMagicNumber() == id_number2 && OrderSymbol() == "EURUSD")
           {
            if(OrderComment() == (string)ticket)
              {
               se = true; break;
              };
           };
        };
     };
  //-----------------------------------------------------------------
   return(se);
  }


C'est ainsi que je vois les choses).

 
novichok2018:

Pour être honnête, je n'ai rien compris. La situation est la suivante : il n'y a aucun ordre ni sur l'euro ni sur la livre. Et nous avons des conditions pour ouvrir une position dans la livre et la position a été ouverte. L'ouverture de la position sur la livre devrait déclencher l'ouverture de la position sur l'euro et la position devrait s'ouvrir. Alors, que dois-je faire pendant le cycle ? Et je ne comprends rien aux commentaires. Pouvez-vous écrire un exemple de code pour que je puisse comprendre ?

Si c'est dans une seule EA, cela devrait être quelque chose comme ceci

if(условие для EURUSD)
 {
  OrderSend("EURUSD", ... );
  OrderSend("GBPUSD", ... );
 }

if(условие для GBPUSD)
 {
  OrderSend("GBPUSD", ... );
  OrderSend("EURUSD", ... );
 }

Ou encore plus simple

if(условие для EURUSD || условие для GBPUSD)
 {
  OrderSend("EURUSD", ... );
  OrderSend("GBPUSD", ... );
 }
 
Alexey Viktorov:

Si c'est dans une seule EA, cela devrait être quelque chose comme ceci

Ou encore plus simple

Oui, je l'ai imaginé d'une certaine manière, mais je ne peux pas vérifier le travail sur l'historique, parce que l'ouverture d'une position sur EUR devrait avoir lieu en raison de la condition pour GBP et elle n'est pas reflétée dans le code pour EUR, et l'historique est représenté sur EUR. D'où l'incertitude quant à la justesse de la décision.

 
novichok2018:

Oui, c'est ainsi que je l'ai imaginé, mais je ne peux pas vérifier si cela fonctionne sur l'historique, car l'ouverture d'une position sur l'euro devrait avoir lieu par la condition pour la livre et n'est pas reflétée dans le code pour l'euro, alors que l'historique est affiché sur l'euro. D'où l'incertitude quant à la justesse de la décision.

La fonctionbool ExistPositions() d'Igor Kim renvoie le drapeau d'existence de la position, il est trop difficile pour moi de l'adapter à mes conditions spécifiques. Mais je ne pense pas qu'il sera testé dans l'histoire.

Si personne n'a un code, réellement testé dans le monde réel, à me montrer, je l'essaierai scientifiquement. Merci.