Fehler, Irrtümer, Fragen - Seite 2542

 
Warum werden die Levels nicht gespeichert, wenn ich den Computer ausschalte und am nächsten Tag MT4 aufrufe?
 

Entwickler, hallo.

In CArrayList von gineric wird die Kapazität falsch verwendet. Wenn es sich um eine Reservegröße handelt, sollte sie im Konstruktor wie folgt aufgerufen werden:

ArrayResize(m_items,0,m_default_capacity);

Im Moment sieht es so aus:

ArrayResize(m_items,m_default_capacity);

Wenn Sie sich selbst zuordnen und abrechnen wollen, dann beginnen Sie mit der Positionierung und verwenden Sie überall, auch bei bsearch und so, obwohl das keine gute Idee ist.


PS. Beim Studium des Codes habe ich festgestellt, dass man m_size doch übergibt. Wenn das Array leer ist, gibt BinarySearch 0 und nicht -1 zurück.

Und warum sollten wir Kapazität selbst organisieren, wenn wir sie auf der ArrayResize-Ebene haben?

PPS. Gibt es Pläne, eine Untergrenze zu schaffen?
 

Es gibt drei wesentliche Punkte beiCArrayList:

1. Über das Entfernen einer zusätzlichen Implementierung von Kapazität nachzudenken, da diese bereits in ArrayResize existiert

2) Fix BinarySearch für leere Arrays. Standardmäßig enthält das Array 4 Elemente, wobei der 0. Index zuerst übergeben wird und zurückgegeben wird, wenn die Größe des Arrays Null ist.

3. es ist wünschenswert, LowerBound hinzuzufügen. Es ist merkwürdig, dass niemand vorher gefragt hat

 
Yevhenii8370:
Warum werden die Levels nicht gespeichert, wenn ich den Computer ausschalte und am nächsten Tag MT4 aufrufe?

Hier gibt es zwei Möglichkeiten - entweder gibt es einen Indikator/Berater, der alle Ebenen während der Initialisierung bereinigt, oder das Set hat keine Zeit zum Speichern. Ich bin auf beide Probleme gestoßen. Das erste lässt sich durch Bearbeiten des Codes lösen, das zweite durch zweimaliges Speichern des Sets und Laden der gespeicherten Version beimStarten des Terminals.

 
Sergey Dzyublik:

MT5 (Build 2118), Wie lange können wir noch warten, um Fehler in derTypedef-Funktionalität zu beheben?
Irgendein Unsinn - ein Schritt nach links zu einem primitiven Beispiel für die Verwendung von typedef und das war's - ein Haufen von Fehlern, die die weitere Entwicklung blockieren.

Vielen Dank für den Code.

Fehler behoben.

Demo-Build von MT4 1192 wurde heute veröffentlicht, versuchen Sie MetaEditor 2121 zu verwenden, der mit MT4 geliefert wird, um MQ5-Dateien zu kompilieren

 

den Indikator herausgenommen und hier auf dem Diagramm hinterlassen (im Anhang).

Wie kann ich sie entfernen?

Ich suchte in der Liste der Objekte - habe es nicht gefunden. nahm alle Indikatoren und die EA - nicht helfen.

Dateien:
 
barashka:

den Indikator herausgenommen und hier auf dem Diagramm hinterlassen (im Anhang).

Wie kann ich sie entfernen?

Ich suchte in der Liste der Objekte - nicht gefunden. nahm alle Indikatoren und EA - hat nicht geholfen.

Die Liste der Objekte hat eine Schaltfläche, um die versteckten Objekte anzuzeigen, sie dort zu löschen...

 
Vladimir Pastushak:

In der Liste der Objekte gibt es eine Schaltfläche zum Anzeigen versteckter Objekte, also löschen Sie sie dort...

: )
 
Sergey Dzyublik:

https://www.mql5.com/ru/docs/basis/types/classes

Zuerst war ich überrascht, weil ich nicht wusste, dass es Offsetof gibt.
Aber die Realität hat alles auf den Kopf gestellt:

struct Parent{ 
      char              c;    // sizeof(char)=1 
};
     
struct Children pack(2) : Parent{ 
      short             s;   // sizeof(short)=2 
};

void OnStart(){ 
//--- объявим переменную типа Children 
   Children child;   
//--- узнаем смещения от начала структуры  
   Print("offsetof(child.c)=",offsetof(child.c)); 
   Print("offsetof(child.s)=",offsetof(child.s));
}   



'offsetof' - Funktion nicht definiert

Danke für die Nachricht.

Die Hilfe enthält Kopier- und Einfügefehler, die wir korrigieren sollten:

anstelle des Variablennamens child sollte der Klassentyp Children stehen und anstelle von '.' (Feldzugang) muss ein Komma sein (offsetof ist ein (bedingtes) eingebautes Makro)

struct Parent{ 
      char              c;    // sizeof(char)=1 
};
     
struct Children pack(2) : Parent{ 
      short             s;   // sizeof(short)=2 
};

void OnStart(){ 
//--- узнаем смещения от начала структуры  
   Print("offsetof(Children,c)=",offsetof(Children,c); 
   Print("offsetof(Children,s)=",offsetof(Children,s));
}   

 

Problem mit .NET: Das Programm stürzt ab, wenn die Bibliothek auf andere benutzerdefinierte Module zugreift und meldet, dass die Datei nicht gefunden wird:

System.Reflection.TargetInvocationException: Адресат вызова создал исключение. ---> System.TypeInitializationException: Инициализатор типа "MDD.IQFeedAPI" выдал исключение. ---> System.IO.FileNotFoundException: Не удалось загрузить файл или сборку "NLog, Version=2.1.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c" либо одну из их зависимостей. Не удается найти указанный файл.

Alle verwendeten dlls (einschließlich der erwähnten NLog.dll) befinden sich im selben Ordner, aber aus irgendeinem Grund sieht das System sie nicht, wenn es von MT aus ausgeführt wird. Es funktioniert nur mit dem regulären Framework. Ist das bei allen gleich, oder übersehe ich etwas? Wenn jemand weiß, wie man dieses Problem beheben kann, wäre ich dankbar.