Erreurs, bugs, questions - page 2913

 
DMITRII PECHERITSA:
échec de la compilation avec l'opérateur ternaire
échec de la compilation avec un opérateur ternaire ?


Des suggestions ?
Pourquoi ?

L'opérateur ternaire n'effectue pas de cast vers la classe de base implicitement

Utiliser un casting explicite

interface A{};
class B:public A{};
class C:public A{};
void OnStart(void)
  {
   A* x=(true)? (A *)new B : (A *)new C; //invalid cast operation
  }


L'opérateur ternaire ne transfère pas implicitement les opérandes vers la classe de base - utilisez le transfert explicite.

 
A100:
Il n'y a pas de message d'erreur:

mais c'est comme ça :

Quelle est la différence fondamentale ?

Dans le premier cas, il aurait dû y avoir un message d'erreur également - le nom de la fonction est déjà utilisé pour l'énumération.

 

Chers développeurs, veuillez ajouter la possibilité d'exécuter des scripts à partir d'autres scripts et services en mode synchrone.

Merci d'avance

 
Aliaksandr Hryshyn:

Chers développeurs, veuillez ajouter la possibilité d'exécuter des scripts à partir d'autres scripts et services en mode synchrone.

Merci d'avance.

Je soutiens, il n'est pas pratique de travailler avec de gros fichiers d'EA pour certaines raisons, j'utilise des scripts qui doivent être exécutés des dizaines en parallèle pour charger tous les cœurs et accélérer les calculs.

 
Bon après-midi. Veuillez me conseiller, je ne peux pas importer un fichier CSV dans la base de données via le navigateur ME. Le message est le suivant : erreur d'importation de la base de données. J'ai essayé toutes les options CSV. Quelqu'un a-t-il réussi à le faire ou s'agit-il d'un bug ? Version : 5.0 build 27.15.
 

Si vous modifiez l'EX5, lorsque vous ouvrez des fichiers opt-files de cette EA reçus précédemment, les paramètres d'entrée des passes disparaissent.

Veuillez les montrer à tout moment !

 

Il y a un tel avertissement dans le Signal.

A quoi cela peut-il être relié ? Les détails d'accès au compte n'ont pas été modifiés.

 
fxsaber:

Il y a un tel avertissement dans le Signal.

A quoi cela peut-il être relié ? Les détails d'accès au compte n'ont pas été modifiés.


Cela arrive périodiquement. Ensuite, il se reconnectera. Il n'y a pas besoin de faire quoi que ce soit.

 
Alexey Viktorov:

Vous n'avez pas besoin de me comprendre, vous avez besoin de comprendre la documentation. J'ai suggéré un tri basé sur la liste des ordres ou des positions. Et dans l'un des sujets, Slava a dit qu'il suffisait de cacher l'objet et de le réafficher, de sorte qu'il soit au-dessus de tous les autres et reçoive l'événement "clic du rat" en premier. Si c'est faux, désolé. Découvrez comment la liste est triée et dites-le à tout le monde. Je vais aussi changer d'avis.

Après de longues luttes et expériences, je crois qu'il y a un bug dans MQL5 avec le tri des objets dans la liste des objets. Pour avoir essayé ce code dans MQL4 sans espoir particulier de traitement correct, j'ai découvert que 4 niveaux de Fibo créés séquentiellement ont une numérotation correcte dans la liste des objets : 0.1.2.3. Le premier ==0, le second ==1, etc.., Dans MQL5, cependant, 4 symboles consécutifs créés l'un après l'autre ont une numérotation à partir du plafond, et seulement si je change leurs noms, ils s'alignent dans l'ordre du changement de nom. Que dois-je faire ? Vérifier mon terminal, peut-être que mon terminal ne fonctionne pas correctement, bien que je l'ai essayé sur 3 ordinateurs (((()).

//+------------------------------------------------------------------+
//|                                                            F.mq5 |
//|                        Copyright 2020, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//|                                                  Fibo_Massiv.mq5 |
//|                        Copyright 2020, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
string NameFiboUp[15];                               // Объявление массива
string NameFiboDown[15];                               // Объявление массива
string NameFibo[9];                               // Объявление массива


