Fehler, Irrtümer, Fragen - Seite 555

 
sergey1294:
Bei Alpari können Sie Stops nicht sofort während der Marktausführung platzieren, Sie müssen erst eine Position eröffnen und diese dann ändern
Bitte klären Sie: Ist es unmöglich, eine Order mit Stopps mit nur einem OrderSend-Befehl zu platzieren? Oder geht es um den Aufruf von PositionSelect vor dem Setzen eines Stopps für einen bestehenden Auftrag?
 
Snaf:

Метатестер пилит диск HDD

Version 527.

Wenn man sich den Prozessmonitor ansieht, geht es mit diesem Unsinn immer weiter.

Keine Netzwerkaktivität, keine Verbindung zur Cloud. Terminal und Metatester werden nicht ausgeführt. Es werden keine Dateien geändert.

Der obige Screenshot enthält keine Informationen über Dateinamen.

Bitte fügen Sie ein ausführlicheres Protokoll in Textform bei.

 
idispatch:

In MQL4 konnten Sie sofort einen Auftrag mit Stops erstellen, aber in MQL5 ist das nicht möglich - Sie müssen Stops nach der Auftragserstellung setzen.

Bin ich langsam (bitte geben Sie mir ein Codebeispiel) oder ist das meine Absicht?

Sie können auch einen Auftrag mit einem Stopp und einem Gewinn erstellen.

Sie haben in Ihrem Antrag

reqest.sl=SL;

reqest.tp=TP;

Hier liegt ein Fehler vor. Die SL- und TP-Levels sollten in einem Abstand zu den Marktpreisen festgelegt werden, so dass diese Linien etwa so aussehen sollten

für eine Kaufposition:

request.sl = SymbolInfoDouble(Symbol(),SYMBOL_BID) - SL * SymbolInfoDouble(Symbol(),SYMBOL_POINT);

request.tp = SymbolInfoDouble(Symbol(),SYMBOL_ASK) + TP * SymbolInfoDouble(Symbol(),SYMBOL_POINT);

Umgekehrt für eine Verkaufsposition

request.sl = SymbolInfoDouble(Symbol(),SYMBOL_ASK) + SL * SymbolInfoDouble(Symbol(),SYMBOL_POINT);

request.tp = SymbolInfoDouble(Symbol(),SYMBOL_BID) - TP * SymbolInfoDouble(Symbol(),SYMBOL_POINT);

Ich hoffe, ich täusche mich nicht...

 
idispatch:
Bitte klären Sie: Ist es in Alpari unmöglich, eine Order mit Stopps mit einem einzigen OrderSend-Befehl zu platzieren? Oder meinen wir, dass wir vor dem Setzen von Stops für eine bestehende Order PositionSelect aufrufen müssen?

Sie können, warum nicht?

In welchem Modus geben Sie die Bestellung auf?

 
ShurikAn:

Sie können dies mit einem Stopp und einem Gewinn tun.

Sie haben in Ihrer Anfrage

reqest.sl=SL;

reqest.tp=TP;

Hier liegt ein Fehler vor. Die SL- und TP-Levels sollten in einem gewissen Abstand zu den Marktpreisen festgelegt werden, so dass diese Linien wie folgt aussehen sollten:

Natürlich sind SL und TP wie Ihre definiert. Außerdem habe ich oben geschrieben, dass ich, wenn ich nur

m_request.action = TRADE_ACTION_SLTP;
OrderSend(m_request, m_result);

dann werden die Stops erfolgreich an den angegebenen SL und TP gesetzt, was nicht geschieht, wenn sie nicht korrekt definiert sind.

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Типы торговых операций
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Типы торговых операций
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Типы торговых операций - Документация по MQL5
 
Renat:

Sie können, warum nicht?

In welchem Modus geben Sie die Bestellung auf?

MqlTradeRequest m_request;
MqlTradeResult m_result;

m_request.action = TRADE_ACTION_DEAL;
m_anforderung.symbol = Symbol();
m_request.type = ORDER_TYPE_BUY;

m_request.price = Price; // im Voraus berechnet und wahr :)

m_request.sl = SL; // bereits berechnet und korrekt :)
m_request.tp = TP; // im Voraus berechnet und wahr :)

m_request.volume = Vol;

m_request.type_filling = ORDER_FILLING_FOK;
m_anforderung.abweichung = 10;
m_request.type_time = 0;
m_request.expiration = 0;
m_request.magic = 0;
m_request.comment = "";

OrderSend(m_request, m_result);
 
idispatch:
Bitte klären Sie: In Alpari können Sie keine Order mit Stopps mit einem einzigen OrderSend-Befehl platzieren? Oder geht es um den Aufruf von PositionSelect vor dem Setzen von Stops für eine bestehende Order?

Genau richtig. Bei Anschlägen kann man das nur im Sofortmodus tun.

Ausführungsarten

