Alle Preise müssen zum relevanten Preis den Mindestabstand haben:
SYMBOL_TRADE_STOPS_LEVEL | Minimal indention in points from the current close price to place Stop orders | int |
Distance to freeze trade operations in points | int |
Außerdem müssten sie so platziert sein:
Mit (siehe Amando) Buy oder Clese Sell = Ask und Sell oder Close Buy = Bid.
Hi zusammen,
ich benutze erst seit ein paar Tagen MT5, um ein PineScript in MLQ5 umzuwandeln. Ich habe also nun einen EA für ein Demokonto geschrieben, der Buy-Limit-Orders 1 Tick unter dem Low der letzten Kerze bzw. Sell-Limit-Orders 1 Tick über dem High der letzten Kerze platziert.
Bei den Sell-Orders gibt es keine Probleme, sie werden im Backtest sofort gefüllt, sobald der Preis 1 Tick über dem letzten High liegt. Die Buy-Orders verhalten sich jedoch etwas komisch. Sie werden nämlich erst dann gefüllt, wenn der Preis mindestens 2 Ticks unter dem letzten Low fällt, also 1 Tick unter dem eigentlichen Limit-Preis.
Beispiel:
Mein EA platziert eine Sell-Limit-Order bei 100$. Sobald der Preis 100$ erreicht, wird die Sell-Position im Backtest sofort mit einem Preis von 100$ geöffnet -> Wie erwartet.
Mein EA platziert eine Buy-Limit-Order bei 80$. Sobald der Preis auf 80$ fällt, wird die Buy-Position aber nicht geöffnet. Erst wenn der Preis auf 80$ - 1 Tick fällt, also bspw. 79.75$, wird die Buy-Position mit einem Preis von 80$ geöffnet.
Ist das ein erwartetes Verhalten und ich habe eine Wissenslücke? Was kann ich tun, dass die Orders im Backtest direkt auf dem Limit-Preis gefüllt werden?
Vielen Dank & Gruß
Ezyy04
Hallo,
wie schon amndo beschrieben hat, ist ein Fehler im Code.
So sollte es aussehen (als Beispiel).
double ask = SymbolInfoDouble(_Symbol,SYMBOL_ASK); ask = NormalizeDouble(ask,_Digits); double price=ask; price=NormalizeDouble(price,_Digits); m_trade.BuyLimit(0.10,price,_Symbol,0,0,NULL);

- 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.
Hi zusammen,
ich benutze erst seit ein paar Tagen MT5, um ein PineScript in MLQ5 umzuwandeln. Ich habe also nun einen EA für ein Demokonto geschrieben, der Buy-Limit-Orders 1 Tick unter dem Low der letzten Kerze bzw. Sell-Limit-Orders 1 Tick über dem High der letzten Kerze platziert.
Bei den Sell-Orders gibt es keine Probleme, sie werden im Backtest sofort gefüllt, sobald der Preis 1 Tick über dem letzten High liegt. Die Buy-Orders verhalten sich jedoch etwas komisch. Sie werden nämlich erst dann gefüllt, wenn der Preis mindestens 2 Ticks unter dem letzten Low fällt, also 1 Tick unter dem eigentlichen Limit-Preis.
Beispiel:
Mein EA platziert eine Sell-Limit-Order bei 100$. Sobald der Preis 100$ erreicht, wird die Sell-Position im Backtest sofort mit einem Preis von 100$ geöffnet -> Wie erwartet.
Mein EA platziert eine Buy-Limit-Order bei 80$. Sobald der Preis auf 80$ fällt, wird die Buy-Position aber nicht geöffnet. Erst wenn der Preis auf 80$ - 1 Tick fällt, also bspw. 79.75$, wird die Buy-Position mit einem Preis von 80$ geöffnet.
Ist das ein erwartetes Verhalten und ich habe eine Wissenslücke? Was kann ich tun, dass die Orders im Backtest direkt auf dem Limit-Preis gefüllt werden?
Vielen Dank & Gruß
Ezyy04