|
Startseite | Registrieren | Hilfe | Benutzerliste | Kalender | Suchen | Heutige Beiträge | Alle Foren als gelesen markieren |
Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4. |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|||
Offene Postitionen automatisch zu bestimmter Zeit schliessen
Geschätzte Forengemeinde,
ich habe meinen EA nach dem Muster des Beitrages http://www.expert-advisor.com/forum/...chliessen.html wie folgt erweitert: Code:
//----------------------------------Close all at the End Of Day extern bool ClosePosAllEndOfDay = false; extern int close_pos_hour =21; extern int close_pos_min = 56; int zaehler; int CurrentTime; /////////////#################################### Close all Position at the End of Day void closeAtStopTime() { int pAsk=0; int pBid=0; Print("Zeit ", Hour(), ":", Minute(), " = ", close_pos_hour, ":", close_pos_min); if ((Hour()==close_pos_hour && Minute()>=close_pos_min) && (ClosePosAllEndOfDay=true) ) { Comment("\nschliesse alle offenen Orders"); for (int j=OrdersTotal()-1; j>=0; j--) { Comment("\nSchleifendurchlauf: " + j); if (OrderSelect(j, SELECT_BY_POS, MODE_TRADES)) { Comment("\nOrderSelect erfolgreich, pruefe magic:" + OrderMagicNumber() + " = " + magic + "?"); if (OrderMagicNumber()==magic) { if (OrderType()==OP_BUY) { pBid=MarketInfo(OrderMagicNumber(), MODE_BID); OrderClose(OrderTicket(),OrderLots(),pBid,3,CLR_NONE); } if (OrderType()==OP_SELL) { pAsk=MarketInfo(OrderMagicNumber(), MODE_ASK); OrderClose(OrderTicket(),OrderLots(),pAsk,3,CLR_NONE); } } } } } } Mir ist auch aufgefallen, daß im Journal beim Zeitabgleich nie die Zeit zum Vergleich zur Vorgegeben close_pos-hour aufscheint. Danke im Voraus für eure Hilfe. Max |
|
|||
Code:
extern bool ClosePosAllEndOfDay = false; |
|
|||
Hallo,
Code:
pBid=MarketInfo(OrderMagicNumber(), MODE_BID); https://docs.mql4.com/marketinformation/marketinfo ---Leopold--- |
|
|||
Danke für eure Tipps!
Code:
MA-EA extern bool ClosePosAllEndOfDay = false; Den bool auch zuerst unten abfragen. Sonst checkt er die Uhrzeit umsonst. Code:
Leopold Code: pBid=MarketInfo(OrderMagicNumber(), MODE_BID); Hier musst du statt OrderMagicNumber() Symbol() eintragen. Hab die deaktivierten zeilen auch durchprobiert. Die offnenen Pos. werden nicht wie gewünscht geschlossen! Code:
{ int pAsk=0; int pBid=0; Print("Zeit ", Hour(), ":", Minute(), " = ", close_pos_hour, ":", close_pos_min); if ((Hour()==close_pos_hour && Minute()>=close_pos_min) && (ClosePosAllEndOfDay=true) ) { Comment("\nschliesse alle offenen Orders"); for (int j=OrdersTotal()-1; j>=0; j--) { Comment("\nSchleifendurchlauf: " + j); if (OrderSelect(j, SELECT_BY_POS, MODE_TRADES)) { Comment("\nOrderSelect erfolgreich, pruefe magic:" + OrderMagicNumber() + " = " + magic + "?"); // if ( OrderSymbol()==Symbol()) if (OrderMagicNumber()==magic) { if (OrderType()==OP_BUY) { // pBid=MarketInfo(OrderSymbol(), MODE_BID); pBid=MarketInfo(Symbol(), MODE_BID); OrderClose(OrderTicket(),OrderLots(),pBid,3,CLR_NONE); } if (OrderType()==OP_SELL) { // pAsk=MarketInfo(OrderSymbol(), MODE_ASK); pAsk=MarketInfo(Symbol(), MODE_ASK); OrderClose(OrderTicket(),OrderLots(),pAsk,3,CLR_NONE); } } } } } } |
|
|||
Hättest du mal einen Auszug aus dem Journal?
---Leopold--- |
|
|||
Code:
extern bool ClosePosAllEndOfDay = true; Code:
if(ClosePosAllEndOfDay==true && Hour()>=close_pos_hour && Minute()>=close_pos_min){ ... } |
|
|||
Bist du dir wirklich sicher, dass das einen unterschied macht?
|
|
|||
Der @MA-EA ist immer wieder für Überraschungen gut.
traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
|
|||
Wenn die Zeit vom Anfang an bekannt ist, dann kann man die Uhrzeit auch direkt in die Order schreiben (Expiration date)
|
Lesezeichen |
Themen-Optionen | Thema durchsuchen |
Ansicht | |
|
|