Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 532
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Wir werden die Sekunden bekommen, die wir zum Aufrunden brauchen - das Runden ist das Problem.
duh
und es wird auf den Tagesbeginn gerundet. 86400=24*60*60Ich kann nicht herausfinden, wie man es benutzt.
Der zweite Wert erfordert"MqlDateTime&dt_struct// structure for taking values" und ich verstehe nicht, wie man diese MqlDateTime verwendet.
Es gibt eine Zeit. Die Zeit hat Parameter wie: Jahr, Monat, Tag, Stunden, Minuten, Sekunden usw. Mit der Funktion TimeToStruct() zerlegen Sie die Zeit in diese Komponenten. Dann können Sie z. B. Stunden, Minuten und Sekunden auf Null setzen - Sie erhalten den Tagesbeginn.
MqlDateTime ist ein Datentyp, genau wie int, bool, usw. Es ist nur ein zusammengesetzter Typ, d.h. um Zugriff auf seine Felder (Stunden, Minuten, Sekunden...) zu erhalten, müssen Sie einen Punkt verwenden. Zum Beispiel: dt_struct.hour - Stundenwert. Lesen Sie mehr über Strukturen unter https://www.mql5.com/ru/docs/basis/types/classes.
gut
und es erfolgt eine Abrundung auf den Tagesbeginn. 86400=24*60*60Wir haben Zeit. Die Zeit hat Parameter wie: Jahr, Monat, Tag, Stunden, Minuten, Sekunden usw. Durch den Aufruf der Funktion TimeToStruct() zerlegen Sie die Zeit in diese Komponenten. Dann können Sie z. B. Stunden, Minuten und Sekunden auf Null setzen - Sie erhalten den Tagesbeginn.
MqlDateTime ist ein Datentyp, genau wie int, bool, usw. Es ist nur ein zusammengesetzter Typ, d.h. um Zugriff auf seine Felder (Stunden, Minuten, Sekunden...) zu erhalten, müssen Sie einen Punkt verwenden. Zum Beispiel: dt_struct.hour - Stundenwert. Lesen Sie mehr über Strukturen unter https://www.mql5.com/ru/docs/basis/types/classes.
Nach Ihrer Formel erhalten wir die Anzahl der Tage zwischen dem aktuellen Balken und der Fernbedienung, aber diese Tage sind bedingt, d.h. es kann 9 Uhr am aktuellen Tag und 1 Stunde am Vortag sein. Dann wird die Differenz in Sekunden 122400 sein, was 1,42 Tagen entspricht - wenn auf 1 Tag gerundet, während wir brauchen, was 2 sein würde.
ein verlorener Tag, 23h+24h+9h=2 Tage 8h... Ich brauche diese Formel nicht, wenn ich sie brauche:
Ich muss für jedes Diagramm des aktuellen Zeitrahmens Berechnungen durchführen. Für die Berechnung muss ich das Datum des oberen Zeitraums (Tage) kennen. Oben habe ich den Code angehängt - es geht darum, für jeden Balken den maximalen Preis des oberen TF im Moment der Balkeneröffnung im aktuellen Zeitrahmen zu kennen.
Und Sie sagen Struktur... :)
ein verlorener Tag, 23h+24h+9h=2 Tage 8h... Sie brauchen diese Formel nicht, wenn Sie sie brauchen:
Nochmals:Und Sie sagen Struktur... :)
Warum haben Sie 23 Stunden - ich habe 1 Stunde geschrieben, aber das ändert nichts an der Sache.
24 (vorgestern - eine Stunde gestern)+24 (gestern - eine Stunde heute)+8 (nach einer Stunde heute - minus eine Stunde)=56/24=2,33, also zwei Tage, nicht wahr?
Warum haben Sie 23 Stunden - ich schrieb 1 Stunde, aber die Essenz ändert sich nicht
24 (vorgestern - gestern zur vollen Stunde)+24 (gestern - heute zur vollen Stunde)+8 (heute nach einer Stunde - minus eine Stunde) =56/24 = 2,33 d.h. es sind zwei Tage, nicht wahr?
23h vor gestern +
24h gestern +
9h heute=
2 Tage 8h=2,(33)Tage
Das ist der richtige Weg, um es zu tun:
Macht nichts, das ist nicht nötig)23h vor gestern+
24h gestern+
9h heute=
2 Tage 8h=2,(33)Tage
Der richtige Weg ist etwa so:
Macht nichts, das ist nicht nötig)Stellen wir uns nun vor, es ist nicht 9 Uhr, sondern 19 Uhr.
24(vorgestern +24(gestern - 1h heute)+18(nach 1h heute - minus 1h)=66/24=2,75 d.h. es sind drei Tage, stimmt's?
Als ob sich der Bereich nicht täglich geändert hat, und die Berechnung während des Tages ergibt dann 2, dann 3 Tage - darin liegt das Problem.
Die Variante
int DayN=time[0]/86400-time[163]/86400;
Dies funktioniert auch nicht, wenn wir davon ausgehen, dass der aktuelle Balken 1 Stunde und der geschätzte Balken 23 Stunden beträgt; in diesem Fall ist das Ergebnis der Berechnung Null und sollte 1 sein.
Es wird 1 sein, beide Zeiten werden zunächst auf einen ganzen Tag aufgerundet und dann subtrahiert.