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 MQL5 (http://www.expert-advisor.com/forum/forumdisplay.php?f=221)
-   -   Falsche Zeitangaben (http://www.expert-advisor.com/forum/showthread.php?t=7373)

traderdoc 08.12.23 13:27

Falsche Zeitangaben
 
Was ist denn hier los?
Bei der Abfrage der Konstanten
PERIOD_H1, PERIOD_H4 und PERIOD_D1
gibt die Printzeile die Werte 16385, 16388 und 16408 aus.
Da sollte normalerweise 60, 240 und 1440 stehen.

traderdoc

Indikator-Trading 11.12.23 13:25

Ja, das ist in MQL5 schon deutlich anders als in MQL4.

Es werden Zahlen Binär geshiftet um auf diese Werte zu kommen. Danach wird noch die Minuten/Stunden/Wochen/Monate hinzugefügt.

0 um 15 stellen nach Links ergibt immer noch 0
Daher ist für Minuten alles ganz einfach

Für Minuten:
M1 = 0<<15+1 = 0
M5 = 0<<15+5 = 5
M15 = 0<<15+15 = 15
M30=0<<15+30 = 30

Bei Stunden wird eine 1 um 15 Bits geshiftet, das ergibt dann 2^14 = 16.384
H1 = 1<<15+1 = 16384 + 1 = 16385
H4 = 1<<15+4 = 16384 + 4 = 16388
D1 = 1<<15+24 = 16384 + 24 = 16408

Bei Wochen wird eine 1 um 16 Bits geshiftet, das ergibt dann 2^15 = 32.768
W1 = 1<<16+1 = 32.768+ 1 = 32.769

Für Monate dann alt ein Shift um 17 Bits, also 2^16 = 65.536
MN1 = 1<<17+1 = 65.536 +1 = 65.537

Um Umrechnungen zwischen Perioden durchzuführen, solltest du PeriodSeconds() nutzen. Dann stehen alle Perioden als Sekundenwerte zur Verfügung.

PeriodSeconds(PERIOD_D1) / PeriodSeconds(PERIOD_H1) = 24

Ist doch alles ganz einfach oder?
Gruß Timo

traderdoc 19.12.23 15:16

Danke, ja klar, alles ganz einfach. Und wo liegt jetzt der Vorteile?

traderdoc


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