//+------------------------------------------------------------------+
int OnInit()
  {
//---
   NameFiboUp[1]="FiboUp1 ";
   NameFiboDown[1]="FiboDown1 ";
   NameFiboUp[2]="FiboUp2 ";
   NameFiboDown[2]="FiboDown2";
   NameFiboUp[3]="FiboUp3";
   NameFiboDown[3]="FiboDown3 ";
   NameFiboUp[4]="FiboUp4 ";
   NameFiboDown[4]="FiboDown4 ";
   NameFiboUp[5]="FiboUp5";
   NameFiboDown[5]="FiboDown5 ";
   NameFiboUp[6]="FiboUp6 ";
   NameFiboDown[6]="FiboDown6 ";
   NameFiboUp[7]="FiboUp7 ";
   NameFiboDown[7]="FiboDown7 ";
   NameFiboUp[8]="FiboUp8 ";
   NameFiboDown[8]="FiboDown8 ";
   NameFiboUp[9]="FiboUp9 ";
   NameFiboDown[9]="FiboDown9 ";
   NameFiboUp[10]="FiboUp10 ";
   NameFiboDown[10]="FiboDown10";
   NameFiboUp[11]="FiboUp11 ";
   NameFiboDown[11]="FiboDown11 ";
   NameFiboUp[12]="FiboUp12 ";
   NameFiboDown[12]="FiboDown12 ";
   NameFiboUp[13]="FiboUp13 ";
   NameFiboDown[13]="FiboDown13";
   NameFiboUp[14]="FiboUp14 ";
   NameFiboDown[14]= "FiboDown14";
//---------------------------------------------
   NameFibo[1]="M1";
   NameFibo[2]="M5";
   NameFibo[3]="M15";
   NameFibo[4]="H1";
   NameFibo[5]="H4";
   NameFibo[6]="Da";
   NameFibo[7]="We";
   NameFibo[8]="Mo";
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   int UP=1;
   int Down=1;
   string  nameUP   = "FiboUp";
   string  nameDown = "FiboDown";
   double FiboDown[4][10],FiboUp[4][10];  // 2x мерный  массив
//  Alert("ArraySize(FiboDown)= ", ArraySize(FiboDown));
   int Fibo_Koll = ObjectsTotal(0,0,OBJ_FIBO);     //Запрос колличества объектов Fibo

//_________________________________________________________
   if(Fibo_Koll==0) //Если нет не одного фибо выход        //
      return;                                              //
//_________________________________________________________//

   int Koll[];  //Индексация и запись в массив по порядку появления фибо в окне инструментов
   int Tip[];    //Запись типа Fibo в массив по порядку появления фибо в окне инструментов
   ArrayResize(Koll,Fibo_Koll); // Устанавливает новый размер в первом измерении массива Koll []
   ArrayResize(Tip,Fibo_Koll);  // Устанавливает новый размер в первом измерении массива Tip []


   for(int i=0; i < Fibo_Koll; i++)
     {
      string n=ObjectName(0,0,0,OBJ_FIBO);

      //--------------------------------------------------------

      //----------------------------------------------------------------------------------------
      double   Fibo_Level_0= ObjectGetDouble(
                                0,          // идентификатор графика
                                n,              // имя объекта
                                OBJPROP_PRICE,           // идентификатор свойства
                                0     // модификатор свойства
                             );


      double   Fibo_Level_1= ObjectGetDouble(
                                0,          // идентификатор графика
                                n,              // имя объекта
                                OBJPROP_PRICE,           // идентификатор свойства
                                1     // модификатор свойства
                             );
      //------------------------------------------------------------------------------------------------------
      if(Fibo_Level_0>Fibo_Level_1)
        {

         //вызов функции расчёта уровня 78.6
         double Fibo_78_Up = Function_Up(Fibo_Level_0, Fibo_Level_1);
         //Изменение имени объекта
         /*   bool l =  StringSetLength(      //Устанавливает для  строки указанную длину в символах 2
                         n,       // строка
                         2    // новая длина строки
                      );
            //-----------------------------------------------------------
            int N = 1;
            string q;

            for(int e = 1; N != 0; e++) // пока N не == 0, гоняем функцию StringCompare. сравнивая обрезанную переменную(StringSetLength) с массивом NameFibo[]
              {
               N= StringCompare(
                     n,              // первая сравниваемая строка
                     NameFibo[e],    // вторая сравниваемая строка
                     true      // режим учета регистра букв при сравнении
                  );

               q= NameFibo[e];

              }
            n= q+NameFiboUp[1];*/


         //--------------------------------------------------------------------
         FiboUp[UP][1]=1;    // Тип обектов 1 == FiboUp
         FiboUp[UP][2]=UP;     // Нумерация обектов FiboUp по типу
         FiboUp[UP][3]=Fibo_78_Up;   // 78.6%
         FiboUp[UP][4]=0;       // 61.8%
         FiboUp[UP][5]=0;         // 50%
         //----------------------------------------------------------------------------------------------------------
         bool  F =ObjectSetString(0,n,OBJPROP_NAME,NameFiboUp[UP]);

         UP++;
        }
      //----------------------------------------------------------------------------------
      else
        {
         //вызов функции расчёта уровня 78.6
         double Fibo_78_Down = Function_Down(Fibo_Level_0, Fibo_Level_1);
         //Изменение имени объекта
         /*     bool l =  StringSetLength(      //Устанавливает для  строки указанную длину в символах 2
                           n,       // строка
                           2    // новая длина строки
                        );
              //-----------------------------------------------------------
              int N = 1;
              string q;

              for(int e = 1; N != 0; e++) // пока N не == 0, гоняем функцию StringCompare. сравнивая обрезанную переменную(StringSetLength) с массивом NameFibo[]
                {
                 N= StringCompare(
                       n,              // первая сравниваемая строка
                       NameFibo[e],    // вторая сравниваемая строка
                       true      // режим учета регистра букв при сравнении
                    );

                 q= NameFibo[e];

                }
              n= q+NameFiboUp[1];*/

         //-------------------------------------------------------------------
         FiboDown[Down][1]=2;    // // Тип обектов 2 == FiboDown
         FiboDown[Down][2]=Down;     // Нумерация обектов  по типу
         FiboDown[Down][3]=Fibo_78_Down;   // 78.6%
         FiboDown[Down][4]=0;       // 61.8%
         FiboDown[Down][5]=0;         // 50%
         //------------------------------------------------------------------
         //Изменение имени объекта
         bool  F =ObjectSetString(0,n,OBJPROP_NAME,NameFiboDown[Down]);


         Down++;

        }
     }
//+------------------------------------------------------------------+

   ArrayPrint(
      FiboUp,             // выводимый массив
      2,      // количество десятичных знаков после запятой
      NULL,      // разделитель между значениями полей структуры
      0,             // индекс первого выводимого элемента
      WHOLE_ARRAY,   // количество выводимых элементов
      ARRAYPRINT_HEADER|ARRAYPRINT_INDEX|ARRAYPRINT_ALIGN
   );

   ArrayPrint(
      FiboDown,             // выводимый массив
      2,      // количество десятичных знаков после запятой
      NULL,      // разделитель между значениями полей структуры
      0,             // индекс первого выводимого элемента
      WHOLE_ARRAY,   // количество выводимых элементов
      ARRAYPRINT_HEADER|ARRAYPRINT_INDEX|ARRAYPRINT_ALIGN
   );

  }
