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

 

SanAlex:

Je soupçonne que tout le monde ne comprend pas ce dont nous parlons. - Le bénéfice est une chose - mais les bénéfices sur chaque paire sont différents.

C'est pourquoi le conseiller expert doit être installé sur chaque paire.

Vous n'êtes pas obligé de télécharger tous les graphiques.

//+--------------------------------------------------------------------------------------------------------------------+
//| Expert tick function                                                                                               |
//+--------------------------------------------------------------------------------------------------------------------+
void OnTick()
  {
//---
   if(Open_Pr("EURUSD")>MyProfit)DelOrders("EURUSD");
   if(Open_Pr("GBPUSD")>MyProfit)DelOrders("GBPUSD");
   //...и так все нужные пары 
//---
  }

et ajouter à la fonction de suppression et de clôture des commandes

//+--------------------------------------------------------------------------------------------------------------------+
//| Функция удаления и закрытия ордеров                                                                                |
//+--------------------------------------------------------------------------------------------------------------------+
void DelOrders(string sy="")
  {
   while(true)
     {
      bool find_order=false;
      //----
      if (sy == "0") sy = Symbol();
      for(int pos=OrdersTotal()-1;pos>=0;pos--)
      if(OrderSelect(pos,SELECT_BY_POS)==true)
      if(OrderSymbol() == sy || sy == "")
        {
         find_order=true;
         //----
         if(OrderType()==OP_BUY)
           {
            RefreshRates(); int slip=(int)(((Ask-Bid)/Point)*2);
            if(OrderClose(OrderTicket(),OrderLots(),Bid,slip,clrBlue)==false){}
           }
         //----
         if(OrderType()==OP_SELL)
           {
            RefreshRates(); int slip=(int)(((Ask-Bid)/Point)*2);
            if(OrderClose(OrderTicket(),OrderLots(),Ask,slip,clrRed)==false){}
           }
         //----
         if(OrderType()==OP_BUYSTOP || OrderType()==OP_BUYLIMIT)
         if(OrderDelete(OrderTicket(),clrRed)==false){}
         //----
         if(OrderType()==OP_SELLSTOP || OrderType()==OP_SELLLIMIT)
         if(OrderDelete(OrderTicket(),clrBlue)==false){}
         Alert("Все ордера закрыты!");
        } 
      if(find_order==false) Alert("Нет ордеров!");break;
     } 
  }
 
MakarFX:

Vous n'avez pas besoin de télécharger tous les graphiques, il suffit de le mettre sur un graphique et d'écrire dans le code

et ajouter à la fonction de suppression et de clôture des ordres

Et un signal d'ouverture ?

 
SanAlex:

Et les signaux d'ouverture ?

De quoi parlez-vous ?
 
MakarFX:
Qu'est-ce que tu veux dire ?

ces fonctions sont auxiliaires - et pour qu'un expert fonctionne correctement, il doit également ouvrir

 
SanAlex:

Ces fonctions sont auxiliaires - pour que le conseiller expert fonctionne correctement, il doit également ouvrir les fonctions suivantes

À l'origine, la question était la suivante : "Qui dispose d'une fonction permettant de clôturer des ordres dans des devises spécifiques en fonction du bénéfice total" ?

La création d'un conseiller expert à part entière était hors de question))).

 
MakarFX:

La question originale était "qui a la fonction de fermer les ordres de devises données par le profit total".

Il n'était pas question de créer un conseiller expert à part entière))).

cette fonction ne fonctionne pas pour vous ! peut-être fonctionne-t-elle pour les bénéfices totaux ? - Si c'est le cas, nous parlons de fonctions différentes

L'instantané ne se ferme pas

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

Je me demande comment son bénéfice va apparaître - en ouvrant ici et là sur 2 paires.

Je viens de voir son code - c'est comme ça qu'il ouvre.

 
SanAlex:

cette fonction ne fonctionne pas pour vous ! peut-être qu'elle fonctionne par profit total ?

MakarFX:

La question originale était "qui a la fonction de fermer les ordres de devises données par le profit total".

 
MakarFX:

OK ! J'ai installé une autre fonction - Désolé !!!

 
SanAlex:

Désolé ! !!

C'est bon.) C'est un forum pour tout le monde.

 
Je vois que nous avons une vraie discussion. Alex, tu y participes aussi :)) Eh bien, messieurs les programmeurs, avez-vous un consensus ? Regardez, la fonction principale est de fermer les ordres du même type sur la base du profit total. 4 positions ont été ouvertes, 2 sur EURUSD (achat et vente) et 2 sur USDCHF (achat et vente).Si les ordres d'achat obtiennent un profit, il les ferme, laisse l'ordre de vente tranquille ou laisse l'ordre de vente tranquille.
Raison: