|
Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4. |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|||
Kauf- und Verkaufstopps setzen
Hallo Zusammen,
bin an der o.g. Ordererteilung gescheitert...ich dachte wenn ich Ordersend () wähle, kann ich BUYSTOPP als Kaufstopp und SELLSTOPP als Verkaufsstopp setzen...am besten natürlich mit dem von mir gewünschten Kurs. Kann jemand helfen wie ich das im System implementiere? VG und Danke Marc |
|
|||
Also als Beispiel...mein Signal sagt mir, dass ich zum High der vorherigen Bars in den Markt long gehen will...wäre ja ein Kaufstopp.
Umgekehrt wäre es ja ein verkaufstopp, wenn ich zum low der vorherigen Kerze in den Markt will... |
|
|||
kann sich jemand erbarmen und mir helfen?
__________________
Heute Weizen, Abends Corn morgen fangen wir an von vorn... |
|
|||
schreib doch mal Dein OrderSend hier rein, dann kann man Dir auch vielleicht helfen. Der 2. Parameter der OrderSend Funktion muss
OP_BUYLIMIT 2 Buy limit pending position. OP_SELLLIMIT 3 Sell limit pending position. sein. Je nach Wunsch. Viel Erfolg Testmaster |
|
|||
Hallo Testmaster,
so sieht es derzeit aus... Mein Ziel ist bei der Strategie auf Tagesbasis wenn die vorherige Kerze positiv war beim high mit einem Kaufstopp zu kaufen und 10 Pips gewinn zu machen...andersherum...sollte die Kerze rot sein mit einem Verkaufstopp zu shorten und 10 Pips mit zu nehmen: extern int BTP=10; extern int BSL=20; extern int STP=10; extern int SSL=20; extern double Lots=0.1; extern int slippage=1; int iOrderOpenStatus; //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { //----Kauflogik if (Open[-1] < Close[-1]) { double BSL=Ask-(BSL*Point); double BTP=Ask+(BTP*Point); iOrderOpenStatus=OrderSend (Symbol(), OP_BUY,Lots, Ask, slippage, BSL, BTP, "Kauf",0,Green); } //----Verkaufslogik if (Close[-1] < Open[-1]) { double SSL=Bid-(SSL*Point); double STP=Bid+(STP*Point); iOrderOpenStatus=OrderSend (Symbol(), OP_SELL,Lots, Bid, slippage, SSL, STP, "Verkauf",0,Red); } return(0); } //+------------------------------------------------------------------+ Hier muss ich den KS und VS rein setzen...aber wie markeire ich das high der für mich relevanten Kerze bzw wie sieht das aus? Vielen Dank für Deine Hilfe
__________________
Heute Weizen, Abends Corn morgen fangen wir an von vorn... |
|
|||
Pending Orders
Hallo Marc,
verstehe ich dein Problem richtig, dass du gerne Orders zur späteren Ausführung (Pending) setzen möchtest, mit Buy-Stop bzw. Sell-Stop? In dem obigen Quelltext setzt du Orders zur sofortigen Ausführung. Den Unterschied macht der zweite Parameter in der OrderSend(...)-Funktion, wie Testmaster schon geschrieben hat. Mit OP_BUY bzw. OP_SELL werden die Orders sofort ausgeführt, mit OP_BUYSTOP bzw. OP_SELLSTOP werden Pending Orders mit Stop aufgegeben (und mit OP_BUYLIMIT / OP_SELLLIMIT wären auch noch Pending Orders mit Limit möglich, was von dir aber wohl nicht gewünscht wird). Liegt es daran? Gruß Foxi |
|
|||
Hallo Zusammen,
ich habe schon gedacht, dass im 2 ten Parameter "OP_BUYSTOP" oder "OP_SELLSTP" stehen muss, allerdings nun die Frage erkennt MT4 automatisch, dass Kauf und verkauf am high und low der vorherigen Kerze sein sollen? Dementsprechend müsste ich (wenn das so klappen würde) ja nur: Hallo Testmaster, extern int BTP=10; extern int BSL=20; extern int STP=10; extern int SSL=20; extern double Lots=0.1; extern int slippage=1; int iOrderOpenStatus; //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { //----Kauflogik if (Open[-1] < Close[-1]) { double BSL=Ask-(BSL*Point); double BTP=Ask+(BTP*Point); iOrderOpenStatus=OrderSend (Symbol(), OP_BUYSTOP,Lots, Ask, slippage, BSL, BTP, "Kauf",0,Green); } //----Verkaufslogik if (Close[-1] < Open[-1]) { double SSL=Bid-(SSL*Point); double STP=Bid+(STP*Point); iOrderOpenStatus=OrderSend (Symbol(), OP_SELLSTOP,Lots, Bid, slippage, SSL, STP, "Verkauf",0,Red); } return(0); } //+------------------------------------------------------------------+ abändern.. Vielen Dank und schönes WE Marc
__________________
Heute Weizen, Abends Corn morgen fangen wir an von vorn... |
|
|||
[QUOTE=Mast83;4878]
ich habe schon gedacht, dass im 2 ten Parameter "OP_BUYSTOP" oder "OP_SELLSTP" stehen muss, allerdings nun die Frage erkennt MT4 automatisch, dass Kauf und verkauf am high und low der vorherigen Kerze sein sollen? Hallo, das kann das Programm so nicht wissen. Deshalb muss man den gewünschten Preis in der Order eintragen und zwar dort, wo in deinem Beispiel <Bid> bzw. <Ask> steht (bei Orders zur sofortigen Ausführung wäre Bid/Ask richtig, aber nicht bei Pending Orders). Es gibt dann aber noch einige Einschränkungen, damit das ganze funktioniert: - Der Open-Preis darf nicht zu nahe am Marktpreis liegen - Der Open-Preis für Buy-Stop darf nicht über dem Marktpreis liegen und der für Sell-Stop nicht darunter - Bei einigen Brokern muss wohl noch eine Verfallszeit als vorletzter Parameter (vor der Farbe) eingetragen werden, diese kann aber <0> sein und bedeutet dann "kein Verfall" Das musst du im Programm berücksichtigen. Naja, oder du versuchst es halt erstmal so und schaust, welche Fehlermeldungen auftreten. Es wäre bestimmt sinnvoll, wenn du dir im MetaEditor den Hilfetext zur OrderSend() durchlesen würdest. Das stehen weitere Einzelheiten. Einfach im Navigator (meist oben rechts) <OrderSend> eingeben und dann anklicken. Grüße Foxi |
|
|||
Hallo, wenn Du am High der letzten Kerze einsteigen willst sollte Dein OderSend wie folgt aussehen:
iOrderOpenStatus=OrderSend (Symbol(), OP_BUYSTOP,Lots, High[1], slippage, BSL, BTP, "Kauf",0,Green); Wenn da ein Fehler auftaucht musst Du noch normalizeDouble davor packen. Short dann Low[1]. Viel Erfolg. |
|
|||
Vielen Dank für die Hilfe euch beiden...In verschiedenen Foren habe ich mal geschaut und bei MQL sind irgendwie nur Scripte in denen direkt per Marktorder agiert wird.
Eigentlich logisch, dass es so aussehen müsste...Aber wiederrum nicht explizit in der Documentation dargestellt, sondern nur die "normale" Variante...
__________________
Heute Weizen, Abends Corn morgen fangen wir an von vorn... |
Lesezeichen |
Stichworte |
metatrader programmierung, programmierung mql |
|
|