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)
-   -   Abgleich von Zeiten? (http://www.expert-advisor.com/forum/showthread.php?t=5871)

Lena 30.09.17 18:45

Abgleich von Zeiten?
 
Hallo zusammen
kann ich so (siehe Code) abgleichen ob ein Trade am gleichen Tag oder früher als der andere Trade eröffnet wurde?

Code:

                    if (OrderSymbol()==Symbol() && OrderTicket()!=Ticket_Temp && StringToTime(TimeToString(OrderOpenTime(),TIME_DATE))<=StringToTime(TimeToString(Order_Temp,TIME_DATE)))
Order_Temp = vorher gesetzter Referenzwert

Adlerauge 01.10.17 15:36

Warum das hin- und herkonvertieren von String und Time?
Du brauchst nur die Grösse der beiden Time-Werte zu vergleichen, eine Zeichenkette (String) ist dafür nutzlos.
Time kann man als Integer darstellen und vergleichen, dabei werden die Sekunden seit dem 1. Januar 1970 gezählt.
Oder im Format Datetime:
https://docs.mql4.com/basis/types/integer/datetime

Lena 01.10.17 16:32

Mir geht es ja nur darum, ob der eine Trade am gleichen Tag oder früher geöffnet wurde. Daher habe ich die Zeit erst in einen String umgewandelt und dabei mit TIME_DATE die Stunden, Minuten und Sekunden entfernt. Anschließend wieder ins Format Datetime konvertiert und so den Abgleich durchgeführt. Zumindest soll es so funktionieren.

Adlerauge 01.10.17 16:49

Den Time-Wert der ersten Sekunde des aktuellen Tages bekommst Du mit:
iTime(NULL,PERIOD_D1,0)
Den Wert kannst Du dann mit der OrderOpenTime() Deiner Order abgleichen.
Viel einfacher, als mit Strings rumzubasteln.

Lena 01.10.17 18:47

Was Du mir vorschlägst geht doch komplett an dem vorbei was ich mache. Mich interessiert nicht ob eine Order am aktuellen Tag geöffnet wurde. Ich vergleiche ob Order A am gleichen Tag oder früher Order B geöffnet wurde.

Adlerauge 01.10.17 19:50

...an welchem Tag auch immer - rechnen tut man normalerweise mit Zahlen, und das ist auch in diesem Fall kein Problem, auch nicht wenn die eine Order von Vorgestern und die Andere von Vorvorgestern ist.

Ich habe nicht geschrieben, dass es mit Strings nicht geht - wenn Du es besser findest: just do it.


Alle Zeitangaben in WEZ +2. Es ist jetzt 01:14 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