Fehler, Irrtümer, Fragen - Seite 2911

 
DMITRII PECHERITSA:
Kompilierung mit ternärem Operator fehlgeschlagen
Kompilieren scheitert mit ternärem Operator ?


Irgendwelche Vorschläge?
Warum?
https://www.mql5.com/ru/docs/basis/operators/ternary
Lesen Sie die Dokumentationen)
 
DMITRII PECHERITSA:
Kompilierung mit ternärem Operator fehlgeschlagen
Kompilieren scheitert mit ternärem Operator ?


Irgendwelche Vorschläge?
Warum?

Nicht =, sondern ==

 

Gibt es eine Möglichkeit, die Zahlen innerhalb eines bestimmten Bereichs zufällig zu mischen?

Zum Beispiel gibt es einen Bereich von 0 bis 9. Ist es möglich, sie zu mischen - 5863014297? Stir genau, nicht eine Zufallszahl aus diesem Bereich erhalten - rand ist nicht geeignet.

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

Gibt es eine Möglichkeit, die Zahlen innerhalb eines bestimmten Bereichs zufällig zu mischen?

Zum Beispiel gibt es einen Bereich von 0 bis 9. Ist es möglich, sie zu mischen - 5863014297? Stir genau, nicht eine Zufallszahl aus einem bestimmten Bereich - rand ist nicht geeignet.

Übersetzen Sie die Zahl in eine Zeichenkette, tauschen Sie die Zeichen der Zeichenkette mit Hilfe eines Algorithmus (den Sie sich selbst ausdenken können) aus - und konvertieren Sie dann die Zahl aus der Zeichenkette zurück in double oder int

 
Alexandr Sokolov:

diese Zahl in eine Zeichenkette umwandeln, die Zeichen dieser Zeichenkette mit Hilfe eines Algorithmus (den Sie sich selbst ausdenken können) miteinander austauschen und dann die Zahl aus der Zeichenkette wieder in double oder int umwandeln.

Vielen Dank, das ist eine Option!
Und wenn der Bereich mehrere Tausend oder sogar Zehntausende von Zahlen umfasst?
 
Aleksei Lesnikov:
Danke, das ist eine Option!
Was ist, wenn der Bereich mehrere Tausend oder sogar Zehntausende von Zahlen umfasst?

eine Zeichenkette ist ein Array

ein Array aus der gewünschten Anzahl erstellen

 
Hallo!!! Ich verstehe es nicht))) Die Reihenfolge in der Liste der Objekte aus irgendeinem Grund, wenn Sie nicht ändern Sie die Namen der Objekte, dann bei der Auswahl und Verarbeitung von Objekten durch diesen Zyklus
 for(int i=0; i < Fibo_Koll; i++)
     {
      n=ObjectName(0,i,0,OBJ_FIBO);

Wenn Sie jedoch die Namen mit diesen Funktionen ändern, wird die Reihenfolge beibehalten.

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

dann wird das nächste Objekt nach dem Zufallsprinzip ausgewählt.

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

Wer hat diese Erfahrung gemacht

Vin 10

Terminal Baujahr 2715.

Nachdem ich eine Optimierung des Expert Advisors vorgenommen habe, bleiben die Agenten nach dem Schließen des Terminals immer noch in den Prozessen hängen und verbrauchen RAM.


Wie nicht kritische RAM-Volumen ist eine Menge, aber wenn ich das Spiel laufen, aufgrund der Tatsache, dass der Speicher ständig auf eine Reihe von Nachzüglern habe ich FPS Tropfen von mindestens 20 Frames.

Ich muss entweder den Computer überlasten oder einen Prozess nach dem anderen beenden...

Ehrlich gesagt, fängt es schon an, nervig zu werden.

Sagen Sie mir, dieser Fehler oder so konzipiert, mit Ausnahme des Terminals von der Eröffnung des Brokers alles andere ist nicht gestellt, von Zeit zu Zeit ist es aktualisiert, alle oder Manipulationen mit ihm nicht tun.

 
Kira27:
Hallo!!! Können Sie mir sagen, kann es nicht bekommen))) Die Reihenfolge in der Liste der Objekte aus irgendeinem Grund, wenn Sie nicht ändern Sie die Namen der Objekte, dann, wenn Sie auswählen und verarbeiten Objekte durch diese Schleife

Wenn Sie jedoch die Namen mit diesen Funktionen ändern, wird die Reihenfolge beibehalten.

dann wird das nächste Objekt nach dem Zufallsprinzip ausgewählt.

Denn wenn ein Objekt umbenannt wird, wird es neu erstellt. Ein Objekt wird gelöscht, ein anderes wird erstellt, und in der Liste aller Objekte werden sie in der Reihenfolge ihres Erstellungszeitpunkts angeordnet.

 
Alexey Viktorov:

Denn wenn ein Objekt umbenannt wird, wird es neu erstellt. Das eine wird gelöscht, das andere neu erstellt, und in der Liste aller Objekte werden sie in der Reihenfolge ihres Erstellungszeitpunkts angeordnet.

Vielen Dank!!! Wo kann ich das nachlesen?

Grund der Beschwerde: