Einteilung der offenen Stellen in Gruppen - Seite 8

 
Sergey Voytsekhovsky:

Bitte sagen Sie mir, dass der Artikelhttps://www.mql5.com/ru/articles/567 den folgenden Code enthält und erwähnt

Aber ich konnte sie nicht im Standardpaket finden. Keine gute Suche oder der Artikel ist veraltet?

Nein, ich habe nur einen Fehler gemacht.

Du ziehst Codestücke von hier, dort und dort, und wir sollen raten.

Der Code zum Hinzufügen eines Elements an das Ende der Liste, den Sie gezeigt haben, ist dem Code zum Hinzufügen eines Elements an das Ende der Liste aus der Standardbibliothek sehr ähnlich.

Und es stellt sich heraus, dass Sie etwas von irgendwoher mitgenommen haben...

 
Sergey Voytsekhovsky:

Die Idee ist klar, es ist unklar, warum wir nicht auf bereits bewährte Algorithmen zurückgreifen sollten, aber das mit den "drei Schleifen" ist sehr verständlich, danke. Wenn man hochwertige, einfache Lösungen bekommt, frage ich mich immer, warum ich nicht selbst darauf gekommen bin, weil es so offensichtlich ist. Ich danke Ihnen.

Auch dort gibt es eine Menge Fehler, und die Suche nach Problemen im Code anderer Leute ist für mich absolut unmöglich. Und wenn Sie plötzlich einen Fehler finden, beheben Sie ihn selbst, und selbst wenn Sie ihn melden, heißt das noch lange nicht, dass sie die Meldung sehen und beheben werden. Und mit dem nächsten Update geht es dann wieder von vorne los.
 
Alexey Viktorov:
Auch dort gibt es eine Menge Fehler, und die Suche nach einem Problem im Code eines anderen ist für mich absolut unmöglich. Wenn Sie plötzlich einen Fehler finden, müssen Sie ihn selbst beheben, und selbst wenn Sie ihn melden, ist es nicht sicher, dass die Meldung gesehen und korrigiert wird. Und mit dem nächsten Update geht es dann wieder von vorne los.

Sind Sie sicher, dass die SB eine Menge Fehler enthält? Oder magst du einfach keine Katzen, weil du kein Kochbuch hast?

 
Artyom Trishkin:

Nein, ich habe nur einen Fehler gemacht.

Sie "ziehen" Codestücke von hier, dort, dort..., und wir müssen raten.

Der Code zum Hinzufügen eines Elements am Ende der Liste, den Sie uns gezeigt haben, ist dem Code zum Hinzufügen eines Elements am Ende der Liste aus der Standardbibliothek sehr ähnlich.

Und es stellte sich heraus, dass du irgendwoher etwas hast...

Der Code zum Hinzufügen eines Elements am Ende der Liste stammt aus der Standardbibliothek, da haben Sie recht. Und ich habe versucht, ihn zu "ziehen", nachdem ich den Code aus dem Artikel nicht gefunden hatte. :-))

 
Artyom Trishkin:

Sind Sie sicher, dass Sie wissen, dass es in SB viele Fehler gibt? Oder mögen Sie einfach keine Katzen, weil Sie kein Kochbuch haben?

Sag mal, Artyom, erinnerst du dich an das Problem mit der teilweisen Schließung einer Position? Erinnern Sie sich daran, dass sie anschließend eine weitere Methode hinzugefügt haben, anstatt den Grund für dieses Verhalten zu finden?

Ich weiß nicht, wie deviation=ULONG_MAX die ganze Methode zum Scheitern brachte, aber ich ersetzte es durch deviation=1000 und alles funktionierte. Ich schrieb darüber im "Bugs bugs..."-Thread, aber das Thema wuchs so schnell, dass diese Nachricht in Vergessenheit geriet und nicht beachtet wurde. Infolgedessen wurde eine weitere Methode entwickelt, aber ist sie wirklich notwendig? Und wie kann man nun sicher sein, dass es nirgendwo anders Fehler gibt? Wie können Sie sicher sein, dass die Botschaft wahrgenommen wird?

 
Sergey Voytsekhovsky:

Der Code zum Hinzufügen eines Elements am Ende der Liste stammt aus der Standardbibliothek, da haben Sie recht. Und ich habe versucht, ihn zu "ziehen", nachdem ich den Code aus dem Artikel nicht gefunden hatte. :-))

Wenn Sie die Standardbibliothek verwenden, um Ihre durch Objekte dargestellten Daten zu speichern, dann sollten die Daten keine Struktur sein, sondern ein Objekt, das auf CObject der Standardbibliothek basiert, und dann können Sie dynamische Arrays von Zeigern auf Objekte aus der Standardbibliothek verwenden, um sie zu speichern. Es gibt keine Möglichkeit, ein Stück herauszuziehen.

Документация по MQL5: Стандартная библиотека / Базовый класс CObject
Документация по MQL5: Стандартная библиотека / Базовый класс CObject
  • www.mql5.com
Класс CObject обеспечивает всем своим потомкам возможность быть элементом связанного списка. Кроме того определяется ряд виртуальных методов для дальнейшей реализации в классах-потомках.
 
Alexey Viktorov:

Sag mal, Artyom, erinnerst du dich an das Problem mit der teilweisen Schließung einer Position? Erinnern Sie sich daran, dass sie später eine andere Methode hinzugefügt haben, anstatt den Grund für dieses Verhalten zu finden?

