|
Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4. |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|||
trailing stop order öffenen. wie ?
so nachdem ich nun meinen einstiegspunkt gefiltert habe und der log den anzeigt, würde mich nun folgendes interessieren.
wie macht man eigentlich eine order auf ? setzt einen trailing stop ? muss man den laufend selber neu setzen oder haben die broker ne automatik die selbst mitzieht ? schliessen tut sich die order sicher beim unterschreiten des stops selbst oder ? |
|
|||
Welche Software benutzt du?
|
|
|||
bis jetzt teste ich nur auf metatrader4
|
|
|||
Wenn du F9 drückst, so öffnet sich die Order Maske mit den Auswahlmöglichkeiten: "Sofortige Ausführung" bzw. "Pending Order". Sofortige Ausführung ist klar, du brauchst nur noch oberhalb dieses Buttons das Volumen auswählen und wenn du willst den SL (was ich dir raten würde) und den TP setzen. Dann einfach auf buy oder sell drücken.
Die Pending order ist eine order die du schon vorher am Broker platzierst. Wählst du diese aus, so musst du dich fragen, ob du zu einem gewissen Preis, der oberhalb des aktuellen Preises liegt, kaufen willst (buy order), oder vielleicht dort verkaufen willst (sell limit); oder ob du zu einem gewissen Preis, der unterhalb des aktuellen Preises liegt verkaufen willst (sell order), oder vielleicht dort kaufen willst (buy limit). Achte darauf, dass du nicht limit mit order verwechselst, aber normalerweise bekommst du einen Fehler vom Mt4 Der Trailingstop beim Mt4 liegt auf deinem PC oder deinem VPS und nicht beim Broker. Das heißt, wenn du den MT4 schließt ist auch der Trailingstop weg, nicht aber dein SL oder TP, denn die liegen ja beim Broker. So und nun happy trading :-) |
|
|||
ich meinte programmiertechnisch.
kann mir mal einer die ordersend funktion genau erklären ? |
|
|||
hi,
also die Ordersend funktion sieht in den meisten fällen so aus: if ("das was du siehst" == "das was du suchst"){ ticket = OrderSend(Symbol(),OP_SELL,lots,Bid,Slippage,0,0," Short",12345,0,Green); if(ticket < 0){ Print("OrderSend failed with error #", GetLastError());} Symbol() ist das aktuelle Symbol auf dem der EA läuft. Lots, Bid, und Slippage kennst du hoffentlich. Short ist die Bemerkung, 12345 ist die Magicnumber. Die null danach ist die Verfallszeit, die macht allerdings bei einem OP_SELL keinen sinn. Und Green ist für die Farbe des Pfeils im Chartfenster. Wenn du weitere fragen hast: OrderSend - MQL4 Documentation Einen TrailingStop kann man nicht einfach setzen, du musst mit einer Schleife die Stops nachziehen. Das sieht dann so aus: if (OrdersTotal() > 0 ){ for(int pos = OrdersTotal()-1; pos >= 0 ; pos--){ OrderSelect(pos, SELECT_BY_POS); if (OrderType() == OP_BUY){ if ((Trailing == true) && (OrderProfit() > 1)){ if ((Bid - ((TrailingStop*Point) + (TrailingStep*Point))) > OrderStopLoss()){ if ((Bid - ((TrailingStop*Point) + (TrailingStep*Point))) > OrderOpenPrice()){ OrderModify(OrderTicket(),OrderOpenPrice(),(Bid - (TrailingStop*Point)),OrderTakeProfit(),0,Green);} }} if (OrderType() == OP_SELL){ if ((Trailing == true) && (OrderProfit() > 1)){ if ((Ask + ((TrailingStop*Point) + (TrailingStep*Point))) < OrderStopLoss()){ if ((Ask + ((TrailingStop*Point) + (TrailingStep*Point))) < OrderOpenPrice()){ OrderModify(OrderTicket(),OrderOpenPrice(),(Ask + (TrailingStop*Point)),OrderTakeProfit(),0,Green);} }} Hoffe ich konnte ein bisschen helfen. |
|
|||
ja ist schon mal was ich suche.
was bedeutet *point ? das ist dann sozusagen prozentual oder ? weil damit bin ich nicht klar gekommen. also wäre nen trst von 12 dann: if ((Bid - 12) > OrderStopLoss()){ richtig ? |
|
|||
also wenn der z.b. dow bei 13000 punkten 25 anteile kaufen soll und nen stop 12 pkt drunter. stimmt dann diese zeile ? oder muss das anders
OrderSend(Symbol(), OP_BUYLIMIT, //kaufen wenn drüber 25, //25 stk 13000, //dow 13000 1, //-+1 pkt unterschied 13000-12, //stop NULL, //kein take profit "My order #2", //infozeile 1234, //selbstdefinierte ident nummer 0, //kein ablauf Green); //grün anzeigen |
|
|||
wenn ich den code jetzt starte kommt error 4109 Trade is not allowed.
wieso das denn ? |
|
|||
Also Point ist die letzte Dezimalstelle abhängig vom Broker bei 5 digit Broker ist 160*Point also 0,00160.
4109 heisst dass in deinem Mt4 Terminal Extras\Optionen\Expert Advisor - "Life trading zulassen" abgehakt werden muss if ((Bid - 12) > OrderStopLoss()){ //würde gehen |
Lesezeichen |
Stichworte |
mql4, order, programmierung metatrader, trailing stop, trailingstop |
|
|