Errori, bug, domande - pagina 2911

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


qualche suggerimento?
Perché?
https://www.mql5.com/ru/docs/basis/operators/ternary
Leggete i documenti)
 
DMITRII PECHERITSA:
errore di compilazione con operatore ternario
lacompilazione fallisce con l'operatore ternario ?


qualche suggerimento?
Perché?

Non =, ma ==

 

C'è un modo per mescolare casualmente i numeri all'interno di un dato intervallo?

Per esempio, c'è un intervallo da 0 a 9. È possibile mischiarli - 5863014297? Stir esattamente, non ottenere un numero casuale da quell'intervallo - rand non è adatto.

Документация по MQL5: Математические функции / MathRand
Документация по MQL5: Математические функции / MathRand
  • www.mql5.com
MathRand - Математические функции - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Aleksei Lesnikov:

C'è un modo per mescolare casualmente i numeri all'interno di un dato intervallo?

Per esempio, c'è un intervallo da 0 a 9. È possibile mischiarli - 5863014297? Mescolare esattamente, non ottenere un numero casuale da un intervallo dato - rand non è adatto.

Tradurre il numero in una stringa, cambiare i caratteri della stringa tra loro usando qualche algoritmo (potete pensarci voi) - e poi convertire il numero dalla stringa di nuovo in double o int

 
Alexandr Sokolov:

convertire questo numero in una stringa, cambiare i caratteri di questa stringa tra di loro usando qualche algoritmo (potete pensarci voi), e poi convertire il numero dalla stringa di nuovo in double o int.

Grazie, questa è un'opzione!
E se la gamma è di diverse migliaia, o addirittura decine di migliaia di numeri?
 
Aleksei Lesnikov:
Grazie, è un'opzione!
E se l'intervallo è di diverse migliaia, o addirittura decine di migliaia di numeri?

una stringa è un array

fare un array con il numero richiesto

 
Ciao!!! non capisco))) L'ordine nella lista degli oggetti per qualche motivo se non si cambiano i nomi degli oggetti, poi quando si selezionano e si elaborano gli oggetti attraverso questo ciclo
 for(int i=0; i < Fibo_Koll; i++)
     {
      n=ObjectName(0,i,0,OBJ_FIBO);

Ma se si cambiano i nomi con queste funzioni

bool  F =ObjectSetString(0,n,OBJPROP_NAME,NameFiboUp[UP]);
bool  F =ObjectSetString(0,n,OBJPROP_NAME,NameFiboDown[Down]);

poi l'oggetto successivo viene selezionato in modo casuale???

//+------------------------------------------------------------------+
//|                                                  Fibo_Massiv.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"
//+------------------------------------------------------------------+
// Expert initialization function
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";
//---------------------------------------------
NameFiboUp[1]="M1 ";
NameFiboUp[2]="M5 ";
NameFiboUp[3]="M15";
NameFiboUp[4]="H1 ";
NameFiboUp[5]="H4 ";
NameFiboUp[6]="Da ";
NameFiboUp[7]="We ";
NameFiboUp[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 мерный  массив

   int Fibo_Koll = ObjectsTotal(0,0,OBJ_FIBO);     //Запрос колличества объектов Fibo

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

  string n;
//  ObjectName(0,0,0,OBJ_FIBO); //Вытаскивает имя найденого фибо

   for(int i=0; i < Fibo_Koll; i++)
     {
      n=ObjectName(0,i,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);
         //--------------------------------------------------------------------
         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);
         //-------------------------------------------------------------------
         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%
         Alert("  FiboDown[1][1] = ", FiboDown[1][1],
               "  FiboDown[1][3] = ", FiboDown[1][3],
               "  FiboDown[2][1] = ", FiboDown[2][1],
               "  FiboDown[2][3] = ", FiboDown[2][3]);
         //------------------------------------------------------------------
         //Изменение имени объекта
         bool  F =ObjectSetString(0,n,OBJPROP_NAME,NameFiboDown[Down]);

         Down++;

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



   Alert("  FiboDown[1][1] = ", FiboDown[1][1],
         "  FiboDown[1][3] = ", FiboDown[1][3],
         "  FiboDown[2][1] = ", FiboDown[2][1],
         "  FiboDown[2][3] = ", FiboDown[2][3]);

   Alert("  FiboUp[1][1] = ", FiboUp[1][1],
         "  FiboUp[1][3] = ", FiboUp[1][3],
         "  FiboUp[2][1] = ", FiboUp[2][1],
         "  FiboUp[2][3] = ", FiboUp[2][3]);


  }

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

Chi ha incontrato questo

Vin 10

Terminale build 2715.

Dopo aver fatto qualsiasi ottimizzazione dell'Expert Advisor, dopo aver chiuso il terminale, gli agenti sono ancora appesi nei processi, consumando RAM.


Come volume di RAM non critico è molto, ma quando eseguo il gioco, a causa del fatto che la memoria si riferisce costantemente a un mucchio di ritardatari ho cali di FPS di almeno 20 frame.

Devo sovraccaricare il computer o sedermi un processo alla volta per uccidere...

Onestamente sta già iniziando a diventare fastidioso.

Dimmi questo bug o così progettato, tranne il terminale dall'apertura del broker qualsiasi altra cosa non è messo, di volta in volta è aggiornato, qualsiasi o manipolazioni con lui non ha fatto.

 
Kira27:
Ciao!!! Puoi dirmi può non ottenere))) L'ordine nell'elenco degli oggetti per qualche motivo se non si cambiano i nomi degli oggetti, poi quando si seleziona ed elabora gli oggetti attraverso questo ciclo

Ma se si cambiano i nomi con queste funzioni

poi l'oggetto successivo viene scelto a caso?

Perché quando un oggetto viene rinominato, viene ricreato. Uno viene cancellato, un altro viene creato e nella lista di tutti gli oggetti sono disposti in ordine di quando sono stati creati.

 
Alexey Viktorov:

Perché quando un oggetto viene rinominato, viene ricreato. Uno è cancellato, l'altro è creato e nella lista di tutti gli oggetti sono disposti in ordine di quando sono stati creati.

Grazie mille!!! dove posso leggere questo?