Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 799
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
Ich danke Ihnen! Ich habe gesucht und konnte es nicht finden...
Dann die nächste Frage, sagen wir, der Schritt ist 25, dann, wie zu arrangieren Rundung auf eine Zahl teilbar durch 25, vielleicht gibt es eine Funktion?
https://www.mql5.com/ru/docs/standardlibrary/tradeclasses/csymbolinfo/csymbolinfonormalizeprice
https://www.mql5.com/ru/docs/standardlibrary/tradeclasses/csymbolinfo/csymbolinfonormalizeprice
Danke, aber ich verwende nicht die Standard-Handelsbibliothek.
Kein Code, keine Kommentare.
Ja, das ist seltsam. Ich habe die Datei angehängt, sie aber nicht überprüft. Mein Fehler. Ich füge nun sowohl den Code als auch den Codeauszug bei, bei dem der Tester eine Zeile mit [Ungültige Haltestellen] ausgibt. Ich möchte verstehen, wie die MqlTradeRequest-Struktur bei der Änderung von Positionen funktioniert. In meinem Fall ist es der Wechsel der Haltestelle auf SAR. Ich kann die Meldung [Ungültige Haltestellen] vom Prüfgerät nicht loswerden. RTS-Verbindungswerkzeug.
Ja, das ist seltsam. Ich habe die Datei angehängt, sie aber nicht überprüft. Mein Fehler. Ich füge nun sowohl den Code als auch einen Auszug aus dem Code bei, in dem der Tester eine Zeile mit [Invalid stops] ausgibt. Ich möchte verstehen, wie die MqlTradeRequest-Struktur bei der Änderung von Positionen funktioniert. In meinem Fall ist es der Wechsel der Haltestelle auf SAR. Ich kann die Meldung [Ungültige Haltestellen] vom Prüfgerät nicht loswerden. RTS-Verbindungswerkzeug.
Dies ist nicht das Codefragment, in dem wir auf den ersten Blick nach einem Fehler suchen sollten. Nur die dreifache Auswahl ein und derselben Position stört mich. Sie ist überflüssig.
Sie haben einen Fehler in den falschen Haltestellen, Sie sollten Ihre Suche wahrscheinlich an der Stelle beginnen, an der diese Haltestellen berechnet werden.
Ja, das ist seltsam. Ich habe die Datei angehängt, sie aber nicht überprüft. Mein Fehler. Ich füge nun sowohl den Code als auch einen Auszug aus dem Code bei, in dem der Tester eine Zeile mit [Invalid stops] ausgibt. Ich möchte verstehen, wie die MqlTradeRequest-Struktur bei der Änderung von Positionen funktioniert. In meinem Fall ist es der Wechsel der Haltestelle auf SAR. Ich kann die Meldung [Ungültige Haltestellen] vom Prüfgerät nicht loswerden. RTS Splice.
Für ein umfassendes Verständnis ist es notwendig, die Art der Aufrechnung oder des Netting zu spezifizieren
Wenn die Kontoart wasge
Sie haben eine Position für das Symbol gewählt, aber vielleicht ist es nicht genau das, was Sie sehen wollten...
Aber jetzt haben wir genau die Position gewählt, die wir wollten.
Versuchen Sie dann erneut, die richtige Position zu wählen
Auch hier ist die Wahrscheinlichkeit, dass Sie die falsche Position gewählt haben, sehr hoch
Um zu prüfen, wie sich die Funktion OrderSend() in diesem Fall verhält, sollten Sie dies tun, aber es ist besser, es so zu tun, wie es sein sollte, und wenn der Fehler nicht verschwindet, drucken Sie nicht nur den Fehlercode, sondern auch das Positionsticket, den Positionspreis, den Preis des neuen Stopps und Take. Dies ist das Minimum.
Für ein umfassendes Verständnis müssen Sie angeben, welche Art von Kontoabgrenzung oder Netting
Ich danke Ihnen für Ihre Kommentare. Die Art des Kontos ist das Netting. RTS Splice. Ist das der schwierige Teil? Eine Position für ein Symbol. Sie können jeden Weg wählen, den Sie wollen, Sie werden trotzdem zu dieser Position gelangen. Es handelt sich doch nicht um schwebende Aufträge, oder? Deshalb verstehe ich auch nicht mehr - was ist los? Ich habe alle Varianten ausprobiert.
Vielen Dank für die Kommentare. Kontoart Netting. RTS Spleißinstrument. Ist das der schwierige Teil? Eine Position für ein Symbol. Sie können jeden Weg wählen, den Sie wollen, Sie werden trotzdem zu dieser Position gelangen. Es handelt sich doch nicht um schwebende Aufträge, oder? Deshalb verstehe ich auch nicht mehr - was ist los? Ich habe alle Varianten ausprobiert.
Forum für Handel, automatisierte Handelssysteme und Strategietests
Fragen von Anfängern MQL5 MT5 MetaTrader 5
Alexey Viktorov, 2017.11.22 09:29
Um zu überprüfen, wie sich die OrderSend()-Funktion in diesem Fall verhält, müssen Sie dies tun und überprüfen, aber es ist besser, so zu tun, wie es sein sollte, und wenn der Fehler nicht weg ist , drucken Sie nicht nur den Fehlercode, sondern auch das Positionsticket, den Positionspreis, den Preis für den neuen Stop und Take. Dies ist das Minimum.
Deshalb verstehe ich noch weniger - WAS IST FALSCH??? Ich habe alle Optionen ausprobiert.
Fügen Sie diese Zeile an der Stelle ein, an der der Fehler auftritt
Print(ToString(request) + ToString(result));
Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien
Eigenheiten der mql5-Sprache, Feinheiten und Tricks
fxsaber, 2017.02.25 16:27
Übersetzen von MqlTrade-Strukturen in einen String#define TOSTRING2(A) #A + " = " + EnumToString(A) + " (" + (string)(A) + ")\n"
string ToString( const MqlTradeTransaction &Trans )
{
return(TOSTRING(Trans.deal) + TOSTRING(Trans.order) + TOSTRING(Trans.symbol) +
TOSTRING2(Trans.type) + TOSTRING2(Trans.order_type) + TOSTRING2(Trans.order_state) +
TOSTRING2(Trans.deal_type) + TOSTRING2(Trans.time_type) +
TOSTRING(Trans.time_expiration) + TOSTRING(Trans.price) + TOSTRING(Trans.price_trigger) +
TOSTRING(Trans.price_sl) + TOSTRING(Trans.price_tp) + TOSTRING(Trans.volume) +
TOSTRING(Trans.position) + TOSTRING(Trans.position_by));
}
string ToString( const MqlTradeRequest &Request )
{
return(TOSTRING2(Request.action) + TOSTRING(Request.magic) + TOSTRING(Request.order) +
TOSTRING(Request.symbol) + TOSTRING(Request.volume) + TOSTRING(Request.price) +
TOSTRING(Request.stoplimit) + TOSTRING(Request.sl) + TOSTRING(Request.tp) +
TOSTRING(Request.deviation) + TOSTRING2(Request.type) + TOSTRING2(Request.type_filling) +
TOSTRING2(Request.type_time) + TOSTRING(Request.expiration) + TOSTRING(Request.comment) +
TOSTRING(Request.position) + TOSTRING(Request.position_by));
}
string ToString( const MqlTradeResult &Result )
{
return(TOSTRING(Result.retcode) + TOSTRING(Result.deal) + TOSTRING(Result.order) +
TOSTRING(Result.volume) + TOSTRING(Result.price) + TOSTRING(Result.bid) +
TOSTRING(Result.ask) + TOSTRING(Result.comment) + TOSTRING(Result.request_id) +
TOSTRING(Result.retcode_external));
}
#undef TOSTRING
#undef TOSTRING2
Fügen Sie diese Zeile an der Stelle ein, an der der Fehler auftritt
Eingefügt. Hier ist das Ergebnis des Testers:
2017.11.22 18:22:51.127 2016.11.09 12:00:00 exchange buy 1.00 RTS Splice at 98080 sl: 94130 (98070 / 98080 / 98070)
2017.11.22 18:22:51.127 2016.11.09 12:00:00 deal #4 buy 1.00 RTS Splice at 98080 done (based on order #4)
2017.11.22 18:22:51.127 2016.11.09 12:00:00 Geschäft durchgeführt [#4 buy 1.00 RTS Splice at 98080]
2017.11.22 18:22:51.127 2016.11.09 12:00:00 Auftrag ausgeführt buy 1.00 at 98080 [#4 buy 1.00 RTS Splice at 98080]
2017.11.22 18:22:53.561 2016.11.09 14:05:00:00 failed modify #4 buy 1.00 RTS Splice sl: 94130, tp: 0 -> sl: 94316, tp: 0 [Invalid stops]
2017.11.22 18:22:53.576 2016.11.09 14:05:00 Request.action = TRADE_ACTION_SLTP (6)
2017.11.22 18:22:53.576 2016.11.09 14:05:00 Anfrage.magic = 0
2017.11.22 18:22:53.576 2016.11.09 14:05:00 Anfrage.Auftrag = 0
2017.11.22 18:22:53.576 2016.11.09 14:05:00 Anfrage.symbol = RTS Spleiß
2017.11.22 18:22:53.576 2016.11.09 14:05:00 Anfrage.Volumen = 0.0
2017.11.22 18:22:53.576 2016.11.09 14:05:00 Anfrage.Preis = 0.0
2017.11.22 18:22:53.576 2016.11.09 14:05:00 Request.stoplimit = 0.0
2017.11.22 18:22:53.576 2016.11.09 14:05:00 Anfrage.sl = 94316.0
2017.11.22 18:22:53.576 2016.11.09 14:05:00 Anfrage.tp = 0.0
2017.11.22 18:22:53.576 2016.11.09 14:05:00 Anfrage.Abweichung = 0
2017.11.22 18:22:53.576 2016.11.09 14:05:00 Request.type = ORDER_TYPE_BUY (0)
2017.11.22 18:22:53.576 2016.11.09 14:05:00 Request.type_filling = ORDER_FILLING_FOK (0)
2017.11.22 18:22:53.576 2016.11.09 14:05:00 Request.type_time = ORDER_TIME_GTC (0)
2017.11.22 18:22:53.576 2016.11.09 14:05:00 Request.expiration = 1970.01.01 00:00:00
2017.11.22 18:22:53.576 2016.11.09 14:05:00 Anfrage.Kommentar =
2017.11.22 18:22:53.576 2016.11.09 14:05:00 Anfrage.Position = 4
2017.11.22 18:22:53.576 2016.11.09 14:05:00 Anfrage.position_by = 0
2017.11.22 18:22:53.576 2016.11.09 14:05:00 Ergebnis.retcode = 10016
2017.11.22 18:22:53.576 2016.11.09 14:05:00 Ergebnis.deal = 0
2017.11.22 18:22:53.576 2016.11.09 14:05:00 Ergebnis.Auftrag = 0
2017.11.22 18:22:53.576 2016.11.09 14:05:00 Ergebnis.Volumen = 0.0
2017.11.22 18:22:53.576 2016.11.09 14:05:00 Ergebnis.Preis = 0.0
2017.11.22 18:22:53.576 2016.11.09 14:05:00 Ergebnis.bid = 0.0
2017.11.22 18:22:53.576 2016.11.09 14:05:00 Ergebnis.fragen = 0.0
2017.11.22 18:22:53.576 2016.11.09 14:05:00 Ergebnis.Kommentar = Ungültige Haltestellen
2017.11.22 18:22:53.576 2016.11.09 14:05:00 Ergebnis.request_id = 0
2017.11.22 18:22:53.576 2016.11.09 14:05:00 Ergebnis.retcode_external = 0
2017.11.22 18:22:53.576 2016.11.09 14:05:00 Alert: Positionsänderungsfehler durch TP und SL Fehlercode: 4756
Legen Sie es ein. Hier ist das Ergebnis des Testers:
Server- und Testermodus?