|
Expert-Advisors Expert-Advisors für Metatrader 4. |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|||
Terminlichen Ausstieg
Hallo Liebes Forum,
ich suche für meinen MT4 EA folgendes. Er soll bitte jeden Freitag, zu einer bestimmten Uhrzeit alle offenen Positionen schließen, egal ob diese im plus oder minus sind. Ziel ist es, die Schwankungen zwischen freitag und Montag zu verhindern. Über eure Hilfe wäre ich sehr dankbar. GRuß Its me |
|
|||
folgendes sollte dir helfen:
mit der funktion kannst du im String Format die Uhrzeit übergeben z.B. "21:00:00" liefert dir true zurück wenn es Freitag ist und die Uhrzeit erreicht bool CheckFridayCloseTime(string sCloseTime) { bool bBack=false; datetime TC=TimeCurrent(); datetime tClose=StrToTime(TimeToStr(TimeCurrent(),TIME_DATE )+" "+sCloseTime); if(DayOfWeek()==5 && TC>tClose) { bBack=true; } else { bBack=false; } return(bBack); } danach kannst du klassisch alle orders schliessen, wenn es mehrere sind gerne refreshrates nutzen, damit du einen neuen kurz bekommst, anbei ein Beispiel für BUY Trades, kann natürlich auf alle angewendet werden. bool CloseAllBuyV2(int MagicNumber,int Slippage) { bool ticket; for(int i=0; i<OrdersTotal(); i++) if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) //SELECT_BY_POS if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber && OrderType()==OP_BUY) { ticket=OrderClose(OrderTicket(),OrderLots(),OrderC losePrice(),Slippage,Black); if(ticket==false) { Print("Error on Orderexecution CloseAllBuy: "+IntegerToString(GetLastError())); while(RefreshRates()==false) Sleep(1); ticket=OrderClose(OrderTicket(),OrderLots(),Bid,Sl ippage,Black); if(ticket==false) { Print("Error on Orderexecution CloseAllBuy Try2: "+IntegerToString(GetLastError())); while(RefreshRates()==false) Sleep(1); ticket=OrderClose(OrderTicket(),OrderLots(),Bid,Sl ippage+1,Black); if(ticket==false) { Print("Error on Orderexecution CloseAllBuy Try3: "+IntegerToString(GetLastError())); while(RefreshRates()==false) Sleep(1); ticket=OrderClose(OrderTicket(),OrderLots(),Bid,Sl ippage+2,Black); } } } } return true; } hoffe das hilft dir weiter... Beste Grüße Christian |
|
|||
Ok, könnte man etwas straffen, v.a. den Teil des wiederholten Schließens per while-Schleife mit Zähler i, um die Slippage zu erhöhen, aber das Entscheidende liegt in der Schleifenzeile der Orderzählung.
Wenn nur eine! Order geschlossen werden soll, ist das so ok. Man sollte sich aber gleich angewöhnen, die Zeile rückwärtslesend zu schreiben: for (int i = OrdersTotal()-1; i >= 0; i--) dann tritt auch kein Fehler auf. traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
Lesezeichen |
Stichworte |
ea, expert advisor, metatrader ea, positionen schließen, positionen uhrzeit schließen, uhzeit |
|
|