Ich weiß nicht, wie deviation=ULONG_MAX dazu geführt hat, dass die ganze Methode nicht funktioniert hat, aber ich habe sie durch deviation=1000 ersetzt und alles hat gut funktioniert. Ich schrieb darüber im "Bugs bugs..."-Thread, aber das Thema wuchs so schnell, dass diese Nachricht in Vergessenheit geriet und nicht beachtet wurde. Infolgedessen ist eine weitere Methode entstanden, aber ist sie wirklich notwendig? Und wie kann man nun sicher sein, dass es nirgendwo anders Fehler gibt? Wie können Sie sicher sein, dass die Botschaft wahrgenommen wird?

Nein, ich erinnere mich nicht an das Problem der teilweisen Schließung. Und ich weiß nicht, ob sich die Abweichung auf die Operation auswirkt. Und ich kann mir nicht einmal vorstellen, wie eine maximale Abweichung in Höhe von ULONG_MAX-Punkten (was keiner Abweichung entspricht) den Teilabschluss beeinflussen könnte. Und ich habe noch nichts von der neuen Methode gehört. Was ist die Methode?

Und um sicherzugehen, dass die Nachricht nicht verloren geht - finden Sie sie, kopieren Sie sie in Ihre Tasche und posten Sie sie erneut mit dem Hinweis, dass sie irgendwo in der Diskussion verloren gegangen sein muss, dass"MQL != C++, und sollte =="sein.

 
Artyom Trishkin:

Nein, ich kann mich nicht an ein Problem mit einem Teilabschluss erinnern. Und ich weiß nicht, ob die Abweichung den Betrieb beeinträchtigt. Und ich kann mir nicht einmal vorstellen, wie sich eine maximale Abweichung von ULONG_MAX-Punkten (die keiner Abweichung entspricht) auf einen Teilabschluss auswirken könnte. Und ich habe noch nichts von der neuen Methode gehört. Welche Methode?

Und damit die Nachricht nicht verloren ging - finden Sie sie, kopieren Sie sie in eine Tasche und posten Sie sie erneut mit dem Hinweis, dass sie wahrscheinlich irgendwo in den Diskussionen verloren ging, dass"MQL != C++, und sollte =="sein.

Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien

Aufteilung der offenen Stellen in Gruppen

Alexey Viktorov, 2020.04.08 09:13

Sagen Sie, Artem, erinnern Sie sich an das Problem mit der teilweisen Schließung von Positionen? Erinnern Sie sich, dass später eine weitere Methode hinzugefügt wurde, anstatt die Ursache für dieses Verhalten zu finden?

Ich weiß nicht, wie deviation=ULONG_MAX die Nichtfunktionalität der gesamten Methode beeinflusst hat, aber ich habe es durch deviation=1000 ersetzt und alles funktionierte gut. Im Thema "Wanzen Wanzen..." schrieb darüber, aber das Thema wuchs so schnell, dass diese Nachricht in der Versenkung verschwand und nicht beachtet wurde. Infolgedessen ist eine weitere Methode entstanden, aber ist sie wirklich notwendig? Und wie kann man nun sicher sein, dass es nirgendwo anders Fehler gibt? Wie können Sie sicher sein, dass die Botschaft wahrgenommen wird?


 
Artyom Trishkin:

Nein, ich kann mich nicht an ein Problem mit einem Teilabschluss erinnern. Und ich weiß nicht, ob die Abweichung den Betrieb beeinträchtigt. Und ich kann mir nicht einmal vorstellen, wie sich eine maximale Abweichung von ULONG_MAX-Punkten (die keiner Abweichung entspricht) auf einen Teilabschluss auswirken könnte. Und ich habe noch nichts von der neuen Methode gehört. Welche Methode?

Und damit die Botschaft nicht verloren geht - finden Sie sie, kopieren Sie sie in eine Tasche und posten Sie sie erneut mit dem Hinweis, dass sie wahrscheinlich irgendwo in der Diskussion über"MQL != C++ und ob es == sein sollte" verloren gegangen ist.

Schlagen Sie also vor, die anderen Nachrichten zurückzustellen? Niemand soll sie zur Sprache bringen? Das ist nicht richtig.

Meiner Meinung nach wäre es besser, einen separaten Forumsbereich zu definieren, in dem jedes Problem ein eigenes Thema wäre. Die Anzahl der Themen ist viel geringer als die Anzahl der Beiträge pro Thema. Daher werden sie trotz der großen Anzahl von Themen nicht so weit nach hinten verschoben, wie es jetzt bei einzelnen Fragen und Fehlerberichten der Fall ist.

 
Alexey Viktorov:

Abschaffung des brachialen Erzwingens von Positionen, um festzustellen, "dass die Position tatsächlich neu ist". Finden Sie einen anderen Weg. Zum Beispiel in OnTradeTransaction. Und versuchen Sie, die Funktion ArrayRemove anstelle von Array Overflow zu verwenden

Wenn ich Sie richtig verstehe, ist dies der richtige Weg. Als erfahrener Genosse können Sie mir bitte sagen, ob ein solcher Filter für die Erfassung von Neugeborenenpositionen geeignet ist? Oder gibt es vielleicht eine bessere Option?

void OnTradeTransaction(const MqlTradeTransaction& trans,
                        const MqlTradeRequest& request,
                        const MqlTradeResult& result)
 {
     if(trans.type == TRADE_TRANSACTION_DEAL_ADD)
      {
         if(trans.type != TRADE_TRANSACTION_ORDER_DELETE)
            {
             if(HistoryDealGetInteger(trans.deal, DEAL_ENTRY) == DEAL_ENTRY_IN) // открылась позиция
               {
Grund der Beschwerde: