Errori, bug, domande - pagina 2913

 
Konstantin Seredkin:

L'ho appeso tutto il tempo finché non lo scarico io stesso, quando ho fatto lo screenshot, usando MT5 era finito il sabato mattina quando il mercato ha chiuso nel mio fuso orario, la domenica mi sono seduto a giocare e ho iniziato a uccidere i processi.

Probabilmente il problema è dalla mia parte, anche se la licenza è stata reinstallata un mese fa.

Fate una cagata dell'agente "appeso". Diamo un'occhiata.

 
DMITRII PECHERITSA:
errore di compilazione con operatore ternario
lacompilazione fallisce con l'operatore ternario ?


qualche suggerimento?
Perché?

L'operatore ternario non fa il casting alla classe base implicitamente

Usa il casting esplicito

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'operatore ternario non lancia gli operandi alla classe base implicitamente - usa il casting esplicito.

 
A100:
Non c'è nessun messaggio di errore:

ma le cose stanno così:

Qual è la differenza fondamentale?

Nel primo caso ci sarebbe dovuto essere anche un messaggio di errore - il nome della funzione è già usato per l'enumerazione.

 

Cari sviluppatori, per favore aggiungete la possibilità di eseguire script da altri script e servizi in modalità sincrona.

Grazie in anticipo

 
Aliaksandr Hryshyn:

Cari sviluppatori, per favore aggiungete la possibilità di eseguire script da altri script e servizi in modalità sincrona.

Grazie in anticipo.

Io sostengo, non è conveniente lavorare con grandi file da EA per alcune ragioni, uso script che devono essere eseguiti decine in parallelo per caricare tutti i core e velocizzare il calcolo.

 
Buon pomeriggio. Per favore consigliatemi, non posso importare un file CSV nel database tramite navigatore ME. Dice: import database error. Ho provato tutte le opzioni CSV. Qualcuno è riuscito a farlo o è un bug? Versione: 5.0 build 27.15.
 

Se si cambia EX5, quando si aprono gli opt-file precedentemente ricevuti di questo EA, i parametri di ingresso dei passaggi scompaiono.

Una grande richiesta di mostrarli sempre!

 

C'è un tale avvertimento nel Segnale.

A cosa può essere collegato? I dettagli di accesso all'account non sono stati modificati.

 
fxsaber:

C'è un tale avvertimento nel Segnale.

A cosa può essere collegato questo? I dettagli di accesso all'account non sono stati modificati.


Succede periodicamente. Poi si riconnetterà. Non c'è bisogno di fare nulla.

 
Alexey Viktorov:

Non dovete capire me, dovete capire la documentazione. Ho suggerito di ordinare in base alla lista degli ordini o delle posizioni. E anche in uno dei topic Slava ha detto che è sufficiente, basta nascondere l'oggetto e visualizzarlo di nuovo, in modo che fosse sopra tutti gli altri e ricevesse per primo l'evento "clic del topo". Se è sbagliato, mi dispiace. Capire come è ordinata la lista e dirlo a tutti. Anch'io cambierò idea.

Dopo lunghe lotte ed esperimenti, credo che ci sia un bug in MQL5 con l'ordinamento degli oggetti nella lista degli oggetti. Poiché ho provato questo codice in MQL4 senza alcuna speranza speciale per una corretta elaborazione, ho scoperto che 4 livelli Fibo creati in sequenza hanno una numerazione corretta nella lista degli oggetti: 0.1.2.3. Il primo ==0, il secondo ==1, ecc, In MQL5, però, 4 simboli consecutivi creati uno dopo l'altro hanno la numerazione dal soffitto, e solo se cambio i loro nomi, si allineano nell'ordine in cui ho cambiato i loro nomi. Cosa devo fare? Controlla il mio terminale, forse il mio terminale non funziona bene, anche se ho provato su 3 computer (((()).

//+------------------------------------------------------------------+
//|                                                            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% в цене инструмента
  }
//+------------------------------------------------------------------+