Questions des débutants MQL5 MT5 MetaTrader 5 - page 1227

 
Bonjour ! veuillez expliquer ou pointer du doigt comment fermer de façon programmatique des positions ouvertes avec le type de compte Hedge/Hedg. comment fermer des positions couvertes dans mql5 ? j'ai seulement trouvé ce matériel. https://www.mql5.com/ru/articles/4830
Совершение сделок - Торговые операции - Справка по MetaTrader 5
Совершение сделок - Торговые операции - Справка по MetaTrader 5
  • www.metatrader5.com
Торговая деятельность в платформе связана с формированием и отсылкой рыночных и отложенных ордеров для исполнения брокером, а также с управлением текущими позициями путем их модификации или закрытия. Платформа позволяет удобно просматривать торговую историю на счете, настраивать оповещения о событиях на рынке и многое другое. Открытие позиций...
 
BlackCoffee:
Bonjour ! veuillez expliquer ou pointer du doigt comment fermer de façon programmatique les positions ouvertes avec le type de compte Hedge/Hedg. comment fermer les positions couvertes dans mql5 ? seulement trouvé ce matériel. https://www. mql5.com/ru/articles/4830

Exemple du code de fermeture de toutes les positions

Lorsqu'on traite des positions, il est nécessaire de boucler toutes les positions jusqu'à zéro:

//+------------------------------------------------------------------+
//| Close all positions                                              |
//+------------------------------------------------------------------+
void CloseAllPositions()
  {
   for(int i=PositionsTotal()-1;i>=0;i--) // returns the number of current positions
      if(m_position.SelectByIndex(i))     // selects the position by index for further access to its properties
         m_trade.PositionClose(m_position.Ticket()); // close a position by the specified symbol
  }

Close all positions
Close all positions
  • www.mql5.com
Закрытие позиций при достижении уровня прибыли  Close all if Profit . При этом суммируется общая прибыль по всем позициям: вне зависимости от символа и magic number. Подсчёт прибыли происходит только в момент рождения нового бара.
 
Vladimir Karputov:

Exemple du code de fermeture de toutes les positions

Lorsque l'on traite des positions, il est nécessaire de parcourir en boucle toutes les positions jusqu'à zéro:

Merci pour la réponse ! !! Et si vous n'avez besoin que de clôturer une position de vente ? Dois-je ajouter ces lignes ?
if((ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_SELL)
                       {
                         //--- prepare request for close SELL position
                        mrequest.type =ORDER_TYPE_BUY;
                        mrequest.price=SymbolInfoDouble(_Symbol,SYMBOL_ASK);
                       }
 

C'est le genre de choses que je faisais. Pour fermer les selves pour une haie.


void CloseSellPositions()
  {
   for(int i=PositionsTotal()-1;i>=0;i--) // returns the number of current positions
      if(m_position.SelectByIndex(i))     // selects the position by index for further access to its properties
         if((ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_SELL)
                       {
                            m_trade.PositionClose(m_position.Ticket()); // close a position by the specified symbol
                       }
  }
Mais il arrive parfois qu'un poste reste ouvert pour une raison quelconque. Si nous posons la condition : Fermer s'il y a plus de cinq positions.
 
BlackCoffee:

C'est le genre de choses que je faisais. Pour fermer les selves pour une haie.


Mais parfois, il y a une position qui n'est pas fermée pour une raison quelconque. Si nous fixons une condition : fermer s'il y a plus de cinq positions.

C'est déjà ça :

void CloseSellPositions()
  {
   for(int i=PositionsTotal()-1;i>=0;i--) // returns the number of current positions
      if(m_position.SelectByIndex(i))     // selects the position by index for further access to its properties
         if(m_position.PositionType()==POSITION_TYPE_SELL)
            m_trade.PositionClose(m_position.Ticket()); // close a position by the specified symbol
  }

et s'il ne se ferme pas, regardez dans le fichier journal. Il peut y avoir un million de raisons : réorientation, absence de transaction, absence de prix, proximité des niveaux de stop...

 
Bonjour. Pourquoi faut-il supprimer les objets de classe lors de la désinitialisation ? Resteront-ils en mémoire après la fermeture du terminal ? Ou bien resteront-ils en mémoire pendant que le terminal est en cours d'exécution, sans qu'il y ait d'EA ? Qu'est-ce qui doit être supprimé à part les objets de la classe ?
 
Ivan_Invanov:
Bonjour. Pourquoi faut-il supprimer les objets de classe lors de la désinitialisation ? Resteront-ils en mémoire après la fermeture du terminal ? Ou bien ils resteront en mémoire pendant que le terminal fonctionne, sans le Conseiller Expert ? Qu'est-ce qui doit être supprimé à part les objets de la classe ?

Par exemple, vous supprimez le conseiller expert du graphique, mais tous les dessins (objets) restent sur le graphique. Lors de la désinitialisation, supprimez toutes les choses inutiles pour avoir un tableau propre. C'est comme ça.

 
Nauris Zukas:

Par exemple, vous supprimez le conseiller expert du graphique, mais tous les dessins (objets) restent sur le graphique. Lors de la désinitialisation, supprimez toutes les choses inutiles pour avoir un tableau propre. C'est comme ça.

Je n'utilise pas de codes graphiques. J'ai vu dans le prog d'autres personnes que les objets de classe sont supprimés. Ai-je bien compris que s'ils ne sont pas supprimés lors de la désinitialisation, ils resteront en mémoire jusqu'à la fermeture du terminal. En dehors des objets de classe, qu'est-il préférable de supprimer ? Merci.
 

Bonjour !

Comment attribuer un id à un indicateur ? J'ai acheté un EA, il est orienté vers un cadre temporel supérieur pour trader sur un cadre inférieur. Le développeur a écrit que je devais placer l'indicateur sur le graphique supérieur et lui attribuer un identifiant. Je suis nouveau sur MT, je ne sais pas comment faire. Veuillez me conseiller, si quelqu'un sait comment faire. (J'utilise la version MT5)

 
secret:

Comment empêcher les transactions provenant d'autres graphiques d'apparaître sur le graphique ?

Seulement les transactions du robot qui se trouvent sur le graphique donné.

Suis-je le seul à être gêné par un enchevêtrement de transactions provenant de plusieurs robots sur un même graphique ? Personne d'autre ne s'en est soucié ?