Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools
Zurück   Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools > Metatrader 4 > Programmierung MQL4

Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4.

Login
Benutzername:
Kennwort:


Statistik
Themen: 4827
Beiträge: 42678
Benutzer: 7.155
Aktive Benutzer: 104
Links: 83
Wir begrüßen unseren neuesten Benutzer: DavidFraub
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor einer Woche
- DavidFraub
vor einer Woche
- Mike391
vor 2 Wochen
- Huminmkien...
vor 2 Wochen
- Franz51
vor 2 Wochen
- glueck

Onlineuser
'Wer ist online' anzeigen Benutzer: 0
Gäste: 34
Gesamt: 34
Team: 0
Team:  
Benutzer:  
Freunde anzeigen

Empfehlungen

Antwort
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 02.03.22
Neues Mitglied
 
Registriert seit: Mar 2022
Beiträge: 4
TrickTrade befindet sich auf einem aufstrebenden Ast
Standard 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
Mit Zitat antworten
  #2 (permalink)  
Alt 02.03.22
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.639
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

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
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
Mit Zitat antworten
  #3 (permalink)  
Alt 02.03.22
Neues Mitglied
 
Registriert seit: Mar 2022
Beiträge: 4
TrickTrade befindet sich auf einem aufstrebenden Ast
Standard 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
Mit Zitat antworten
  #4 (permalink)  
Alt 02.03.22
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.639
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Ja, so sind wir eben halt hier!

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
Mit Zitat antworten
  #5 (permalink)  
Alt 03.03.22
Neues Mitglied
 
Registriert seit: Mar 2022
Beiträge: 4
TrickTrade befindet sich auf einem aufstrebenden Ast
Standard 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
Mit Zitat antworten
  #6 (permalink)  
Alt 03.03.22
Benutzerbild von Indikator-Trading
Mitglied
 
Registriert seit: May 2020
Ort: Bielefeld
Beiträge: 296
Indikator-Trading befindet sich auf einem aufstrebenden Ast
Standard

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.
Mit Zitat antworten
  #7 (permalink)  
Alt 03.03.22
Neues Mitglied
 
Registriert seit: Mar 2022
Beiträge: 4
TrickTrade befindet sich auf einem aufstrebenden Ast
Standard

Vielen Dank, ich versuche mich mal daran.
Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus




Alle Zeitangaben in WEZ +2. Es ist jetzt 14:21 Uhr.





Die Suchmaschine - Der Wavesnode - Facebook Forum - Spam Firewall
-----------------------------------------------------------------------------------------------------------------------------
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
Powered by vBCMS® 2.7.0 ©2002 - 2022 vbdesigns.de
SEO by vBSEO 3.6.1
Copyright ©2009 - 2020 by Expert-Advisor.com - Das Metatrader Forum
MetaTrader bzw. MetaTrader 4 und MetaTrader 5 sind eingetragene Marken der MetaQuotes Software Corp.
-----------------------------------------------------------------------------------------------------------------------------