Diskussion zum Artikel "Bibliothek für ein leichtes und schnelles Entwickeln vom Programmen für den MetaTrader (Teil XXVIII): Schließen, Entfernen und Ändern von schwebenden Handelsanfragen"
Hallo Artyom, gibt es einen bestimmten Grund, warum Sie einem Zeiger dynamischen Speicher zuweisen, um die folgende Arbeit auszuführen?
int CTrading::GetIndexPendingRequestByOrder(const ulong ticket) { CPendingReq *req=new CPendingReq(); if(req==NULL) return WRONG_VALUE; req.SetOrder(ticket); this.m_list_request.Sort(SORT_BY_PEND_REQ_TICKET); int index=this.m_list_request.Search(req); delete req; return index; }
Meiner bescheidenen Meinung nach würde die Verwendung einer einfachen lokalen Variablen die Methode vereinfachen und den überflüssigen Code für die Zeigerbehandlung weiter oben überflüssig machen.
int CTrading::GetIndexPendingRequestByOrder(const ulong ticket) { CPendingReq req; req.SetOrder(ticket); this.m_list_request.Sort(SORT_BY_PEND_REQ_TICKET); int index=this.m_list_request.Search(req); return index; }
Ich bin neugierig zu verstehen, warum Sie sich für den ersteren Ansatz entschieden haben... vielleicht übersehe ich einige bewährte Verfahren?
/dima
Hallo Artyom, gibt es einen bestimmten Grund, warum Sie dynamischen Speicher für einen Zeiger zuweisen, um die Arbeit unten durchzuführen?
Meiner bescheidenen Meinung nach würde die Verwendung einer einfachen lokalen Variablen die Methode vereinfachen und den überflüssigen Code für die Zeigerbehandlung weiter oben überflüssig machen.
Ich bin neugierig, warum Sie sich für den erstgenannten Ansatz entschieden haben... vielleicht übersehe ich ja eine Best Practice?
/dima
Die Methode Search() arbeitet mit einem Zeiger auf ein Objekt:
int Search( CObject* element // Beispiel ) const
Ah, richtig... aber könnte man die Methode nicht aufrufen und stattdessen den Zeiger der lokalen Variablen übergeben?
int index=this.m_list_request.Search(GetPointer(req));
Ah, richtig... aber könnten Sie nicht die Methode aufrufen und stattdessen den Zeiger der lokalen Variablen übergeben?
Man kann das auf verschiedene Arten machen ... Ich habe das getan ... :)
Man kann es auf verschiedene Arten machen ... Ich habe das getan ... :)
Cool, danke - es war nur eine Bestätigung meines Verständnisses, da ich immer noch die Artikel lese und den Code studiere ;-)
CEventsCollection*GetObject(void) { return &this;

- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Neuer Artikel Bibliothek für ein leichtes und schnelles Entwickeln vom Programmen für den MetaTrader (Teil XXVIII): Schließen, Entfernen und Ändern von schwebenden Handelsanfragen :
Dies ist der dritte Artikel über das Konzept der schwebenden Anfragen. Wir werden die Tests von schwebenden Anfragen abschließen, indem wir die Methoden für das Schließen von Positionen, die Entfernung von schwebenden Anfragen und die Änderung der Parameter von Positionen und den Parametern von Pending-Orders erstellen.
Dies ist der dritte Artikel über das Konzept von schwebenden Anfragen. In diesem Artikel werden wir die Tests des Konzepts abschließen, indem wir die Methoden für das Schließen von Positionen, das Entfernen von Orders und das Ändern der Stop-Orders von Positionen und der Parameter von Pending-Orders, die modifiziert werden können, erstellen.
Außerdem werden wir die Klasse der abstrakten Orders leicht verbessern, indem wir die Rückgabe der beiden Order- und Positionseigenschaftswerte hinzufügen — das Ausfüllen der Order und den Typ des Ablaufes. Der Code aller Handelsmethoden des grundlegenden plattformübergreifenden Handelsobjekts wurde leicht optimiert. Es macht keinen Sinn, sich mit den Änderungen aufzuhalten. Stattdessen werde ich ein einziges Beispiel für eine der geänderten Methoden zeigen.Autor: Artyom Trishkin