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: 4974
Beiträge: 43258
Benutzer: 7.221
Aktive Benutzer: 81
Links: 84
Wir begrüßen unseren neuesten Benutzer: Thomas75
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor 12 Stunden
- Thomas75
vor einem Tag
- JosephTK
vor 3 Tagen
- Hopfen&Mal...
vor 3 Tagen
- frankmicha...
vor einer Woche
- DFeck

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

Empfehlungen

Thema geschlossen
 
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
  #2 (permalink)  
Alt 02.03.22
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.733
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.
  #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
  #4 (permalink)  
Alt 02.03.22
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.733
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.
  #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
  #6 (permalink)  
Alt 03.03.22
Benutzerbild von Indikator-Trading
Premium Mitglied
 
Registriert seit: May 2020
Ort: Bielefeld
Beiträge: 345
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.
  #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.
Thema geschlossen

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 +1. Es ist jetzt 00:21 Uhr.





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