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
Sie müssen sich jeden Satz ausdenken.
Ich habe gefragt, wo die Implementierung von Take-Outs als Limits ist, wenn der Text oben sagt: "Der Preis erreichte den Take-Out der offenen Position. MT5 hat eine Market Order gebildet".
Als Antwort erhielt ich:
MT5 zeigt dem [Kunden] immer Taker in Form von Market Orders an.
Wie kann man das vergleichen?
Drittanbieter.
So. Warum nicht anschließen?
Der Begrenzer wird also mit einem sehr kurzen Verfallsdatum gesendet.
Was hat das mit meiner Frage zu tun?
Wie unterscheidet sich der Einstieg vom Ausstieg? Warum ist ein Markt günstiger für den Ausstieg und ein Limit für den Einstieg?
Man muss an jeden Satz denken.
Leider ist dies der Preis für das Kommunikationsformat.
MT5 zeigt Takeouts immer in Form von Marktplätzen an. Ob es sich dabei um Märkte oder Limiter handelt, hängt von den Gateway-Implementierungen Dritter ab. In diesem Fall werden diese Märkte als Begrenzer gesendet.
MT5 fungiert nur als Datenbank.
MT5 zeigt immer Taker in Form von Marketplaces. Ob es sich dabei um Märkte oder Limiter handelt, hängt von den Gateway-Implementierungen Dritter ab. In diesem Fall werden diese Märkte als Begrenzer gesendet.
Sprechen wir darüber, wie die TP-Ausführung angezeigt wird?
Dann verstehe ich, worum es im ursprünglichen Beitrag geht)
Ich bin dabei, Merkmale der Umwandlung von Indikatoren für die Selbstbildung zu entwickeln. Hier sind drei weitere Indikatoren.
Wie üblich - die ursprüngliche MT4-Code nicht berühren.
Der Quelltext zeigt deutlich, was die Autoren mit StringConcatenate in ihrem Code machen. Dies ist einfach nur dumm!
HALLO...
Wie sind Sie mit der Umstellung auf MT5 vorgegangen?
Ich habe ein Netting-Konto. Ich eröffne und schließe eine Position auf diesem Konto über Marktplätze. Wenn ich eine Position schließe, gibt OrderSend 0 zurück, was zwar kein Fehler ist, aber auch nicht gerade ein Erfolg.
Ich schaue mir den folgenden Code in OrderSend an
MT4ORDERS::OrderSend liefert true. MT4ORDERS::LastTradeRequest.action == TRADE_ACTION_DEAL ist ebenfalls true. MT4ORDERS::IsTester ist ebenfalls true. Aber PositionSelect(MT4ORDERS::LastTradeRequest.symbol) gibt false zurück. Offenbar liegt das daran, dass die Position geschlossen ist. Ist das ein Fehler oder ein Feature? Oder bin ich wieder in einen Bereich vorgedrungen, der von dieser Lib nicht vollständig unterstützt wird?
Ich habe ein Netting-Konto. Ich eröffne und schließe eine Position auf diesem Konto über Marktplätze. Wenn ich eine Position schließe, gibt OrderSend 0 zurück, was kein Fehler ist, aber auch kein Erfolg.
DasSchließen einer Position wird meistens über OrderClose durchgeführt. Wenn Sie eine Position über OrderSend schließen, ist es logisch, dass Null zurückgegeben wird, da MT4Style-OrderSend ein Ticket für eine offene Position zurückgibt. Wenn Sie sie geschlossen haben, gibt es nichts zurückzugeben. Ein Fehler ist, wenn -1.
Wenn Sie OrderSend verwenden, um eine Position teilweise zu schließen oder umzudrehen, sollte es (angeblich) ein Ticket für die geänderte Position zurückgeben. Null - wenn es kein Ticket zurückzugeben gibt.
Ich versuche, die partielle Auftragsausführung in meinem Kopf einzurichten, aber ich verstehe sie noch nicht ganz. Und Demokonten spucken meist das Volumen aus und erlauben keine experimentelle Überprüfung.
Es gibt 2 Situationen: Ich benutze einen reinen MT4 mit der Option"Partial Execution of Limit Orders" und ich benutze MT5 mit der MT4Orders Bibliothek. Eine Limit-Order wird platziert und teilweise ausgeführt.
1. Für MT4, so wie ich es verstehe, gibt es 2 Orders: 1 für das teilweise ausgeführte Volumen als nicht limitierte Order, aber bereits ausgeführt, und 1 für das restliche Volumen als limitierte Order. Die Aufträge sind unabhängig voneinander, der 2. Auftrag wird im Wesentlichen vom Broker erteilt. Nachdem das verbleibende Volumen abgewickelt ist, gibt es 2 Aufträge, die jedoch beide ausgeführt werden. Verstehe ich das richtig? Denn wenn ich mir das Schema der API in MT4 anschaue, fällt mir nur dies ein, ich sehe dort keine Arbeit mit Teilausführungen, sowie die Platzierung der Art der Order, wie FOK oder etwas anderes.
2. Für MT5 wird die Order 1 bleiben, immer noch eine Limit-Order, aber es wird eine Aufteilung der Volumina in ORDER_VOLUME_INITIAL und ORDER_VOLUME_CURRENT geben. MT4Orders gibt ORDER_VOLUME_CURRENT zurück, und um das zweite Volumen zu erhalten, müssen Sie die native MT5 API nutzen. Wenn das verbleibende Volumen gefüllt ist, bleibt die Order 1, sie wird von Limit auf Executed verschoben und der Preis wird auf den Durchschnitt neu berechnet. Habe ich das richtig verstanden?
Ich versuche, die partielle Auftragsausführung in meinem Kopf einzurichten, aber ich verstehe sie noch nicht ganz. Und Demokonten spucken meist auf das Volumen und erlauben keine experimentelle Überprüfung.
Es gibt 2 Situationen: Ich benutze einen reinen MT4 mit der Option"Partial Execution of Limit Orders" und ich benutze MT5 mit der MT4Orders Bibliothek. Eine Limit-Order wird platziert und teilweise ausgeführt.
1. Für MT4, so wie ich es verstehe, gibt es 2 Orders: 1 für das teilweise ausgeführte Volumen als nicht limitierte Order, aber bereits ausgeführt, und 1 für das restliche Volumen als limitierte Order. Die Aufträge sind unabhängig voneinander, der 2. Auftrag wird im Wesentlichen vom Broker erteilt. Nachdem das verbleibende Volumen abgewickelt ist, gibt es 2 Aufträge, die jedoch beide ausgeführt werden. Verstehe ich das richtig? Denn wenn ich mir das Schema der API in MT4 anschaue, fällt mir nur das ein, ich sehe dort keine Arbeit mit Teilausführungen, sowie die Platzierung der Art der Order, wie FOK oder etwas anderes.
Richtig.
2. Für MT5 wird die Order 1 bleiben, immer noch eine Limit-Order, aber es wird eine Aufteilung der Volumina in ORDER_VOLUME_INITIAL und ORDER_VOLUME_CURRENT geben. MT4Orders gibt ORDER_VOLUME_CURRENT zurück, und um das zweite Volumen zu erhalten, müssen Sie die native MT5 API nutzen. Wenn das verbleibende Volumen gefüllt ist, bleibt die Order 1, sie wird von Limit auf Executed verschoben und der Preis wird auf den Durchschnitt neu berechnet. Verstehe ich das richtig?
Es werden viele Geschäfte mit der gleichen DEAL_ORDER generiert. Die Order kann sogar von Ihnen geändert (offener Preis) oder gelöscht werden. D.h. sein Status kann CANCELED sein, aber er hat mehrere Geschäfte erzeugt. Aus diesem Grund ist es nicht immer möglich, den Slippage-Wert zu kennen.
Ich bin mir dessen nicht bewusst. Vielleicht ist es in der MOEX-Demoschleife möglich, den Preis durch Demo-Limiter zu beeinflussen. Dann ist es einfach, die Situation zu reproduzieren: BuyLimit innerhalb des Spreads setzen und sofort einige kleine SELL-Märkte machen.
ORDER_VOLUME_INITIAL - ich habe kein Szenario gesehen, in dem diese Information nützlich sein könnte.
Wenn es keine offenen Positionen gibt (nicht notwendig für Hedge), erstellt die Teilausführung eine MT5 Position und eine MT5 Order mit demselben Ticket. Außerdem werden Geschäfte mit der gleichen PositionID erstellt. Aus diesem Grund können Sie im Modus SELECT_BY_TICKET im Gegensatz zu MT4 festlegen, wo Sie zuerst suchen möchten (in der Historie oder unter den Live-Trades) - MODE_HISTORY/MODE_TRADES. Und die Auswahl nach Ticket ist dementsprechend nicht eindeutig.
Deshalb empfehle ich, dies über SELECT_BY_POS zu tun.
ORDER_VOLUME_INITIAL - Ich habe kein Szenario gesehen, in dem diese Information nützlich wäre.
Ich verwende sie in Verbindung mit ORDER_VOLUME_CURRENT, um festzustellen, wie viel gegossen wurde und wie viel sich noch im Begrenzer befindet. Hauptsächlich für meine eigenen Statistiken, um den Prozess zu verdeutlichen.
Danke für die ausführliche Erklärung. Das bedeutet, dass ich mir alles richtig vorgestellt habe, also mache ich es auch. Das Einzige, was ich nicht bedacht habe, ist, dass eine Teilausführung im MT5 eine neue Marktorder erzeugt.
DasSchließen einer Position erfolgt meist über OrderClose.
Aber in diesem Fall ist es unmöglich, durch den Limiter zu arbeiten. Oder ist das irgendwie möglich?