// for(int i=0; i<ArraySize(Koll); i++)
//  printf("Koll[%d] = %d",i,Koll[i]);


//------------------------------------------------------------------------------------------------------

//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
double Function_Up(double a, double b)    // имя функции и список параметров
  {
   double Sum_100 = a - b; //Вычисляем 100% В пунктах от точек построения фибо
   double Sum_78  = Sum_100 * 78.6 / 100;  //Вычисляем 78.6% В пунктах
   return (Sum_78 + b);           // Вычисляем 78.6% в цене инструмента
  }
//+------------------------------------------------------------------+
double Function_Down(double a, double b)    // имя функции и список параметров
  {
   double Sum_100 = b - a ; //Вычисляем 100% В пунктах от точек построения фибо
   double Sum_78  = Sum_100 * 21.4 / 100;  //Вычисляем 78.6% В пунктах
   return (Sum_78 + a);           // Вычисляем 78.6% в цене инструмента
  }
//+------------------------------------------------------------------+
 
Bonjour ! Une situation un peu étrange ici, sur l'un des abonnements aux signaux, les transactions sont copiées avec un retard de 2-5 minutes, mais elles se ferment clairement en synchronisation comme elles le devraient. Mon compte est sur VPS. Tout va bien sur les autres comptes. J'ai décidé de vérifier, peut-être que c'est à cause de l'hébergement, j'ai ouvert un terminal sur mon PC, respectivement, 2 mêmes trades sont ouverts sur le trade d'un fournisseur (signal), un depuis le VPS et un depuis le terminal en même temps avec le même délai, cela signifie que le VPS fonctionne bien. En conséquence, le signal est bénéficiaire, mais sur mon terminal, les transactions sont fermées avec perte ou avec un petit bénéfice. Le signal est copié du courtier Global Premier vers Alpari. Pouvez-vous nous indiquer comment résoudre ce problème ?