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

 
Vitaly Muzichenko:

Utilisez le bouton pour insérer le code !

Merci))) Maintenant je vais savoir))) J'ai indiqué à quel endroit une erreur se produit pendant la compilation
double Price;                                                               // Цена выбранного ордера
  double Mas[];                                                                //массив для упорядочивания всех ордеров
  for(int i=0; i<OrdersTotal(); i++)                                           // Цикл перебора ордер
   {
    if(OrderSelect(i,SELECT_BY_POS))                                           // Если есть следующий
     {
      Price=OrderOpenPrice();                                                    //Заполняем массив ценами
      Mas[i] = Price;
     }
   }
  
          ArraySort (Mas,WHOLE_ARRAY,0,MODE_ASCEND);                           // Теперь цены открытия упорядочены по убыванию
          
        int Blizko1=ArrayBsearch(Mas,Bid,WHOLE_ARRAY,0,MODE_ASCEND);           //Определен индекс ближайшего меньшего по значению елемента к текущей цене
        double PriceBlizko1=Mas[Blizko1];
     
     }  
      if (PriceBlizko1-Ask>=30*Point)                          //Если верхний ордер дальше чем 30 пунктов !!!! 'PriceBlizko1' - undeclared identifier!!!!!

       {OrderSend(Symbol(),OP_BUY,LtsB,Ask,2,0,Bid+30*Point);      //Открываем ордер Бай
               Alert (GetLastError());                                    //Сообщение об ошибке
Étrange parce que PriceBlizko1 est décrit dans la ligne ci-dessus
 

Quoi, personne n'utilise les indicateurs de ClusterDelta ?

 
vikzip:
Merci))) Je vais maintenant savoir))) J'ai indiqué à quel endroit donne une erreur à la compilation
Étrange parce que PriceBlizko1 est décrit dans la ligne ci-dessus

Il est décrit exactement dans la ligne ci-dessus. Il doit être défini de manière globale afin d'être disponible pour toutes les unités, et pas seulement pour l'unité locale (actuelle).

 
voron_026:

Personne n'utilise les indicateurs de ClusterDelta ?

Lire des objets et en tirer des données :ObjectGetDouble

Документация по MQL5: Графические объекты / ObjectGetDouble
Документация по MQL5: Графические объекты / ObjectGetDouble
  • www.mql5.com
2. Возвращает true или false в зависимости от успешности выполнения функции.  В случае успеха значение свойства помещается в приемную переменную, передаваемую по ссылке последним параметром. [in]  Модификатор указанного свойства. Для первого варианта по умолчанию значение модификатора равно 0. Большинство свойств не требуют модификатора...
 
Vitaly Muzichenko:

Il est décrit exactement dans la ligne ci-dessus. Il doit être défini de manière globale, afin qu'il soit disponible pour toutes les unités, et pas seulement pour l'unité locale (actuelle).


Merci)

 

Il semble avoir fini d'écrire l'EA, mais une erreur s'affiche

')' - tous les chemins de contrôle ne renvoient pas une valeur

A quoi cela peut-il être lié ? J'ai essayé de mettre le retour, l'erreur change

return' - la fonction doit retourner une valeur.


Utilisation possible d'une variable non initialisée 'Ticket'.
Utilisation possible d'une variable non initialisée 'LtsB'.
Utilisation possible d'une variable non initialisée 'LtsS'.
return' - la fonction doit retourner une valeur
1 erreur(s), 3 avertissement(s)

Как самому создать советника или индикатор - Алгоритмический трейдинг, торговые роботы - Справка по MetaTrader 5
Как самому создать советника или индикатор - Алгоритмический трейдинг, торговые роботы - Справка по MetaTrader 5
  • www.metatrader5.com
Для разработки торговых систем в платформу встроен собственный язык программирования MetaQuotes Language 5 (MQL5), среда разработки MetaEditor и инструменты тестирования стратегий. Любую информацию о разработке торговых стратегий на языке MQL5 можно найти на официальном сайте MQL5.community. На этом же сайте в разделе Code Base могут быть...
 
vikzip:

Il semble avoir fini d'écrire l'EA, mais une erreur s'affiche

')' - tous les chemins de contrôle ne renvoient pas une valeur

A quoi cela peut-il être lié ? J'ai essayé de mettre le retour, l'erreur change

Le "return" - la fonction doit renvoyer une valeur.


Peut-être que la fonction doitretourner(0) ;

 
Vitaly Muzichenko:

Peut-être qu'unretour(0) comme celui-ci est nécessaire;


Merci ! !!

 
vikzip:

AAAAAAAA HOORAY !!!! Merci ! !!

Pourquoi "merci" ? La fonction doit retourner une valeur. Et tu retournes toujours zéro. S'il est censé ne rien retourner, son type devrait être void.

 
Artyom Trishkin:

Dans mql4, mql5 un tableau est toujours passé à une fonction par référence seulement (& == esperluette)

Tout d'abord, dans les paramètres formels d'une fonction, il y a une esperluette, et cela indique que ce n'est pas le tableau lui-même qui est passé dans la fonction, mais une référence à celui-ci. Ensuite, à l'intérieur de la fonction, vous travaillez déjà avec la référence, ce qui signifie que vous n'avez pas besoin de la spécifier à nouveau.

Le tilde (~) précède le nom du destructeur de la classe - le constructeur et le destructeur ont le même nom que la classe elle-même, mais le destructeur a un ~.

Lisez cet article pour savoir quand utiliser les références et quand utiliser les pointeurs.

Mais vous devez quand même lire les bases.

Merci !