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

 
Bonjour !

J'ai transféré un indicateur de MQL4 à MQL5 et je ne comprends pas pourquoi il ne fonctionne pas :

void GetDellName(string name_n = " ")
  {
   string vName;
   for(int i=ObjectsTotal()-1; i>=0; i--)
     {
      vName = ObjectName(i);
      if(StringFind(vName,name_n) !=-1)
         ObjectDelete(vName);
     }
  }

MetaEditor dans MQL5 se plaint de :


ObjectsTotal' - Nombre de paramètres erroné.

ObjectName' - nombre de paramètres erroné

ObjectDelete' - nombre de paramètres erroné

Tout fonctionne dans MQL4 sans aucune erreur.

Aidez-moi à comprendre

 
Sprut 185:
Bonjour !

J'ai transféré un indicateur de MQL4 à MQL5 et je ne comprends pas pourquoi il ne fonctionne pas :


MetaEditor dans MQL5 se plaint de :


ObjectsTotal' - nombre de paramètres erroné

ObjectName' - nombre de paramètres erroné

ObjectDelete' - nombre de paramètres erroné

Tout fonctionne dans MQL4 sans aucune erreur.

Veuillez m'aider à comprendre

1. Veuillez coller le code correctement. Lorsque vous éditez votre message, appuyez sur le bouton Code et collez le code dans la fenêtre popup qui apparaît (j'ai édité votre message la première fois).

2. Lisez attentivement l'aide. Par exemple,ObjectsTotal

int  ObjectsTotal(
   long  chart_id,           // идентификатор графика
   int   sub_window=-1,      // индекс окна
   int   type=-1             // тип объекта     
   );
Документация по MQL5: Графические объекты / ObjectsTotal
Документация по MQL5: Графические объекты / ObjectsTotal
  • www.mql5.com
ObjectsTotal - Графические объекты - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Sprut 185:

Que pensez-vous de ça ? - supprime toutes les lignes horizontales et de tendance

//+------------------------------------------------------------------+
//|                                                  GetDellName.mq5 |
//|                                  Copyright 2021, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2021, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   GetDellName();
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int GetDellName(void)
  {
   int nHLines=ObjectsTotal(0,-1,OBJ_HLINE),
       nTrendLines=ObjectsTotal(0,-1,OBJ_TREND),i;
   string objName;
   for(i=0; i<nHLines; i++)
     {
      objName=ObjectName(0,i,0,OBJ_HLINE);
      ObjectDelete(0,objName);
     }
   for(i=0; i<nTrendLines; i++)
     {
      objName=ObjectName(0,i,0,OBJ_TREND);
      ObjectDelete(0,objName);
     }
   return(GetDellName());
  }
//+------------------------------------------------------------------+

-----------------------------------------------------\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\------------------------------------------------------

ou il supprime tous les objets comme ceci

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int GetDellName(void)
  {
   int ObjectsName=ObjectsTotal(0,-1,-1),i;
   string objName;
   for(i=0; i<ObjectsName; i++)
     {
      objName=ObjectName(0,i,0,-1);
      ObjectDelete(0,objName);
     }
   return(GetDellName());
  }
//+------------------------------------------------------------------+

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

ou comme ceci - comme le dit Alexey Viktorov.

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int GetDellName(void)
  {
   ObjectsDeleteAll(0,-1,-1);
//--- "clear" comment
   Comment("");
   return(false);
  }
//+------------------------------------------------------------------+
 
SanAlex:

Que pensez-vous de ça ? - supprime toutes les lignes horizontales et de tendance

Pourquoi y a-t-il un cycle ?

int  ObjectsDeleteAll(
   long  chart_id,            // идентификатор графика
   int   sub_window=-1,       // индекс окна
   int   type=-1              // тип объекта для удаления
   );
 
Alexey Viktorov:

Pourquoi y a-t-il un cycle ici ???

honnêtement ! ? - Je n'en ai aucune idée ! - Juste quelque chose pour m'occuper le matin.

 
SanAlex:

Que pensez-vous de ça ? - supprime toutes les lignes horizontales et de tendance

-----------------------------------------------------\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\------------------------------------------------------

ou il supprime tous les objets comme ceci

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

ou comme le dit Alexey Viktorov.

cela peut aussi aller comme ceci

//+------------------------------------------------------------------+
//|                                                  GetDellName.mq5 |
//|                                  Copyright 2021, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2021, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"

string   m_name[]= {"1 имя объекта","2 имя объекта","3 имя объекта","4 имя объекта","5 имя объекта","6 имя объекта"};
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   GetDellName();
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int GetDellName(void)
  {
   for(int i=0; i<ArraySize(m_name); i++)
     {
      ObjectDelete(0,m_name[i]);
     }
   return(false);
  }
//+------------------------------------------------------------------+

ou comme ceci

//+------------------------------------------------------------------+
//|                                                     FILTER_1.mq5 |
//|                                  Copyright 2021, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2021, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
//---
sinput string InpName_1 = "HorizontalTrend Line_1"; // FILTER_1
sinput string InpName   = "HorizontalTrend Line";   // FILTER
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit(void)
  {
//---
   EventSetMillisecondTimer(1);
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   EventKillTimer();
   GetDellName("");
//---
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick(void)
  {
//---
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTimer(void)
  {
   MqlRates rates[],rates_1[];
   int start_pos=0,count=1;
   if(CopyRates(Symbol(),Period(),start_pos,count,rates)!=count)
     {
      return;
     }
   if(CopyRates(Symbol(),Period(),start_pos,count,rates_1)!=count)
     {
      return;
     }
//---
   double price_line=0.0;
   if(ObjectFind(0,InpName)>=0)
     {
      long object_type=ObjectGetInteger(0,InpName,OBJPROP_TYPE);
      if(object_type==OBJ_HLINE)
         price_line=ObjectGetDouble(0,InpName,OBJPROP_PRICE);
      else
         if(object_type==OBJ_TREND)
            price_line=ObjectGetValueByTime(0,InpName,rates[0].time,0);
      if(price_line>0.0)
        {
         if(rates[0].open<price_line)
           {
            Alert("1");
            GetDellName(InpName);
           }
        }
     }
//---
   double price_line_1=0.0;
   if(ObjectFind(0,InpName_1)>=0)
     {
      long object_type_1=ObjectGetInteger(0,InpName_1,OBJPROP_TYPE);
      if(object_type_1==OBJ_HLINE)
         price_line_1=ObjectGetDouble(0,InpName_1,OBJPROP_PRICE);
      else
         if(object_type_1==OBJ_TREND)
            price_line_1=ObjectGetValueByTime(0,InpName_1,rates_1[0].time,0);
      if(price_line_1>0.0)
        {
         if(rates_1[0].open>price_line_1)
           {
            Alert("2");
            GetDellName(InpName_1);
           }
        }
     }
//---
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int GetDellName(string objName)
  {
   int nHLines=ObjectsTotal(0,-1,OBJ_HLINE),
       nTrendLines=ObjectsTotal(0,-1,OBJ_TREND),i;
   for(i=0; i<nHLines; i++)
     {
      objName=ObjectName(0,i,0,OBJ_HLINE);
      ObjectDelete(0,objName);
     }
   for(i=0; i<nTrendLines; i++)
     {
      objName=ObjectName(0,i,0,OBJ_TREND);
      ObjectDelete(0,objName);
     }
   return(false);
  }
//+------------------------------------------------------------------+
 

Besoin d'aide pour configurer MT5.

1. Problème Dans MT5 j'ai basculé sur un compte DEMO mais le bouton pour passer des ordres n'est pas actif, en bas vous pouvez voir qu'il n'y a pas de connexion avec le serveur et les tickers des contrats pour 2019 et 2020 sont chargés depuis votre base de données dans la liste, mais il n'y a pas de contrats réels.

 
gorod258:
Besoin d'aide pour configurer MT5 à partir de zéro.

https://www.metatrader5.com/ru/terminal/help/startworking/settings

Настройки платформы - Начало работы - Справка по MetaTrader 5
Настройки платформы - Начало работы - Справка по MetaTrader 5
  • www.metatrader5.com
Торговая платформа обладает множеством настроек, что позволяет организовать работу в ней так, как это удобно именно вам. Выполните команду...
 

Je l'ai préréglé, mais pour une raison quelconque, une partie de la fonction ne fonctionne pas.

1. Problème Dans MT5 j'ai basculé sur un compte DEMO mais le bouton pour passer des ordres n'est pas actif, vous pouvez voir en bas qu'il n'y a pas de connexion avec le serveur et les tickers des contrats pour 2019 et 2020 sont chargés depuis votre base de données dans la liste mais il n'y a pas de contrats réels.

Pouvez-vous nous aider ?

 
SanAlex:

honnêtement ! ? - Je n'en ai aucune idée ! - Juste quelque chose à faire le matin.

Il le supprimera de toute façon, sans conditions).

Raison: