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
Hallo @Stanislav Korotky, ich bin neu in der MQL5. Finden Sie, dass Sie eine wss.zip-Datei für Websocket verwenden zu posten. Wie man es verwendet, gibt es eine Demo oder etwas, das ich lernen kann. Ich danke Ihnen herzlich!
Sie können mehrere Beispiele im Algotrading-Buch finden, in dem Abschnitt, der (Schritt für Schritt) die Implementierung eines Webservice-Projekts zum Kopieren von Trades und Signalen beschreibt.
Sie können mehrere Beispiele im Algotrading-Buch finden, im Abschnitt, der (Schritt für Schritt) die Implementierung eines Web-Service-Projekts zum Kopieren von Trades und Signalen beschreibt.
Hallo @StanislavKorotky
Ich versuche, eine teilweise Positionsschließung mit einer Pending Order in der entgegengesetzten Richtung zu implementieren.
z.B.:
MqlTradeRequestSync reqs(transaction.symbol);
reqs.closeby(target_position_ticket_id, transaction.order);
Ich glaube, dass die obige Zeile in der Lage sein sollte, die Aufgabe zu erledigen, aber meine Herausforderung ist, wie man die "target_position_ticket_id"innerhalb des OnTradeTransaction -> TRADE_TRANSACTION_DEAL_ADD ( transaction.type) Event-Handlers erhältoder irgendwie die schwebende Order mit der target_position_ticket_id verknüpft, die geschlossen werden soll, wenn die schwebende Order ausgeführt wird.
Ich habe versucht, die "target_position_ticket_id"zum Kommentar der schwebenden Order hinzuzufügen, wenn ich die schwebende Order erstelle, aber das Problem ist, dass ich innerhalb von OnTradeTransaction -> TRADE_TRANSACTION_DEAL_ADD (transaction.type) nicht auf den Kommentar zugreifen kann, da dieMqlTradeTransaction-Attribute nicht über "comment" verfügen.
Ich bitte um Ihre Hilfe
Die closeby(ticket1, ticket2) Methode aus dem Buch setzt voraus, dass Sie ein Hedging-Konto verwenden und bereits 2 offene Positionen (Kauf und Verkauf) mit den Tickets ticket1 und ticket2 haben. Ich nehme an, dass es (im Allgemeinen) nicht möglich ist, die Aktion TRADE_ACTION_CLOSE_BY gegen eine schwebende Order durchzuführen. Aber wenn Ihr Konto im Netting-Modus ist, denke ich, dass Sie einfach eine Pending-Order in die entgegengesetzte Richtung platzieren können, und wenn sie ausgelöst wird, wird sie die bestehende Position entsprechend ändern - d.h. sie schließen, oder teilweise schließen, oder sogar invertieren (wenn das neue Volumen größer ist als das alte).
Kleine Patches in Websockets (a la carte & en masse).
Eine dieser Eigenschaften sind die "Commissions" des Symbols, die sich offensichtlich von den Brokern unterscheiden, wie auf dem beigefügten Bild zu sehen ist. Ich war jedoch nicht in der Lage, programmatisch auf diese Eigenschaft zuzugreifen. Können Sie mir einen Hinweis geben, wie ich die Provision des Symbols abrufen kann?
Nebenbei bemerkt erscheint diese Meldung oft im Log, wenn ich mit PositionFilter arbeite, besonders wenn der EA das erste Mal geladen oder neu kompiliert wird: "Unresolved int value as enum: 8 for MonitorInterface<ENUM_POSITION_PROPERTY_INTEGER,ENUM_POSITION_PROPERTY_DOUBLE,ENUM_POSITION_PROPERTY_STRING>". Es funktioniert immer noch gut und hält nichts auf.
@StanislavKorotky Vielen Dank für die kontinuierliche Aktualisierung, bitte gibt es etwas, das ich gekämpft habe, um herauszufinden. Auf dem MT5 "Market Watch" kann ich mit der rechten Maustaste auf ein beliebiges "Symbol" klicken und alle zugehörigen Eigenschaften anzeigen, genauso wie ich es programmatisch tun würde, indem ich auf "Specification" klicke.
Eine dieser Eigenschaften ist die "Commissions" des Symbols, die sich offensichtlich von den Brokern unterscheidet, wie auf dem beigefügten Bild zu sehen ist. Ich war jedoch nicht in der Lage, programmatisch auf diese Eigenschaft zuzugreifen. Können Sie mir einen Hinweis geben, wie ich die Provision des Symbols abrufen kann?
Leider sind nicht alle Eigenschaften der Entitäten des Terminals über MQL5 zugänglich.
Nebenbei bemerkt erscheint diese Meldung oft im Log, wenn ich mit PositionFilter arbeite, besonders wenn der EA das erste Mal geladen oder neu kompiliert wird "Unresolved int value as enum: 8 for MonitorInterface<ENUM_POSITION_PROPERTY_INTEGER,ENUM_POSITION_PROPERTY_DOUBLE,ENUM_POSITION_PROPERTY_STRING>". Es funktioniert immer noch einwandfrei und hält nichts an.
Dies ist nur eine Warnung, die durch die Tatsache verursacht wird, dass die entsprechende eingebaute Aufzählung von MQL5 eine Lücke in den Konstanten hat, die normalerweise aufeinanderfolgend zugewiesen werden. Diese Lücke entsteht, weil sich MQL5 ständig ändert und einige Konstanten veraltet sein können und dann eliminiert werden. Sie können den Quellcode bearbeiten, um solche Warnungen zu vermeiden.
Ich füge eine aktualisierte Version der JSON-Bibliothek bei - toyjson3.mqh - ein Ersatz für toyjson2.mqh und toyjson.mqh aus dem Buch.
Diese Version ist für die Verarbeitung großer json-Dateien optimiert. Der Einfachheit halber verwenden die vorherigen Versionen die Funktion StringSplit für die Text-Tokenisierung während des Parsens, und dieser Aufruf kann intern Gigabytes an freiem Speicher durch Fragmentierung und Antizipation des weiteren Datenflusses anfordern. Er wird nach dem Parsen freigegeben, aber der MQL5-Speichermanager kann ihn für eine Weile reserviert halten, weil er den Speicher zeitversetzt freigibt.
Jetzt wird während des Parsens ein paar Mal weniger Speicher benötigt.
Ich füge einige Bugfixes und Verbesserungen in den Websockets-Klassen bei.
Das ist genau das, was ich brauchte.
Ich danke Ihnen vielmals.
Du fühlst dich wie dieser Typ für mich.
https://clip.cafe/top-gun-maverick-2022/good-afternoon-ladies-gentlemen-s2/