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: 4973
Beiträge: 43248
Benutzer: 7.219
Aktive Benutzer: 81
Links: 84
Wir begrüßen unseren neuesten Benutzer: Hopfen&Malz
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor einem Tag
- Hopfen&Mal...
vor 2 Tagen
- frankmicha...
vor einer Woche
- DFeck
vor einer Woche
- bb1107
vor 2 Wochen
- rg-trader

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

Empfehlungen

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 06.08.17
Neues Mitglied
 
Registriert seit: Jul 2017
Beiträge: 20
icepick1661 befindet sich auf einem aufstrebenden Ast
Standard Zeitrechnung über Tageswechsel

Hallo,

wieder was, das ich nicht hinkriege:

Abends werden Pending Orders gelöscht - morgens sollen sie zum Handelsstart bzw. kurz danach wieder gesetzt werden.

Mit dem angehängten Code funktioniert es intraday prächtig, sobald aber um 22:50 verkauft werden soll vund es am nächsten Tag 01:08 Uhr weitergehen soll, geht's schief.

Bei den Intraday-Tests habe ich den EA ohne die "CurrentDay"-Zeile laufen lassen (funktionierte ja...), sie dann zugefügt, als es nicht lief. Ich hab's auch mit einem Sekundenwert und "TIME_SECONDS" probiert.

Hier der Code:

Code:
   static bool CloseEndOfDay = false;
   static bool OpenStartDay = false;
   static bool SellStopBought = true;
   bool  OpenStartDayPeriod = false;
   bool  EndOfDay;
   string   DayChange;
   string   CurrentTime;

      {
      CurrentTime = TimeToStr (TimeCurrent(), TIME_MINUTES);
      DayChange = TimeToStr (TimeCurrent() + MinutesToNextDay, TIME_MINUTES); //Minute-Wert: 143; auch Sekunden gehen schief 
      }

      if (CurrentTime >= FinishTime && CurrentTime < StartTime) //&& CurrentTime < EndStartTimePeriod) 
       EndOfDay = true;
       if (EndOfDay) CloseEndOfDay=true;
       if (!EndOfDay) CloseEndOfDay=false;
       
       if (CurrentTime > DayChange && CurrentTime > StartTime && SellStopBought == false) OpenStartDayPeriod = true;
       if (OpenStartDayPeriod) OpenStartDay = true;
       if (!OpenStartDayPeriod) OpenStartDay = false;
Wieder mal Danke für eure Hilfe!
  #2 (permalink)  
Alt 06.08.17
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.733
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Wo ist das Problem?
Du löschst die PendingOrder entweder über mit dem Setzen gelieferte Expiration
Time oder per festgelegte Zeit.
Und am nächsten Tag wird die Order um 01:08 wieder gesetzt.

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #3 (permalink)  
Alt 06.08.17
Neues Mitglied
 
Registriert seit: Jul 2017
Beiträge: 20
icepick1661 befindet sich auf einem aufstrebenden Ast
Standard

Danke, traderdoc, für deine beiden Antworten. Ich werd's dann über die Expiration Time lösen. Wobei ich dachte, die "festgelegte Zeit" sei das, was ich da ausprobiert hab...
  #4 (permalink)  
Alt 07.08.17
Neues Mitglied
 
Registriert seit: Jul 2017
Beiträge: 20
icepick1661 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von traderdoc Beitrag anzeigen
Wo ist das Problem?
Du löschst die PendingOrder entweder über mit dem Setzen gelieferte Expiration
Time oder per festgelegte Zeit.
Und am nächsten Tag wird die Order um 01:08 wieder gesetzt.

traderdoc
EDIT
Habe das Problem selbst gelöst. "Time" IST die Variable, habe es durch "[individueller Variablename]" ersetzt, Warnung ist weg.
EDIT ENDE

Hallo, wenn ich für das Löschen mit der Expiration Time den nachfolgenden Code (hab ich ja von dir bzw. Leopold in einem anderen Thema gefunden) zufüge, kommt "declaration of 'time' hides predefined variable".

Was das bedeuted habe ich gefunden (vordefiniertes Array OpenTimes). Läßt sich das aber umgehen?

Danke.

Code:
datetime Time = StringToTime(
                         (string)TimeYear(Time[0])
                         +"."+
                         (string)TimeMonth(Time[0])
                         +"."+
                         (string)TimeDay(Time[0])
                         +"."+FinishTime);
  #5 (permalink)  
Alt 07.08.17
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.733
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Ne, streng übersetzt heißt die Fehlermeldung: "Deklaration von 'time' verdeckt
die predefinierte Variable" und hätte mit einem evtl. Array OpenTime überhaupt nichts zu tun.

Weil Time eine predefinierte Variable ist, solltest Du die einfach umbenennen.

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #6 (permalink)  
Alt 07.08.17
Neues Mitglied
 
Registriert seit: Jul 2017
Beiträge: 20
icepick1661 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von traderdoc Beitrag anzeigen
Ne, streng übersetzt heißt die Fehlermeldung: "Deklaration von 'time' verdeckt
die predefinierte Variable" und hätte mit einem evtl. Array OpenTime überhaupt nichts zu tun.

Weil Time eine predefinierte Variable ist, solltest Du die einfach umbenennen.

traderdoc
Danke, naja, ich hab's ja gelöst indem ich den Variablennamen Time nicht verwendet habe. Ob ich jetzt Time umbenenne um es selbst zu verwenden oder Time stehenlasse und einen eigenen Namen verwende, dürfte ja egal sein - es funktioniert ja ohne Warnung oder Fehler.
Thema geschlossen

Lesezeichen

Stichworte
code für tageswechsel, mql4, neuer tag, programmierung, programmierung metatrader, programmierung mql4, tageswechsel, weiter am nächsten tag, zeitrechnung

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 19:46 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.
-----------------------------------------------------------------------------------------------------------------------------