Das Kundenterminal verfügt über vier Modi zur Auftragsausführung:

  • Sofortige Vollstreckung
    In diesem Modus wird die Ausführung eines Marktauftrags zu dem dem Makler angebotenen Kurs durchgeführt. Beim Senden einer Ausführungsanfrage ersetzt das Terminal den Auftrag automatisch durch den aktuellen Kurs. Wenn der Makler die Preise akzeptiert, wird der Auftrag ausgeführt. Akzeptiert der Broker den angefragten Preis nicht, kommt es zum so genannten "Requote" - der Broker gibt die Preise zurück, zu denen der Auftrag ausgeführt werden kann.
  • Ausführung des Antrags
    In diesem Modus wird der Marktauftrag zu dem zuvor vom Makler erhaltenen Preis ausgeführt. Vor der Übermittlung eines Börsenauftrags werden die Ausführungskurse beim Makler angefordert. Nach Erhalt kann die Ausführung des Auftrags zu diesem Preis entweder bestätigt oder abgelehnt werden.
  • Marktausführung
    Bei dieser Art der Ausführung von Marktaufträgen wird die Entscheidung über den Ausführungspreis vom Makler ohne zusätzliche Zustimmung des Händlers getroffen. Die Übermittlung eines Marktauftrags in diesem Modus setzt eine frühzeitige Vereinbarung über den Preis voraus, zu dem der Auftrag ausgeführt werden soll.

Wenn Sie auf die Schaltfläche "Verkaufen nach Markt" oder "Kaufen nach Markt" klicken, wird ein Auftrag für den Makler erstellt, um ein Verkaufs- bzw. Kaufgeschäft zu dem vom Makler festgelegten Preis auszuführen.

  • Im Ausführungsmodus "Nach Markt" können Stop-Loss- und Take-Profit-Niveaus nur für eine bereits geöffnete Position festgelegt werden, indem diese geändert wird.
  • Der Kommentar zu einem Auftrag kann von einem Broker oder einem Server geändert werden. Wenn Sie beispielsweise bei einem Stop-Loss oder Take-Profit schließen, werden die entsprechenden Informationen angezeigt.
  • Wenn das Feld Ausführung inaktiv ist, bedeutet dies, dass die Möglichkeit, es zu ändern, auf dem Server blockiert ist.
  • Durch einen Doppelklick auf das Positionsöffnungsfenster wird das Häkchen geöffnet/ausgeblendet.
  • Ausführung des Austauschs
    In diesem Modus werden die im Kundenterminal getätigten Handelsgeschäfte an ein externes Handelssystem (Börse) übertragen. Handelsgeschäfte werden zu den Preisen der aktuellen Marktgebote ausgeführt.

Der Ausführungsmodus für jedes Symbol wird von Ihrem Maklerunternehmen ausgewählt.


Alles ist in der Hilfe des Terminals beschrieben. Aber niemand liest sie.

Um herauszufinden, welche Ausführungsart Sie benötigen, müssen Sie die Eigenschaft mit der Funktion SymbolInfoInteger() mit der Kennung SYMBOL_TRADE_EXEMODE abfragen

SYMBOL_TRADE_EXEMODE

Modus Handel

ENUM_SYMBOL_TRADE_EXECUTION




ENUM_SYMBOL_TRADE_EXECUTION

Kennung

Beschreibung

SYMBOL_TRADE_AUSFUEHRUNG_ANFORDERUNG

Handel auf Anfrage

SYMBOL_TRADE_AUSFUEHRUNG_INSTANT

Handel zu Streaming-Preisen

SYMBOL_HANDEL_AUSFUEHRUNG_MARKT

Ausführung_Ausführung_Markt

SYMBOL_HANDEL_AUSFUEHRUNG_BOERSE

Ausführung des Austauschs


 

Vielen Dank, jetzt verstehe ich.

Und ich habe die Hilfe gelesen, was ich nicht gefunden habe, war mein Versehen + fehlende Ausarbeitung von Querverweisen oder so etwas in der Hilfe:)

 

Bei der Prüfung des Surgeon's Adviser https://www.mql5.com/ru/code/611

mit einer geänderten

[Zitat].

Um den Test zu beginnen, ersetzen Sie in Zeile 84:
double Limit=SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_LIMIT);
durch
double Limit= 5;

[/quote]

Wenn bei einem normalen Demokonto die Registerkarte "Handel" im Bereich "Tools" aktiv ist, ändert sich die Terminalansicht am Ende des Tests.

Dateien:
Error01.JPG  382 kb
Error02.JPG  346 kb
 

Bei einem Demokonto ist das ein Chaos:

Es wird immer wieder an den Anfang zurückgesetzt.

Und bei XAUUSD drücken Sie F9 und dann

obwohl Sie in der "Marktübersicht" nicht auf das Auftragsfenster doppelklicken können.

P.S. Ich weiß, dass Sie den XAUUSD nicht handeln können.)