Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools

Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools (http://www.expert-advisor.com/forum/index.php)
-   Programmierung MQL4 (http://www.expert-advisor.com/forum/forumdisplay.php?f=220)
-   -   Alle Trades Schließen am Freitag um 18:00 Uhr (http://www.expert-advisor.com/forum/showthread.php?t=7163)

TrickTrade 02.03.22 12:45

Alle Trades Schließen am Freitag um 18:00 Uhr
 
Hallo Forum,
ich bin absoluter Anfänger in MQL4 und hier im Forum. Dies sind die ersten Zeilen MQL4-Versuch mit denen ich mich überhaupt besachäftige.
Ein Freund hat mir einen EA mit Quellcode zur Verfügung gestellt an dem ich rumprobieren darf.
Das erste was ich gern bauen würde ist, dass alle offenen Trades am Freitag um 18:00 Uhr geschlossen werden.
Meine Idee sieht jetzt so aus:

// Null ist Sonntag also ist 5 Freitag
int DayOfWeek();

// Daher
if(DayOfWeek()==5 close all Trades;

Kann mir jemand auf die Sprünge helfen wie das "close all Trades" umgesetzt werden kann?

Vielen Dank

traderdoc 02.03.22 13:56

Code:

if (DayOfWeek() == 5 && TimeHour(TimeCurrent()) == 18)  CloseAll();

void CloseAll() {
  bool res;
  for (int i = OrdersTotal()-1; i >= 0; i--) {
      if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
        if (OrderSymbol() == Symbol()) {
            RefreshRates();
            if (OrderType() == OP_BUY) res = OrderClose(OrderTicket(), OrderLots(), Bid, 1000, Red);
            if (OrderType() == OP_SELL) res = OrderClose(OrderTicket(), OrderLots(), Ask, 1000, Red);
        } 
      }
  }
}

traderdoc

TrickTrade 02.03.22 14:28

Dank!
 
Hallo traderdoc,
vielen Dank! So eine tolle, komplette Antwort hatte ich gar nicht erwartet.
Ich hätte mich schon über Hinweise nach dem Motto "Google mal nach TimeHour
CloseAll()" oder so gefreut.
Ich werde es heute Abend gleich probieren.

Manchmal ist Internet doch geiler als im Buch nachschlagen (besonders wenn man keins hat) , muss ich zu geben ;)

Gruß
TrickTrade

traderdoc 02.03.22 14:31

Ja, so sind wir eben halt hier!

traderdoc

TrickTrade 03.03.22 11:11

Global Scope
 
Hallo traderdoc,
ich habe den Code ganz unten in den EA eingefügt.
Beim kompilieren bekomme ich dann aber die Meldung:
Zeile 265 (das ist die erste Zeile des eingefügeten Codes)
"expression are not allowed on a global scope".

Wie komme ich den in einen Gültigkeitsbereich in dem die Anwendung gültig ist.
Ich habe es schon versucht, die Klammer des Abschnitts zuvor erst nach dem neuen Code zu beenden, aber das war nicht hilfreich.

Hast du vielleicht nochmal einen Hinweis dazu für mich?

Danke

Indikator-Trading 03.03.22 11:28

du musst das hier z.B. in die OnTick Funktion einbinden:
Code:

if (DayOfWeek() == 5 && TimeHour(TimeCurrent()) == 18)  CloseAll();
CloseAll() ist eine Funktion. Diese kopierst also nicht in eine andere Funktion.

TrickTrade 03.03.22 12:37

Vielen Dank, ich versuche mich mal daran.


Alle Zeitangaben in WEZ +2. Es ist jetzt 22:55 Uhr.

Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum