Fehler, Irrtümer, Fragen - Seite 2404

 
Ilya Malev:

Also lasst es laufen, wer hindert es daran? Es funktioniert sowieso nicht so, wie MT4 es tat, also liegt es an Ihnen, dieses Verhalten für 90% der Zeit oder für die restlichen 10% zu ändern.

Warten Sie auf ein Beispiel, wie Sie dieses Verhalten nutzen können?

 
Ilya Malev:

Brauchen Sie einen Berater, um einen solchen zu schreiben? Ich denke, Sie können das genauso gut selbst machen wie ich.

Sie erwähnen oft SELECT_BY_TICKET, aber Sie geben keine praktische Verwendung dafür an.

Ich selbst verwende dieses Konstrukt nicht. Außerdem halte ich die Verwendung in MT4 für gefährlich.

Ilya Malev:

In 90 % der Fälle ist es nicht SELECT_BY_TICKET in der Historie, sondern es funktioniert mit Bestellungen wie mit unteilbaren Einheiten. Teilweise Schließungen oder Eröffnungen sind bei den meisten Forex-Brokern eine Seltenheit. In der Regel wird der Auftrag entweder vollständig geschlossen/geöffnet oder es wird ein Preisnachlass gewährt.

MT5 ist auch eine Börsenplattform, auf der ein Teil des Geldes nicht unüblich ist. Außerdem gab es oben ein Beispiel, bei dem der Nutzer seine Position teilweise schließt. Es ist eine ganz normale Praxis, wenn der Händler beispielsweise eine Position in Teilen zu unterschiedlichen Kursniveaus schließt.
 
fxsaber:

Sie erwähnen oft SELECT_BY_TICKET, aber Sie geben keine praktische Anwendung an.

Ich selbst verwende dieses Konstrukt nicht. Außerdem halte ich die Verwendung in MT4 für gefährlich.

Vielleicht haben Sie Recht, aber dies ist ein Teil der Funktionalität, die in Ihrer Bibliothek nicht so funktioniert wie in MT4. Ich habe auf diese Tatsache hingewiesen, ohne die Absicht zu haben, sie zu kommentieren.

 
Ilya Malev:

Sie mögen Recht haben, aber dies ist ein Teil der Funktionalität, die in Ihrer Bibliothek anders funktioniert als in MT4. Ich habe auf diese Tatsache hingewiesen, ohne die Absicht zu haben, sie zu kommentieren.

Sie wird in der Diskussion über die Bibliothek ausdrücklich erwähnt. Es werden einschlägige Beispiele und Argumente dafür angeführt, dass auch auf MT4 die Verwendung von SELECT_BY_TICKET eine schlechte Handelslogik ist.

 
Ilya Malev:

Wenn Sie der Meinung sind, dass dieser Modus überhaupt nicht verwendet werden sollte, dann machen Sie es wie in MT4 und empfehlen Sie nicht, ihn zu verwenden.

Dieser Modus kann in bestimmten Situationen nützlich sein.

Nur für den Fall - das Verhalten des Servers während der teilweisen Schließung in MT4 war bei verschiedenen Brokern unterschiedlich und ist nicht garantiert, dass es so ist, wie Sie es beschrieben haben

Sie können versuchen, eine Stelle zu finden, an der bei einem Teilschluss in MT4 die Position das Ticket nicht ändert. Der obige Code wurde eingegeben.

 
Ilya Malev:

1. Vielleicht sollte ich Sie jetzt bitten, ein Beispiel zu nennen (nur nicht in diesem Thread, der ist schon überfüllt)

Wir haben eine geschlossene Position in der Terminal-Historie gesehen. Wir müssen schnell seine Daten abrufen - wir haben ein Ticket in das Skript geschrieben und das war's.

Oder wir müssen die Handelsgeschichte auf unsere eigene Weise sortieren. Sortieren Sie die Tickets und wählen Sie aus.

2. Mir ist es eigentlich egal, ob das Ticket beim Teilabschluss geändert wird oder nicht, denn es hat keinen Einfluss auf die Auftragsauswahl innerhalb des Tickets, wenn der Teilabschluss nicht verwendet wird. Und wenn Sie es benutzen, sollten Sie sich entweder den Kommentar ansehen (MT4) oder die Geschäfte nach Positionsnummer auswählen (MT5).

Alles ist per Ticket auswählbar. Es ist nur so, dass sich das Ticket der Position ändert, wenn Sie es schließen. Dies ist der einzige Unterschied zu MT4.

 
Ilya Malev:

Sie sollten also eine zusätzliche Funktion entwickeln, die es ermöglicht, die geänderte Ticketnummer anhand der alten Nummer zu ermitteln, anstatt darauf zu bestehen, dass die in MT4 vorhandene Funktion SELECT_BY_TICKET "falsch" ist. Aber das ist natürlich Ihre Sache.

Es gibt eine MT5-Funktion, die Programmierer vielleicht brauchen, aber sie ist schwer zu implementieren. Und es gibt eine, die leicht umzusetzen ist, aber kaum gebraucht wird.

Nur im ersten Fall ist es sinnvoll, etwas zu tun. OrderOpenPriceRequest ist zum Beispiel eine super Sache, weil es elementar ist, um Slippage bei der Eröffnung zu berechnen.

Aber OrderTicketOld ist eine sehr einfache Sache (POSITION_ID) und bedeutet nichts. Die Sache ist schwer zu realisieren, deshalb wird sie auch gemacht.

 
Ilya Malev:

In den Bibliotheken wird gefordert, dass der Expert Advisor "im MT4-Stil" geschrieben sein muss. Ausgehend von dieser Anforderung ist es sinnvoll, eine Funktion zu implementieren, die genau in diesen Stil passt und es Ihnen ermöglicht, Code so gut zu schreiben, wie Sie es auf MT4 könnten.

Sie haben keinen EA gezeigt, der nicht funktionieren würde.

 
Hochwasser
 
fxsaber:

Ein teilweises Schließen bedeutet nicht unbedingt ein teilweises Ausfüllen auf der Serverseite.

Wie wählt man also 0,2 geschlossene Lose in einer solchen Situation in MT5?

Ich habe keine Ahnung, wie es im MT5 aussieht, aber im MT4 habe ich nach einer Möglichkeit gesucht, eine Bestellung teilweise zu schließen und ein neues Ticket zu finden, ohne das OrderComment()-Feld zu verwenden

alles funktioniert im Allgemeinen wie in MT4:

- einen Auftrag aus der Liste der Marktaufträge auswählen und ein Ticket erhalten

- wir fordern OrderClose() an - wir erhalten true

- das alte Ticket ist in der Auftragshistorie verschwunden und ein neues Marktticket ist erschienen; wenn der Auftrag vollständig (nicht teilweise) geschlossen wurde, erscheint kein neues Ticket

Das Thema der teilweisen Schließung in MT4 ist interessant genug, fragte ich, aber leider haben alle Guru geschickt, um das Glück in OrderComment() zu suchen - ich mag es nicht, aber anscheinend Menschen nicht die Mühe, ein Thema mit einer Diskussion über einen wirksamen Algorithmus zunächst für MT4, würde ich teilgenommen haben


SZY: Ich kann den Quellcode nicht finden, die Implementierung gefällt mir nicht - ich habe Marktordertickets in einem Array gespeichert und sofort nach einer teilweisen Schließung habe ich ArrayBsearch() verwendet, um eine im Array fehlende Order zu finden, d.h. ein neues Ticket