Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Dies könnte eher ein semantisches Problem als ein Fehler sein.
Der Zweck von ObjectDelete ist es, "das Objekt mit dem angegebenen Namen zu entfernen".
Befindet sich am Ende der Ausführung der Funktion noch ein Objekt mit dem Namen "Nicht existierendes Objekt" im Diagramm? Nein... ist dies also ein Erfolg?
Anders gefragt: Hat ObjectDelete ein Objekt mit dem Namen "Non-existing Object" entfernt? Nein... ist das also ein Misserfolg?
Messen Sie den Erfolg am Ergebnis oder an der durchgeführten Aktion?
Vielleicht wäre ein False zu erwarten, wenn das genannte Objekt nach Ausführung der Funktion im Diagramm verbleibt. Ansonsten war es ein Erfolg.
Ja, ich werde es melden. Ich habe auf Ihre Bestätigung gewartet, danke.
Ich habe gerade versucht, das Problem über den Service Desk zu melden, aber die Meldung wird nicht akzeptiert: "Fehler beim Speichern von Daten".
Ich habe es auch von einem anderen Standort, PC und Browser aus versucht (mit meinem VPS), und es ist dasselbe passiert.
Konnten Sie das Problem bei Ihnen melden?
Dies könnte eher ein semantisches Problem als ein Fehler sein.
Der Zweck von ObjectDelete ist es, "das Objekt mit dem angegebenen Namen zu entfernen".
Befindet sich am Ende der Ausführung der Funktion noch ein Objekt mit dem Namen "Nicht existierendes Objekt" im Diagramm? Nein... ist dies also ein Erfolg?
Anders gefragt: Hat ObjectDelete ein Objekt mit dem Namen "Non-existing Object" entfernt? Nein... ist das also ein Misserfolg?
Messen Sie den Erfolg am Ergebnis oder an der durchgeführten Aktion?
Vielleicht wäre ein False zu erwarten, wenn das genannte Objekt nach Ausführung der Funktion im Diagramm verbleibt. Ansonsten war es ein Erfolg.
Wenn das der Fall ist, dann ist der Funktionsunterschied zwischen MQL4 und MQL5 nicht in der Dokumentation beschrieben oder erklärt!
Einverstanden. Ich bin nur neugierig, was "sie" für richtig halten werden :-)
Ich persönlich denke, dass es besser ist, true zurückzugeben. Andernfalls muss man zusätzlichen Code hinzufügen, um zu prüfen, ob das Objekt existiert, oder man muss 4202-Fehler in Kauf nehmen.
Einverstanden. Ich bin nur neugierig, was "sie" für richtig halten werden :-)
Ich persönlich denke, dass es besser ist, true zurückzugeben. Andernfalls muss man zusätzlichen Code hinzufügen, um die Existenz des Objekts zu prüfen, oder man muss 4202-Fehler in Kauf nehmen.
Meiner Meinung nach muss man in beiden Fällen die Existenz des Objekts vor dem Löschen prüfen, unabhängig davon, welche Version "richtig" ist.
EDIT: Ich hoffe jedoch, dass sie es so "reparieren", dass es auf die gleiche Weise wie MQL4 funktioniert. Andernfalls wird es noch einen weiteren Unterschied in der Funktionalität geben, bei dem wir eine bedingte Kompilierung in den Code einbauen müssen, der für beide Versionen kompiliert werden soll.
Meiner Meinung nach muss in beiden Fällen vor dem Löschen geprüft werden, ob das Objekt vorhanden ist, unabhängig davon, welche Version "richtig" ist.
Interessant! Warum sollten Sie prüfen, ob es existiert, wenn Sie es loswerden wollen?
Die Zeit, die benötigt wird, um zu prüfen, ob ein nicht existierendes Objekt existiert, ist weitgehend vergleichbar mit dem Versuch, ein nicht existierendes Objekt auf MT4 zu löschen (und eine flüchtige Inspektion auf MT5 zeigt, dass es wesentlich langsamer ist), so dass ich keinen greifbaren Leistungsvorteil durch die Ausführung der Prüfung erkennen kann. Aber es werden mehr Zeilen in Ihrem Code hinzugefügt.
EDIT: Ich hoffe jedoch, dass sie es so "reparieren", dass es auf die gleiche Weise wie MQL4 funktioniert. Andernfalls wird es noch einen weiteren Unterschied in der Funktionalität geben, bei dem wir eine bedingte Kompilierung in den Code einfügen müssen, der für beide Versionen kompiliert werden soll.
Interessant! Warum sollten Sie prüfen, ob es existiert, wenn Sie es loswerden wollen?
Die Zeit, die benötigt wird, um zu prüfen, ob ein nicht existierendes Objekt existiert, ist weitgehend vergleichbar mit dem Versuch, ein nicht existierendes Objekt auf MT4 zu löschen (und eine flüchtige Inspektion auf MT5 zeigt, dass es wesentlich langsamer ist), so dass ich keinen greifbaren Leistungsvorteil durch die Ausführung der Prüfung erkennen kann. Allerdings werden dadurch mehr Zeilen in Ihrem Code hinzugefügt.
Wenn Sie erkennen wollen, ob der Benutzer den Eintrag versehentlich gelöscht hat und er neu erstellt werden muss. Ich meinte dies als allgemeine "Haushaltsführung" und nicht für eine einmalige Löschfunktion.
Aber ja, ich stimme zu, für eine "OnDeinit()" -Funktionalität ist es nicht notwendig, sie zuerst zu testen.
Wenn Sie erkennen wollen, ob der Benutzer sie versehentlich gelöscht hat und sie neu erstellt werden muss. Ich meinte dies als allgemeine "Haushaltsführung" und nicht für eine einmalige Löschfunktion.
Aber ja, ich stimme zu, für eine "OnDeinit()" Funktionalität, gibt es keine Notwendigkeit, es zuerst zu testen.
Ah, ich verstehe.
Als Nebenbemerkung:
void OnStart()
{
string name = "MysteryObject";
ulong begin;
begin = GetMicrosecondCount();
for(int i=0; i<1000; i++) int result = ObjectFind(0,name);
printf("ObjectFind took %i μs", GetMicrosecondCount()-begin);
begin = GetMicrosecondCount();
for(int i=0; i<1000; i++) bool result = ObjectDelete(0,name);
printf("ObjectDelete took %i μs", GetMicrosecondCount()-begin);
}
Es läuft auf MT4 Es ist nicht viel drin.
Betrieb auf MT5 Es ist über 50 Mal langsamer.
Hat jemand einen Einblick in die Gründe?
Als Randbemerkung:
Betrieb auf MT4 Es ist nicht viel drin.
Betrieb auf MT5 Es ist über 50 Mal langsamer.
Hat jemand einen Einblick in die Gründe?