|
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 |
|
|||
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; |
|
|||
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. |
|
|||
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...
|
|
|||
Zitat:
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); |
|
|||
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. |
|
|||
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.
|
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 |
Ansicht | |
|
|