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

 

Bonjour.

Nécessaire pour adapter l'un des indicateurs standard qui sont accrochés dans le terminal. Je n'ai pas trouvé comment accéder à leur code et où se trouvent-ils ?

 
Sergey:

Bonjour.

Il faut adapter l'un des indicateurs standard qui sont accrochés dans le terminal. Je ne trouve pas comment accéder à leur code et où existent-ils ?

Vous n'aurez pas accès au code des indicateurs standards. Mais il y a des exemples :

\MQL5\NIndicateurs\N-Exemples\N

 
Artyom Trishkin:

Vous n'aurez pas accès au code des indicateurs standards. Mais il y a des exemples :

\MQL5\NIndicateurs\N-Exemples\N

Merci pour le conseil.

 
Bonjour à tous. Est-il possible de choisir une période spécifique dans mql5 pour étudier les statistiques ? Ou est-il conservé uniquement pendant toute la durée de vie du compte ?
 

Lors du réglage de l'alerte

Comment puis-je définir l'alerte par défaut pour qu'elle soit autre qu'alerte, par exemplealerte2 ?

Dans quel fichier dois-je modifier ?


 
Vitaly Muzichenko:

Lors du réglage de l'alerte

Comment puis-je définir l'alerte par défaut pour qu'elle soit autre qu'alerte, par exemplealerte2 ?

Dans quel fichier faut-il faire des changements ?


Apparemment dans le dossier Sounds. Je l'ai trouvé là où le terminal est installé. НЕ в папке C:\Users\yastremskiiva\AppData\Roaming\MetaQuotes\Terminal\99193835FC75DE8874B99F9A3B93F15E

Et à en juger par l'ordre alphabétique, renommez alert2 pour être plus alphabétique qu'alert

 
Valeriy Yastremskiy:

Apparemment dans le dossier Sounds. Je l'ai trouvé là où le terminal est installé. НЕ в папке C:\Users\yastremskiiva\AppData\Roaming\MetaQuotes\Terminal\99193835FC75DE8874B99F9A3B93F15E

Et à en juger par l'ordre alphabétique, renommez alert2 pour être plus alphabétique qu'alert

Oui, en option, mais pas tout à fait ce que je voudrais.

Merci !

 

J'ai besoin de trouver le profit du dernier ordre fermé. J'ai écrit une fonction :

double LastProfitOrder()
{
   int      i;
   int      total  = HistoryDealsTotal();
   ulong    ticket;
   datetime time; 
   long     type;
   string   symbol; 
   ulong    magic; 
   double   profit;
   double   profits = 0;
   datetime times   = 0;
   
   HistorySelect(0, TimeCurrent());
   
   for(i = total - 1; i >= 0; i--)
   {
      ticket = HistoryDealGetTicket(i);
      time   = (datetime)HistoryDealGetInteger(ticket, DEAL_TIME); 
      type   = HistoryDealGetInteger(ticket, DEAL_TYPE);
      symbol = HistoryDealGetString(ticket, DEAL_SYMBOL); 
      magic  = HistoryDealGetInteger(ticket, DEAL_MAGIC); 
      profit = HistoryDealGetDouble(ticket, DEAL_PROFIT); 
         
      if(symbol == Symbol() && magic == Magic)
      {
         if(type == DEAL_TYPE_BUY || type == DEAL_TYPE_SELL)
         {
            if(time > times)
            {
               profits = profit;
               times   = time;
            }
         }
      }
   }
   return(profits);
}

Tant que les ordres étaient ouverts via un "portlet" dans OnTick() (MqlTick latestPrice ;MqlTradeRequest request ; ... etc.), la fonction fonctionnait. Dès que j'ai commencé à ouvrir des ordres en utilisant #include <Trade\Trade.mqh> et que j'ai écrit une fonction séparée :

void OpenOrderBuy()
{
   double open = NormalizeDouble(iHigh(NULL, 0,1) + (VO+sp)*_Point, _Digits);
   double sl   = NormalizeDouble(open - SL*_Point, _Digits);
   double tp   = NormalizeDouble(open + TP*_Point, _Digits);
   
   if(!m_trade.BuyStop(GetLots(), open, _Symbol, sl, tp, ORDER_TIME_SPECIFIED, DateExp()))
   {
      Print("Метод BuyStop() потерпел поражение. Код возврата = ", m_trade.ResultRetcode(),
            ". Описание кода: ", m_trade.ResultRetcodeDescription());
   }
   else
   {
      Print("Метод BuyStop() исполнен успешно. Код возврата = ", m_trade.ResultRetcode(),
            " (", m_trade.ResultRetcodeDescription(),")");
   }
}

la fonction de recherche de profit a cessé de fonctionner (bien que les ordres s'ouvrent correctement). J'ai renvoyé le "TypoScript" - il fonctionne à nouveau. Pourquoi un tel *** ? Quelle est la différence ? Je n'ai rien trouvé dans l'inclusion qui pourrait donner un profit d'ordre fermé. Par exemple, #include <Trade\HistoryOrderInfo.mqh> contient tout mais je n'ai pas trouvé le profit de l'ordre.

Документация по MQL5: Константы, перечисления и структуры / Структуры данных / Структура торгового запроса
Документация по MQL5: Константы, перечисления и структуры / Структуры данных / Структура торгового запроса
  • www.mql5.com
Взаимодействие клиентского терминала и торгового сервера для проведения операций постановки ордеров производится посредством торговых запросов. Запрос представлен специальной предопределенной структурой MqlTradeRequest, которая содержит все поля, необходимые для заключения торговых сделок. Результат обработки запроса представлен структурой...
 
Youri Lazurenko:

Tant que les ordres étaient ouverts via un "spoiler" dans OnTick() (MqlTick latestPrice ;MqlTradeRequest request ; ... etc.), la fonction fonctionnait. Une fois que j'ai commencé à ouvrir des ordres en utilisant #include <Trade\Trade.mqh>, j'ai écrit une fonction séparée :

N'oubliez pas dedéfinir l'identifiant du conseiller expert.

   m_trade.SetExpertMagicNumber(InpMagic);
Документация по MQL5: Стандартная библиотека / Торговые классы / CTrade / SetExpertMagicNumber
Документация по MQL5: Стандартная библиотека / Торговые классы / CTrade / SetExpertMagicNumber
  • www.mql5.com
SetExpertMagicNumber(ulong) - CTrade - Торговые классы - Стандартная библиотека - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Vladimir Karputov:

N'oubliez pasde définir l'ID de l'expert

Merci. Je n'ai pas construit de tels labyrinthes dans mql5. Au lieu d'arriver directement au but, vous devez faire des détours, passer par un tas de branches, d'impasses et d'obstacles. Le langage pour le plaisir du langage.