[ARCHIVE] Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 3. - page 527

 
Bonjour. Pouvez-vous me dire si un EA doit ouvrir une position au prix du marché, comment puis-je savoir si un ordre a été ouvert et quel est son prix d'ouverture ?
 
awega:
Bonjour. Pouvez-vous me dire si un EA doit ouvrir une position au prix du marché, comment puis-je savoir si un ordre a été ouvert et quel est son prix d'ouverture ?
https://book.mql4.com/ru/
 
Comment puis-je connaître l'heure actuelle?
 
J'ai besoin d'implémenter une fonction pour retourner un résultat composite à partir de valeurs de plusieurs types, pouvez-vous me dire comment faire ? Ou dois-je simplement utiliser des variables globales pour les valeurs de cette fonction ?
 
splxgf:
https://book.mql4.com/ru/
Si vous savez dans quel domaine chercher
 
//+------------------------------------------------------------------+
//|                                                       10pips.mq4 |
//|                                                        fortrader |
//|                                                 www.fortrader.ru |
//+------------------------------------------------------------------+
#property copyright "fortrader"
#property link      "www.fortrader.ru"

extern int       TakeProfit_Buy = 10;
extern int       StopLoss_Buy = 5000;
extern int       TrailingStop_Buy = 5000;
extern int       TakeProfit_Sell = 10;
extern int       StopLoss_Sell = 5000;
extern int       TrailingStop_Sell = 5000;
extern double     Lots = 0.01;

//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
  if (Volume[0] > 1000) return(0);
// Объявляем переменные
int total, cnt;

  total=OrdersTotal();

  // Проверка средств
  if(AccountFreeMargin()<(1000*Lots))
     {
       Print("We have no money. Free Margin = ", AccountFreeMargin());   
       return(0);  
     }
  if(total<1000)
    {  
     // Открытие сделкок
       OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-StopLoss_Buy*Point,Ask+TakeProfit_Buy*Point,"Покупаем",16384,0,Green);
       Sleep(10);//10 секунд
       RefreshRates();
       OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+StopLoss_Sell*Point,Bid-TakeProfit_Sell*Point,"Продаем",16385,0,Red);
    }
  if(total==1000)
    {
       OrderSelect(0, SELECT_BY_POS, MODE_TRADES);
       if(OrderType()==OP_BUY)
         {
           OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-StopLoss_Buy*Point,Ask+TakeProfit_Buy*Point,"Покупаем",16384,0,Green);
         }
       if(OrderType()==OP_SELL)
         {
           OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+StopLoss_Sell*Point,Bid-TakeProfit_Sell*Point,"Продаем",16385,0,Red);
         }
    }   
  for(cnt=total-1;cnt>=0;cnt--)
     {
       OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
       if(OrderType()==OP_BUY)
         {
           if(TrailingStop_Buy>0)  
             {                 
               if(Bid-OrderOpenPrice()>Point*TrailingStop_Buy) // Bid - цена покупки
                 {
                   if(OrderStopLoss()<Bid-Point*TrailingStop_Buy)
                     {
                       OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop_Buy,OrderTakeProfit(),0,Green);
                       return(0);
                     }
                 }
             }
         }
       if(OrderType()==OP_SELL)
         {
           if(TrailingStop_Sell>0)  
             {                 
               if((OrderOpenPrice()-Ask)>(Point*TrailingStop_Sell))  // Ask - цена продажи
                 {
                   if((OrderStopLoss()>(Ask+Point*TrailingStop_Sell)) || (OrderStopLoss()==0))
                     {
                       OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop_Sell,OrderTakeProfit(),0,Red);
                       return(0);
                     }
                 }
             }
         }
  
     }
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
J'ai un conseiller expert simple, qui ouvre des transactions de vente ou d'achat jusqu'à un certain montant et définit des SL et TP (c'est le montant des transactions qui est important pour moi). J'ai un conseiller expert simple qui ouvre simplement une position de vente ou d'achat pour un certain nombre de transactions, puis ouvre une position de vente ou d'achat pour un certain nombre de transactions (c'est le nombre de transactions qui m'intéresse). Veuillez me dire ce que je peux faire ici.
 
DOCTORS:
Comment puis-je connaître l'heure actuelle ?
TimeCurrent()
 
utyff:
J'ai un conseiller expert simple, qui ouvre des transactions de vente ou d'achat jusqu'à un certain montant et définit des SL et TP (c'est le montant des transactions qui est important pour moi). J'ai un conseiller expert simple qui ouvre simplement une position de vente ou d'achat pour un certain nombre de transactions, puis ouvre une position de vente ou d'achat pour un certain nombre de transactions (c'est le nombre de transactions qui m'intéresse). Veuillez me dire ce que je peux faire ici.

Augmenter le glissement et normaliser les prix
 
awega:
Bonjour. Pouvez-vous me dire, si un EA doit ouvrir une position au prix du marché, comment puis-je déterminer si un ordre a été ouvert et comment déterminer son prix d'ouverture ?
Ouvrez l'aide dans MetaEditor, "Fonctions de trading": OrderSend() et OrderOpenPrice() - vous y trouverez des réponses à vos questions.
 
utyff:
J'ai un conseiller expert simple, qui ouvre des transactions de vente ou d'achat jusqu'à un certain montant et définit des SL et TP (c'est le montant des transactions qui est important pour moi). J'ai un EA simple, il ouvre simplement des transactions de vente ou d'achat avec un certain nombre de lots et place un SL ou un TP (c'est le nombre de transactions qui m'intéresse). Veuillez me dire ce que je peux faire ici.
La première chose à faire est de vérifier le Journal des immatriculations : le conseiller expert y laisse des messages d'erreur. Et ensuite, en fonction de ces messages, on analyse le quoi et le pourquoi. Et il est souhaitable que vous appreniez vous-même à analyser, plutôt que de jeter ici des paquets de code dans l'espoir que d'autres le fassent pour vous.