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

 
MosheDayan:
Pouvez-vous m'en dire plus sur le signal, est-il émis par MT ou par un tiers ?
Vous pouvez, c'est écrit ici . Il diffuse simplement vos échanges au lieu des niveaux et tout le monde peut y participer s'il aime le système.
 

Merci pour l'aide, c'est réparé.

 
Est-il possible d'arrêter/démarrer l'autotrading sur l'ensemble du terminal ou sur un Expert Advisor individuel, par exemple, en fonction d'un certain indicateur ?
 
Andrey Sokolov:
Peut-on désactiver/arrêter l'autotrading sur l'ensemble du terminal ou sur un EA individuel, par exemple, en fonction des données d'un indicateur ?

Vous pouvez utiliser les variables globales du terminal, prescrire le même GP pour tous et surveiller la valeur, par exemple, lorsqu'elle est égale à 0 - tous les EA ne traitent pas.

Vous pouvez également utiliser l'interface WinAPI pour trouver le bouton Auto-trading sur le panneau du terminal et appuyer dessus.

 
 
Bonjour, existe-t-il un code pour afficher un texte sur un graphique (autocollant, rappel) qui ne bouge pas avec le graphique mais qui est fixe ? Merci !
 
Vladimir.Tyumen:
Bonjour, existe-t-il un code pour afficher un texte sur un graphique (autocollant, rappel) qui ne bouge pas avec le graphique mais qui est fixe ? Merci !
OBJ_LABEL
 
Bonjour à tous, je viens de commencer à apprendre le langage, je suis récemment tombé sur un tutoriel vidéo sur la création d'une grille EA, j'ai écrit, compilé, 0 erreur, 0 avertissement. Mais je ne peux pas voir mon robot ouvrir des trades, je veux demander à qui n'est pas trop paresseux))))

Merci d'avance !


extern double Lots      = 0.1;
extern double Profit    = 50;
extern int Step         = 30;
extern int Magic        = 6677;
extern int Slippage     = 5;

extern int maPeriod     =100;
extern int maShift      =1;

double ma, FindLastBuyPrice, price;
//------------------------------------------------------------------
//___ПРОВЕРКА_ЗНАКОВ_ПОСЛЕ_ТОЧКИ___
//------------------------------------------------------------------
int OnInit()
{
   if (Digits == 3 || Digits == 5)
   {
      Step     *= 10;
      Slippage *= 10;
   }
   return(INIT_SUCCEEDED);
}
//---------------------------------------------
void OnDeinit(const int reason)
{

}
//------------------------------------------------------------------
//
//------------------------------------------------------------------
void OnTick()
{
  
   ma = iMA(Symbol(),0,maPeriod, maShift, MODE_SMA, PRICE_CLOSE, 0);
  
   if (CountBuy() && CountSell() == 0 && Bid < ma)//
   {
      if (OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, 0, 0, "", Magic, 0, Red) < 1)
         Print ("Неудалось открыть ордер на Продажу");
   }
   if (CountBuy() && CountSell() == 0 && Ask < ma)
   {
      if (OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, 0, 0, "", Magic, 0, Blue) < 1)
         Print ("Неудалось открыть ордер на Покупку");
      
   }
   if (CountBuy() >=1)
   {
      price = FindLastBuyPrice();
      if ((price - Ask) >= Step*Point)
      {
         if (OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, 0, 0, "", Magic, 0, Blue) < 1)
         Print ("Неудалось открыть ордер на Покупку");
      }
   }
  
   if (CountSell() >=1)
   {
      price = FindLastBuyPrice();
      if ((Bid - price) >= Step*Point)
      {
         if (OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, 0, 0, "", Magic, 0, Red) < 1)
         Print ("Неудалось открыть ордер на Ппродажу");
      }
   }
  
  
   double op = CalculateProfit();
   if (op >= Profit)
   {
      CloseAll();
   }      
  
}
//------------------------------------------------------------------
void CloseAll()
{
   for (int i = OrdersTotal()-1; i>=0; i--)
   {
      if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
      {
         if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
         {
            if (OrderType() == OP_BUY)
            {
               if (!OrderClose(OrderTicket(), OrderLots(), Bid, Slippage))
               {
                  Print ("Не удалось закрыть ордер на ПОКУПКУ");
               }
            }
            if (OrderType() == OP_SELL)
            {
               if (!OrderClose(OrderTicket(), OrderLots(), Ask, Slippage))
               {
                  Print ("Не удалось закрыть ордер на ПРОДАЖУ");
               }
            }
         }
      }
   }
}
//------------------------------------------------------------------
double CalculateProfit()  // Считаем профит по всем ордерам
{
   double oProfit = 0;
   for (int i=OrdersTotal() -1; i>=0; i--)
   {
      if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
      {
         if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
         {
            if (OrderType() == OP_BUY || OrderType() == OP_SELL)
            {
               oProfit += OrderProfit();
            }
         }
      }
   }
  
   return(oProfit);

}
//------------------------------------------------------------------
double FindLastBuyPrice()
{

   int oldTicket, ticket   = 0;
   double oldopenPrice     = 0;
  
   for (int cnt = OrdersTotal()-1; cnt>=0; cnt--)
   {
      if (OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES))
      {
         if (OrderSymbol() ==Symbol() && OrderMagicNumber() == Magic && OrderType() == OP_BUY)
         {
            oldTicket = OrderTicket();
            if (oldTicket > ticket)
            {
               ticket = oldTicket;
               oldopenPrice = OrderOpenPrice();
            }
         }
        
      }
   }
   return(oldopenPrice);
}
double FindLastSellPrice()
{

   int oldTicket, ticket   = 0;
   double oldopenPrice     = 0;
  
   for (int cnt = OrdersTotal()-1; cnt>=0; cnt--)
   {
      if (OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES))
      {
         if (OrderSymbol() ==Symbol() && OrderMagicNumber() == Magic && OrderType() == OP_SELL)
         {
            oldTicket = OrderTicket();
            if (oldTicket > ticket)
            {
               ticket = oldTicket;
               oldopenPrice = OrderOpenPrice();
            }
         }
        
      }
   }
   return(oldopenPrice);
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
int CountBuy()
{
   int count = 0;
   for (int trade = OrdersTotal()-1; trade >=0; trade--)
   {
      if (OrderSelect(trade, SELECT_BY_POS, MODE_TRADES) == true)
      {
         if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic && OrderType() == OP_BUY)
            count++;
      }
   }
   return(count);
}
//+------------------------------------------------------------------+
int CountSell()
{
   int count = 0;
   for (int trade = OrdersTotal()-1; trade >=0; trade--)
   {
      if (OrderSelect(trade, SELECT_BY_POS, MODE_TRADES) == true)
      {
         if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic && OrderType() == OP_SELL)
            count++;
      }
   }
   return(count);
}
//+------------------------------------------------------------------+


 

Bonjour à tous. Voici une question :

J'ai un indicateur avec une bibliothèque et je dois écrire un conseiller expert pour celui-ci.

Quel schéma d'actions est nécessaire pour éviter la multiplication des dossiers, et il devrait en résulter deux ou un. Je veux utiliser les deux.


Voznesen:
Bonjour à tous, je viens de commencer à apprendre le langage, je suis récemment tombé sur un tutoriel vidéo sur la façon de créer une grille EA, j'ai écrit, compilé, 0 erreur, 0 avertissement. Mais le robot n'ouvre pas de trades. Je mets le code en circulation pour voir si quelqu'un est paresseux))))
Comment doit-elle ouvrir les marchés ? À quelles conditions ?
 
trader781:

Bonjour à tous. Voici une question :

J'ai un indicateur avec une bibliothèque et je dois écrire un conseiller expert pour celui-ci.

Quel schéma d'actions est nécessaire pour éviter la multiplication des dossiers, et il devrait en résulter deux ou un. Idéalement, ils devraient être combinés.


Travailler avec des indicateurs personnalisés connectés en tant que ressources

Pour le travail des programmes mql4 vous pouvez avoir besoin d'un ou plusieurs indicateurs personnalisés, tous peuvent être inclus dans le code du programme mql4 exécutable. L'inclusion d'indicateurs en tant que ressources permet de simplifier la distribution du programme.

Le seul problème est qu'il ne compilera pas sur un autre ordinateur s'il n'y a pas de fichiers include sur celui-ci.
Ресурсы - Программы MQL4 - Справочник MQL4
Ресурсы - Программы MQL4 - Справочник MQL4
  • docs.mql4.com
Ресурсы - Программы MQL4 - Справочник MQL4
Raison: