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

 

J'envoie une demande comme celle-ci pour placer une demande en attente. Mais il n'expire pas à la fin de la journée de négociation. J'ai essayéORDER_TIME_SPECIFIED_DAY mais cela ne fonctionne pas non plus. Quel est le problème ?

MqlTradeRequest  request = {0};
         request.action = TRADE_ACTION_PENDING;
         request.symbol = _Symbol;
         request.volume = Lot;
         request.price  = high(Quant_Bars); 
         request.sl     = sl;
         request.tp     = tp;
         request.type   = ORDER_TYPE_BUY_STOP; 
         request.expiration = ORDER_TIME_DAY;
         request.magic = magicN;
MqlTradeResult result = {0};

if (OrderSend (request,result))
    {
    Print ("Ордер успешно отправлен, ошибок нет =  ", GetLastError());
    } else
       {
        Print ("Не удалось отправить запрос, ошибка = ", GetLastError());
       }
 

La fonction TrendLineVisible - de la classe standard CCurve - s'agit-il d'une ligne de régression ?

Comment faire pour que cette ligne apparaisse complètement sur le graphique, au lieu d'être coupée ?


 

pourquoi est-il dit ici que ... ne doit être sélectionnée que par la méthode Select ou SelectByIndex,

si la méthode SelectByTicket fonctionne aussi ?

 

Aidez-moi avec la fonction ArrayPrint - Je veux obtenir les 100 derniers éléments d'un tableau, puis les 100 premiers et les 100 derniers.

               ArrayPrint(arr_P_val_X,8,NULL,Calc_XY-100,100,ARRAYPRINT_INDEX);//Ожидаю получить 100 последних элементов, выдает первые
               ArrayPrint(arr_P_val_X,ARRAYPRINT_LIMIT);//Хочу получить 100 и 100 последний - выдает весь массив - что не так?

Calc_XY - le nombre d'éléments dans le tableau.

 

comment obtenir le ticket d'une transaction qui vient d'être ouverte ?
Si vous utilisez la classe CTrade et la fonction Buy().

Dans mt4, la fonction OrderSend() donne immédiatement un ticket.



Existe-t-il une fonction qui donne un ticket pour une position par l'index de la position ?

ou faut-il d'abord sélectionner une position (select) ?

 
multiplicator:

comment obtenir le ticket d'une transaction qui vient d'être ouverte ?
Si vous utilisez la classe CTrade et la fonction Buy().

Dans mt4, la fonction OrderSend() donne immédiatement un ticket.



Existe-t-il une fonction qui donne un ticket pour une position par l'index de la position ?

ou faut-il d'abord sélectionner une position (select) ?

Dans OnTradeTransaction avec le type de transaction trans.type == TRADE_TRANSACTION_DEAL_ADD vous trouvez un ticket dans la structure trans.position

struct MqlTradeTransaction 
  { 
   ulong                         deal;             // Тикет сделки 
   ulong                         order;            // Тикет ордера 
   string                        symbol;           // Имя торгового инструмента 
   ENUM_TRADE_TRANSACTION_TYPE   type;             // Тип торговой транзакции 
   ENUM_ORDER_TYPE               order_type;       // Тип ордера 
   ENUM_ORDER_STATE              order_state;      // Состояние ордера 
   ENUM_DEAL_TYPE                deal_type;        // Тип сделки 
   ENUM_ORDER_TYPE_TIME          time_type;        // Тип ордера по времени действия 
   datetime                      time_expiration;  // Срок истечения ордера 
   double                        price;            // Цена  
   double                        price_trigger;    // Цена срабатывания стоп-лимитного ордера 
   double                        price_sl;         // Уровень Stop Loss 
   double                        price_tp;         // Уровень Take Profit 
   double                        volume;           // Объем в лотах 
   ulong                         position;         // Тикет позиции 
   ulong                         position_by;      // Тикет встречной позиции 
  };
 
Bonjour à tous, chers membres du forum, modérateurs, administrateurs, etc.
Veuillez expliquer comment calculer le profit total des positions ouvertes dans MQL5. Il n'y a aucun problème à ce sujet dans MQL4. Je ne suis pas paresseux, mais je ne sais pas comment m'y prendre. En utilisant PositionGetDouble(POSITION_PROFIT), le bénéfice est calculé uniquement pour la première position ouverte.

Mais dans MQL4, OrderProfit() montre leprofit sur tous les ordres. Peut-être, j'ai raté quelque chose...
Désolé, j'ai oublié de spécifier le type de compte de couverture.
 
Ramiz Mavludov:
Désolé, j'ai oublié de mentionner que le type de compte est hedge.

Vous devez suivre de toute urgence et sans faute un cours d'éradication de l'analphabétisme. Dans mql5, ainsi que dans mql4, avant de travailler avec une position (dans mql4, un ordre), vous devez sélectionner la position. Contrairement à mql4, dans mql5 je me souviens de trois fonctions pour sélectionner une position. La documentation en donne une bonne description. Le chemin... Ne le prenez pas mal.

 
Ramiz Mavludov:
Désolé, j'ai oublié de préciser le type de couverture du compte.

Précédent CodeCandle Breakdown 3, fonction CalculatePositions, bénéfice total

//+------------------------------------------------------------------+
//| Calculate positions Buy and Sell                                 |
//+------------------------------------------------------------------+
void CalculatePositions(int &count_buys,int &count_sells,double &profit)
  {
   count_buys=0;
   count_sells=0;
   profit=0.0;

   for(int i=PositionsTotal()-1;i>=0;i--)
      if(m_position.SelectByIndex(i)) // selects the position by index for further access to its properties
         if(m_position.Symbol()==m_symbol.Name() && m_position.Magic()==m_magic)
           {
            profit+=m_position.Commission()+m_position.Swap()+m_position.Profit();
            if(m_position.PositionType()==POSITION_TYPE_BUY)
               count_buys++;

            if(m_position.PositionType()==POSITION_TYPE_SELL)
               count_sells++;
           }
//---
   return;
  }

Après la traversée de toutes les positions pour ce symbole et Magic, la variable deprofit montrera le profit total.

 
Vladimir Karputov:

Précédent CodeCandle Breakdown 3, fonction CalculatePositions, bénéfice total

Après le parcours de toutes les positions pour un symbole et un Magic donnés, la variable deprofit indiquera le profit total.

Merci Vladimir.

Raison: