Typische Fehler und wie man damit umgeht, wenn man mit dem Handelsumfeld zu tun hat - Seite 9
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
Guten Tag!
Ich habe eine ähnliche Frage an alle und insbesondere an fxsaber.
Es scheint eine primitive Frage zu sein, aber ich kann keine Antwort darauf finden.
Hier https://www.mql5.com/ru/forum/6343/page939 wurde mir gesagt: "Versuchen Sie, danach zu suchen. fxsaber arbeitet schon seit einer Weile an diesem Problem. Was dabei herausgekommen ist, weiß ich nicht, es interessiert mich nicht." Deshalb habe ich beschlossen, Sie zu fragen.
Die Frage ist folgende. Ich habe eine Position eröffnet und möchte den Inhalt von MqlTradeResult drucken:
retcode, order und volume werden gedruckt, aber deal und price sind immer Nullen.
Bitte teilen Sie mir mit, was ich falsch mache und wie ich Zugriff auf den Inhalt der Ergebnisstruktur erhalte (oder ihn zumindest zuerst ausdrucken kann).
Wie wäre es damit?
Ich eröffne eine Position und möchte den Inhalt von MqlTradeResult wie folgt drucken:
retcode, Auftrag und Volumen werden gedruckt, aber Deal und Preis sind immer Nullen.
Bitte teilen Sie mir mit, was ich falsch mache und wie ich Zugriff auf den Inhalt der Ergebnisstruktur erhalte (oder ihn zumindest zuerst ausdrucken kann).
Im Ergebnis werden Nullen geschrieben.
Wie wäre es damit?
Nullen und sind im Ergebnis vorgeschrieben.
Ich sehe einen offenen Auftrag, erhalte result.retcode 10009 und result.price = 0 ?
Können Sie bitte erklären, was ein Ergebnis bedeutet, wenn es kein Ergebnis enthält?
Erläutern Sie bitte, welchen Sinn das Ergebnis hat, wenn es das Ergebnis nicht enthält?
Dies ist eine Funktion von MT5, bei der das Ergebnis nur ein Auftrag (Ticket und kein Preis), aber kein Handel ist. Sie haben mehrere Möglichkeiten
Dies ist eine Funktion von MT5, bei der das Ergebnis nur ein Auftrag (Ticket und kein Preis), aber kein Handel ist. Sie haben mehrere Möglichkeiten
In MQL4 gab es keine Ergebnisstruktur, und wir erhielten ein Ticket und wählten den entsprechenden Auftrag und forderten die erforderlichen Daten an. MQL5 hat eine Ergebnisstruktur, die viele notwendige Daten enthält, und es wäre unlogisch, sie nicht zu verwenden.
1. Bevor ich eine Frage im Forum stelle, habe ich versucht, selbst herauszufinden, wie alles funktioniert" und was ich in der Ergebnisstruktur sehe:
gibt result.deal aus, d.h. es wird davon ausgegangen, dass es sinnvoll ist, und es wird nicht immer durch Null in der Ergebnisstruktur dargestellt. Es könnten auch andere Beispiele angeführt werden, die zeigen, dass sowohl result.price als auch result.deal von MqlTradeResul erhalten werden können, was ich versucht habe zu tun.present double price; // Vom Makler bestätigter Verkaufspreis.
Im Beispielcode des Entwicklers
Nirgendwo habe ich die Information gesehen, dass "Dies ist eine Funktion von MT5, wenn das Ergebnis nur ein Auftrag (Ticket und kein Preis), aber kein Geschäft ist". Würden Sie mir bitte sagen, aufgrund welcher Informationen Sie zu diesem Schluss gekommen sind?
2. Wenn Sie "bereits fertige Entwicklungen auf höherer Ebene (niedrige Ebene ist ausgeblendet)" kennen, die es Ihnen ermöglichen, die Parameter einer Position unmittelbar nach ihrer Eröffnung (Code 10009 erscheint) ohne vorherige Auswahl per Ticket zu erhalten, geben Sie mir bitte ein Beispiel oder einen Link dazu.
Ich danke Ihnen.
In MQL4 gab es keine Ergebnisstruktur, und wir mussten den entsprechenden Auftrag auswählen und die erforderlichen Daten anfordern. MQL5 hat die Ergebnisstruktur mit vielen notwendigen Daten und es wäre unlogisch, sie nicht zu verwenden.
1. Bevor ich eine Frage im Forum gestellt habe, habe ich versucht, selbst herauszufinden, wie alles funktioniert", und was ich gesehen habe, ist das Ergebnis der Struktur:
gibt result.deal aus, d.h. es wird davon ausgegangen, dass es sinnvoll ist, und es wird nicht immer durch Null in der Ergebnisstruktur dargestellt. Es gibt andere Beispiele, die zeigen, dass sowohl result.price als auch result.deal von MqlTradeResul bezogen werden können, was ich auch versucht habe.Es gibt einen doppelten Preis; // Der vom Makler bestätigte Verkaufspreis.
Im Beispielcode des Entwicklers
Nirgendwo habe ich die Information gesehen, dass "dies eine Funktion von MT5 ist, bei der das Ergebnis nur ein Auftrag (Ticket und kein Preis), aber kein Geschäft ist". Würden Sie mir bitte sagen, aufgrund welcher Informationen Sie zu diesem Schluss gekommen sind?
2. Wenn Sie "bereits vorbereitete Entwicklungen auf höherer Ebene (niedrige Ebene ist ausgeblendet)" kennen, die es ermöglichen, die Parameter einer Position unmittelbar nach ihrer Eröffnung (Code 10009 erscheint) ohne vorherige Auswahl per Ticket abzurufen, nennen Sie mir bitte ein Beispiel oder geben Sie mir einen Link dazu.
Ein Handelsauftrag führt entweder zu einer Ablehnung oder zu einem Marktauftrag. Es handelt sich weder um einen Handel noch um eine Position, die durch einen Handel entsteht.
Ein Handelsauftrag führt entweder zu einer Ablehnung oder zu einem Marktauftrag. Es handelt sich weder um einen Handel noch um eine Position, die durch einen Handel entsteht.
- Nach welchem der von Ihnen aufgeführten Schritte erscheint Ihrer Meinung nach die Ergebnisstruktur der Handelsanfrage (MqlTradeResult)?
- Gemäß der MQL5-Beschreibung:
"Struktur des Ergebnisses der Handelsanfrage (MqlTradeResult)
Als Antwort auf eine Handelsanfrage gibt der Handelsserver Daten zurück, die das Ergebnis der Verarbeitung der Handelsanfrage in Form einer speziellen vordefinierten Struktur MqlTradeResult" enthalten. und "10009 TRADE_RETCODE_DONE Auftrag ausgeführt".
D.h. der Rückgabecode 10009 des Handelsservers bedeutet, dass die OrderSend-Anforderung erfolgreich ausgeführt wurde, d.h. wenn ich Daten von MqlTradeResult anfordere, nachdem ich den Code 10009 erhalten habe, wie kann ich erklären, dass result.price = 0 ist?
Ich danke Ihnen:
- Nach welchem der von Ihnen aufgeführten Schritte erscheint die Struktur des Ergebnisses der Handelsanfrage (MqlTradeResult)?
- Gemäß der MQL5-Beschreibung:
"Struktur des Ergebnisses der Handelsanfrage (MqlTradeResult)
Als Antwort auf eine Handelsanfrage gibt der Handelsserver Daten zurück, die das Ergebnis der Verarbeitung der Handelsanfrage in Form einer speziellen vordefinierten Struktur MqlTradeResult" enthalten. und "10009 TRADE_RETCODE_DONE Auftrag ausgeführt".
Daher bedeutet der Rückgabecode von Trade Server 10009, dass die OrderSend-Anforderung erfolgreich ausgeführt wurde, d.h. wenn ich Daten von MqlTradeResult anfordere, nachdem ich den Code 10009 erhalten habe, wie kann ich dann erklären, dass result.price = 0 ist?
10009 TRADE_RETCODE_DONE - Sie haben es selbst beschrieben - der Auftrag wird ausgeführt. Dies bedeutet lediglich, dass der Auftrag erfolgreich in die Warteschlange des Servers zur Ausführung gestellt wurde.
Wenn dieser Auftrag ausgeführt wird (er kann ja vom Server abgelehnt werden), kommt ein Geschäft zustande - das ist das Ergebnis des Geschäfts mit dem Eröffnungskurs.
Lesen Sie über
OnTradeTransaction
Sie wird in Expert Advisors aufgerufen, wenn ein TradeTransaction-Ereignis eintritt. Die Funktion ist für die Verarbeitung der Ergebnisse der Ausführung von Handelsaufträgen vorgesehen.
voidOnTradeTransaction( )
const MqlTradeTransaction&trans,// Struktur einer Handelstransaktion
const MqlTradeRequest&request,// Struktur der Anfrage
const MqlTradeResult& result// Struktur der Antwort
);
Nirgendwo habe ich die Information gesehen, dass dies eine Funktion von MT5 ist, bei der das Ergebnis nur ein Auftrag (Ticket und kein Preis), aber kein Handel ist. Würden Sie mir bitte sagen, aufgrund welcher Informationen Sie zu diesem Schluss gekommen sind?
Eigene Erfahrung.
2. Wenn Sie "bereits fertige Entwicklungen auf höherer Ebene (niedrige Ebene ist ausgeblendet)" kennen, die es ermöglichen, die Parameter einer Position unmittelbar nach ihrer Eröffnung (Code 10009 erscheint) ohne vorherige Auswahl per Ticket abzurufen, nennen Sie bitte ein Beispiel oder geben Sie einen Link dazu an.
Es gibt noch eine weitere Option, aber die ist "fortgeschritten".