|
Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4. |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|||
Handlung wenn Pending Order nicht platziert werden kann
Hallo zusammen,
ich Programmiere gerade einen ORB EA. Es ist mir aufgefallen, dass manchmal Pending Orders nicht platziert werden können, da diese zu nahe am aktuellen Kurs sind. Kann ich im vor dem Versuch die Order zu platzieren feststellen ob die Differenz diese Levels zu gering ist und somit keine Pending Order Platziert werden kann? Dazu müsste ich die minimale Differenz ermitteln, kann man diese Information irgendwie abfragen? Des weiteren weis ich nicht so wirklich wie ich dann weiter mache. Meine aktuelle Überlegung ist folgende: Ich muss permanent den Kurs abfragen. Wenn sich dieser weit genug vom Einstieg entfernt kann die Pending Order Platziert werden. Wenn der Kurs das Einstiegslevel erreicht wird eine Market Order eröffnet. Gibt es andere möglichkeiten? Bitte um eure Hilfe. Danke! Leopold |
|
|||
Hi, ich vermeide Pending-Orders, weil ich finde, es geht den Broker/Liquidity Provider überhaupt nichts an, wo eine Order plaziert wird. ich frage den Kurs/Einstiegskurs ab und setze dann gleich eine Buy-/Sell-Order.
|
|
|||
Der Mindestabstand wird ermittelt über
MarketInfo(Symbol(), MODE_STOPLEVEL) Wenn nun z.B. beim versuchten Setzen eine BuyStopOrder if (BuyStopKurs - Ask > MarketInfo(Symbol(), MODE_STOPLEVEL)*Point) true ist, dann wird die BuyStopOrder gesetzt. Falls die Abfrage false ergibt, wird entweder keine BuyStopOrder gesetzt oder es wird der BuyStopKurs nach oben gesetzt auf mindestens!!: BuyStopKurs = Ask + MarketInfo(Symbol(), MODE_STOPLEVEL)*Point; Sicherer durch Addieren von mindestens einer Pipette, um nicht wieder eine Fehlermeldung zu bekommen: BuyStopKurs = Ask + (MarketInfo(Symbol(), MODE_STOPLEVEL)+1)*Point; traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
|
|||
Danke für die Antworten!
Ich werde jetzt auch nur mehr Market Order platzieren, dann hab ich das Problem nicht mehr, denn den Einstieg nach oben verschieben gefällt mir einfach nicht. Jetzt ist aber eine andere Frage aufgetaucht. Was haltet ihr davon das Einstiegslevel etwas einzugrenzen, damit bei großen Kurssprüngen der Einstieg nicht zu weit vom Ausbruch entfernt ist? Bei Long Positionen würde das dann so aussehen if (Bid >= RangeHigh && Bid <= MaxEntryLevel) OrderSend .... wenn ein großer Kurssprung stattfindet wird halt keine Position eröffnet, dies kann aber dann geschehen wenn der Kurs weder auf dieses Niveau zurückfällt. Denkt Ihr dass das eine Gute Idee ist? Leopold Geändert von Leopold (06.02.17 um 10:18 Uhr) |
|
||||
Alternativ kannst du natürlich auch einfach einen Broker mi einem Stoplevel 0 verwenden
|
|
|||
Hab nicht gewusst dass es solche Broker gibt.
Wie kann ich feststellen, auf welchen Broker das zutrifft? |
|
|||
Deswegen hab ich auch gefragt woran ich diese Broker erkenne.
Der EA soll vorrangig auf Indices laufen. Möchte diesen dann aber auch auf Währungen laufen lassen, kann aber noch nicht sagen auf welchen da ich auch noch nicht weis bei welchen Währungspaaren dieser gute Ergebnisse liefert. Leopold |
|
||||
Bei Indices hat man meistens selbst bei den besten Brokern auch ein geringes StopLevel.
Bei den Währungspaaren sieht es da zum Glück schon besser aus. Stop Levels für EURUSD und andere Majors sollten definitiv bei einem guten Broker bei 0 liegen. Du erkennst solche Broker in den meisten Fällen erst, wenn du die Demo in der Hand hast und dann mal eine Pending Order setzt: Doppelklick auf die gesetzte Order > Dort steht dann, dass die Order mindestens .... Punkte vom aktuellen Marktpreis entfernt sein muss. Oder jemand schreibt in seinem Blog darüber. Vielleicht mache ich das mal demnächst |
|
|||
Dann will ich mal die Frage beantworten, woran man das erkennt.
1. per Code über MarketInfo(Symbol(), MODE_STOPLEVEL) (Achtung bei 5-Digit-Brokern und Währungspaaren werden die Levels incl. der Pipetten angegeben, d.h. was sonst beim 4-Digit-Broker die Angabe 3 (3Pips) wäre, würde dann als 30 angegeben!) 2. per neuer Orderaufgabe. Da steht im Orderfenster ganz unten die Levelzahl, wenn man auf PendingOrder klickt. traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
Lesezeichen |
Stichworte |
mql4, pending order, programmierung, programmierung metatrader, programmierung mql4 |
|
|