Verwenden SieStopLimit im realen Handel?
Es ist klar, dassStopLimit im Testgerätunzureichend funktioniert.
Ist es sinnvoll, sie im realen Handel einzusetzen? Was sind die Vor- und Nachteile?
Was ist mit dem Prüfgerät los?
Offenbar benutzt sie niemand,
der Auftrag wird zu nicht existierenden Preisen eröffnet:
Ein einfaches Beispiel zur Überprüfung:
//+------------------------------------------------------------------+ //| StopLimit_Test.mq5 | //+------------------------------------------------------------------+ #include <Trade\Trade.mqh> CTrade trade; input int Deviation = 100; //+------------------------------------------------------------------+ void OnTick() { MqlTick tick; SymbolInfoTick(_Symbol,tick); trade.SetTypeFilling(ORDER_FILLING_RETURN); double ticksise=SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_SIZE); if(OrdersTotal()==0) trade.OrderOpen( _Symbol, // символ ORDER_TYPE_BUY_STOP_LIMIT, // тип ордера 1.0, // объем ордера tick.ask+Deviation*ticksise, // цена исполнения tick.ask+10*ticksise, // цена стоплимита 0, // цена stop loss 0 // цена take profit ); } //+------------------------------------------------------------------+
Offenbar benutzt sie niemand,
der Auftrag wird zu nicht existierenden Preisen eröffnet:
Ein einfaches Beispiel zur Überprüfung:
Ein BuyStopLimit-Auftrag funktioniert folgendermaßen:
- Eine BuyStop-Order wird über dem Preis platziert (Preiswert in der Struktur der Handelsanfrage = Preis + Abstand für die Stop-Order)
- Wenn eine BuyStop-Order ausgelöst wird, wird eine BuyLimit-Order unterhalb des Preises platziert
(zum Stoplimit-Preis in der Struktur des Handelsauftrags, der korrekt berechnet werden sollte: Stoplimit = Preis - Stop-Order-Setzabstand) - Wenn eine BuyLimit-Order ausgelöst wird, erfolgt ein Markteintritt zum Preis der BuyLimit-Order
Beispiel:
Ein BuyStopLimit-Auftrag funktioniert folgendermaßen:
- Wir setzen eine Order BuyStop über dem Preis (Wert des Preises in der Struktur der Handelsanforderung = Preis + Abstand der Stop-Order)
- Wenn BuyStop ausgelöst wird, wird ein BuyLimit-Auftrag unter dem Preis platziert .
(zum Stoplimit-Preis in der Struktur des Handelsauftrags, der korrekt berechnet werden sollte: Stoplimit = Preis - Stop-Order-Setzabstand) - Wenn eine BuyLimit-Order ausgelöst wird, erfolgt ein Markteintritt zum Preis der BuyLimit-Order
Beispiel:
WennBuyLimit unter dem Preis liegt, funktioniert es im Testgerät einwandfrei.
Wenndas BuyLimit höher ist als der Kurs, sollte der Kurs zum Ask-Kurs eröffnet werden. An der Börse, in der Realität, funktioniert das so.
Es istnicht sinnvoll, das StopLimit zu verwenden, um dasBuyLimit unter den Preis zu setzen.
WennBuyLimit unter dem Preis liegt, funktioniert es im Testgerät einwandfrei.
Wenndas BuyLimit über dem Preis liegt, sollte er zum Ask-Preis eröffnen. An der Börse, in der Realität, funktioniert das so.
Die Verwendung eines StopLimit, um das BuyLimit unter den Preis zu setzen , ist nicht sinnvoll.
Feld | Beschreibung |
Aktion | Art des Handelsgeschäfts. Wert kann einer der Werte der Aufzählung ENUM_TRADE_REQUEST_ACTIONSsein |
Magie | Kennung des Expertenberaters. Ermöglicht die Organisation der analytischen Bearbeitung von Handelsaufträgen. Jeder Expert Advisor kann seine eigene eindeutige Kennung anzeigen, wenn er eine Handelsanfrage sendet. |
Bestellung | Ticket bestellen. Erforderlich für die Änderung anhängiger Aufträge |
Symbol | Name des Symbols, für das der Auftrag erteilt wird. Nicht erforderlich für die Änderung von Aufträgen und die Schließung von Positionen |
Band | Angefordertes Volumen eines Geschäfts in Losen. Der tatsächliche Wert des Volumens bei der Eröffnung einer Position hängt von der Art des auszuführenden Auftrags ab. |
Preis | Dies ist der Preis, zu dem der Auftrag ausgeführt werden soll. Der Preis ist nicht erforderlichfür Marktaufträge mit der Art "Market Execution" ( SYMBOL_TRADE_EXECUTION_MARKET ) mit der ArtTRADE_ACTION_DEAL |
Stop-Limit | Preis, zu dem die schwebende Limit-Order platziert wird , sobald der Preis den Preiswert erreicht (diese Bedingung ist obligatorisch). Bis zu diesem Zeitpunkt wird der schwebende Auftrag nicht in das Handelssystem eingegeben. |
sl | Kurs, bei dem eine Stop-Loss-Order ausgelöst wird, wenn sich der Wertpapierkurs in eine ungünstige Richtung bewegt |
tp | Preis, bei dem der Take-Profit-Auftrag durch die Kursbewegung in der günstigen Richtung ausgelöst wird |
Abweichung | Maximal akzeptable Abweichung vom geforderten Preis, festgelegt in Punkten |
Typ | Art der Bestellung. Der Wert kann einer der Werte der Aufzählung ENUM_ORDER_TYPEsein |
Typ_Füllung | Auszuführende Auftragsart. Wert kann einer der Werte vonENUM_ORDER_TYPE_FILLING sein |
typ_zeit | Auftragsart_Auffüllzeit. Wert kann einer der Werte vonENUM_ORDER_TYPE_TIME sein |
Ablauf | Verfallszeit des schwebenden Auftrags (für ORDER_TIME_SPECIFIEDAufträge ) |
Kommentar | Kommentar zur Bestellung |
Position | Ticket zur Position. Dieses sollte ausgefüllt werden, wenn eine Position geändert und geschlossen wird, um sie eindeutig zu identifizieren. Dies entspricht in der Regel dem Ticket des Auftrags, der zur Eröffnung der Position geführt hat. |
position_by | Ein Ticket für eine Gegenposition. Wird beim Schließen einer Gegenposition verwendet - offen für dasselbe Instrument, aber in der entgegengesetzten Richtung. |
Ich hoffe, Sie wissen, was ein Limitauftrag ist. Ich hoffe, Sie haben keine Zweifel, dass es sich um einen Stoppauftrag handelt.
Und hier steht, wie eine StopLimit-Order funktioniert: Wenn der Preis das Niveau einer Stop-Order erreicht (und sie über dem Preis für Kaufen platziert wird), wird erst dann eine Limit-Order platziert (und sie wird unter dem Preis für Kaufen platziert).
WennBuyLimit unter dem Preis liegt, funktioniert es im Testgerät einwandfrei.
Wenndas BuyLimit über dem Kurs liegt, sollte er zum Ask-Kurs eröffnen.An der Börse, in der Realität, funktioniert das so.
Die Verwendung von StopLimit, um das BuyLimit unter den Preis zu setzen , macht keinen Sinn.
Verzeihung, wie kann man den BuyLimit-Auftrag über den Preis stellen?
In diesem Szenario sollte sie überhaupt nicht eingestellt werden.
Wenn Sie eine SB-Handelsklasse verwenden, gibt es eine Prüfung auf fehlerhafte Parameter, und in einer solchen Situation wird kein schwebender Auftrag erteilt, sondern ein Marktauftrag eröffnet.
Feld | Beschreibung |
Aktion | Art des Handelsgeschäfts. Wert kann einer der Aufzählungswerte vonENUM_TRADE_REQUEST_ACTIONSsein |
Magie | Kennung des Expertenberaters. Ermöglicht die Organisation der analytischen Bearbeitung von Handelsaufträgen. Jeder Expert Advisor kann seine eigene eindeutige Kennung anzeigen, wenn er eine Handelsanfrage sendet. |
Bestellung | Ticket bestellen. Erforderlich für die Änderung anhängiger Aufträge |
Symbol | Name des Symbols, für das der Auftrag erteilt wird. Nicht erforderlich für die Änderung von Aufträgen und die Schließung von Positionen |
Band | Angefordertes Volumen eines Geschäfts in Losen. Der tatsächliche Wert des Volumens bei der Eröffnung einer Position hängt von der Art des auszuführenden Auftrags ab. |
Preis | Der Preis, zu dem der Auftrag ausgeführt werden soll. Der Preis ist nicht erforderlichfür Marktaufträge der Art "Market Execution" ( SYMBOL_TRADE_EXECUTION_MARKET ) mit der ArtTRADE_ACTION_DEAL |
Stop-Limit | Preis, zu dem die schwebende Limit-Order platziert wird , sobald der Preis den Preiswert erreicht (diese Bedingung ist obligatorisch). Bis zu diesem Zeitpunkt wird der schwebende Auftrag nicht in das Handelssystem eingegeben. |
sl | Preis, bei dem eine Stop-Loss-Order ausgelöst wird, wenn sich der Wertpapierkurs in eine ungünstige Richtung bewegt |
tp | Preis, bei dem der Take-Profit-Auftrag durch die Kursbewegung in der günstigen Richtung ausgelöst wird |
Abweichung | Maximal akzeptable Abweichung vom geforderten Preis, festgelegt in Punkten |
Typ | Art der Bestellung. Der Wert kann einer der Werte der Aufzählung ENUM_ORDER_TYPEsein |
Typ_Füllung | Auszuführende Auftragsart. Wert kann einer der Werte vonENUM_ORDER_TYPE_FILLING sein |
typ_zeit | Auftragsart_Auffüllzeit. Wert kann einer der Werte vonENUM_ORDER_TYPE_TIME sein |
Ablauf | Verfallszeit des schwebenden Auftrags (für ORDER_TIME_SPECIFIEDAufträge ) |
Kommentar | Kommentar zur Bestellung |
Position | Ticket zur Position. Dieses sollte ausgefüllt werden, wenn eine Position geändert und geschlossen wird, um sie eindeutig zu identifizieren. Dies entspricht in der Regel dem Ticket des Auftrags, der zur Eröffnung der Position geführt hat. |
position_by | Ein Ticket für eine Gegenposition. Sie wird verwendet, wenn eine Position mit einer Gegenposition geschlossen werden soll, die für dasselbe Instrument, aber in entgegengesetzter Richtung, eröffnet wurde. |
Ich hoffe, Sie wissen, was ein Limitauftrag ist. Und auch ein Stoppauftrag, ich hoffe, Sie haben keine Zweifel.
Und hier steht, wie eine StopLimit-Order funktioniert: Wenn der Preis das Niveau der Stop-Order erreicht (und sie über dem Preis für Buy platziert wird), wird nur in diesem Fall eine Limit-Order platziert (und sie wird unter dem Preis für Buy platziert).
Wie kommen Sie darauf, dass der BuyLimit-Auftrag unbedingt unter dem Preis liegen muss?
Ich spreche über den Aktienmarkt, Forex ist nicht interessant.
Entschuldigung, warum setzen Sie den BuyLimit-Auftrag über den Preis?
Sie sollte in dieser Situation überhaupt nicht eingestellt werden.
Wenn Sie die Klasse SB-Trading verwenden, gibt es eine Prüfung auf ungültige Parameter, und in einer solchen Situation wird der schwebende Auftrag nicht eröffnet, und die Position wird durch einen Marktauftrag eröffnet.
Ich habe Ihnen oben ein Beispiel für einen Code gegeben.
Sie sollte festgelegt werden und ist festgelegt.
Wenn er vom Markt geöffnet würde, gäbe es im Tester kein Problem; er würde vom Ask-Preis geöffnet werden. Aber es würde zu einem nicht existierenden Preis geöffnet werden, wie Sie auf dem Bild oben sehen können.
p.s. Probieren Sie den obigen Code einfach selbst in einem Tauschkonto ausLimit sollte die Slippage einer Market Order festlegen, nicht die Einstellung einer Limit Order :))
Das "geniale" Stoplimit in der Standardbibliothek, ohne Worte :))
Das Limit sollte die Slippage der Market Order festlegen, nicht die Limit Order Einstellung :))
Der Slippage wird durch den Abweichungsparameter in der Handelsanfrage festgelegt.
Und das Stoplimit-Niveau ist das Niveau, auf das der Limit-Auftrag im Verhältnis zum Stop-Order-Niveau gesetzt wird.
![Документация по MQL5: Константы, перечисления и структуры / Структуры данных / Структура торгового запроса Документация по MQL5: Константы, перечисления и структуры / Структуры данных / Структура торгового запроса](https://c.mql5.com/36/30/dokumentaciya-po-mql5-konstanti__43.png)
- www.mql5.com
![MQL5 - Sprache von Handelsstrategien, eingebaut ins Kundenterminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Verwenden SieStopLimit im realen Handel?
Es ist klar, dassStopLimit im Testgerätnicht ausreichend funktioniert.
Ist es sinnvoll, sie im realen Handel einzusetzen? Was sind die Vor- und Nachteile?