Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 535

 
Karputov Vladimir:

Das müssen Sie gleich angeben :) .

Die Situation ist wie folgt: Wenn es einen Balken im Diagramm gibt, entspricht er einer Zelle im Indikatorpuffer. Solange Sie nichts in diese Zelle schreiben, wird sie nur Müll speichern.

Warum ist es nicht Müll in MT4, sondern zeigt nur nicht den Indikator unter diesem Balken?
 
Aleksey Lebedev:

Bei der Division von Ganzzahlen (int, long, datetime usw.) ist das Ergebnis eine Ganzzahl, d.h. der Rest wird verworfen. 00:00 heute und 23:59:59 gestern, beträgt die Differenz 1 Tag.

Erstens ist das nicht der Fall - der Indikator ist experimentell nachgewiesen.

Zweitens: Wie kommt man auf eine 1? Zeigen Sie es mir mathematisch, da wir ursprünglich in Sekunden gerechnet haben.

 
Alexey Kozitsyn:
Das ist genau dasselbe wie beim Nullsetzen einfacher Typen. Sobald den erforderlichen Feldern ein Wert von 0 zugewiesen wurde, verwenden Sie die umgekehrte Operation StructToTime().

Ausgeschaltet:

MqlDateTime str1;
datetime  Open_timePos=iTime(_Symbol,0,pos);
TimeToStruct(Open_timePos,str1);
   str1.hour=0;
   str1.min=0;
   str1.sec=0;
datetime  start_time=StructToTime(str1);
Print("день=",TimeToStr(start_time));

Alles hat funktioniert - vielen Dank!
 

Aleksey Lebedev:
При делении целых чисел(int,long,datetime и т.п.) результат целое число, т.е. остаток отбрасывается. 00:00 сегодня и 23:59:59 вчера, разность будет равна 1дню.

-Aleks-:

Erstens ist es nicht - experimentell im Indikator nachgewiesen.

Stellen Sie die Grundlagen nicht in Frage).

-Aleks-:

Zweitens: Wie kommt man auf 1? Zeigen Sie es mir mathematisch, da wir zunächst die Berechnung in Sekunden haben.

datetime today=D'2016.03.09 00:00:00';
datetime yesterday=D'2016.03.08 23:59:59';
Print("today=",86400*(today/86400)," value=",int(today));
Print("yesterday=",86400*(yesterday/86400)," value=",int(yesterday));
Print("разница в днях = ",int(today/86400-yesterday/86400));

Verwenden Sie die Umwandlung durch Struktur, wenn sie leichter zu verstehen ist.

 
Aleksey Lebedev:

Stellen Sie die Grundlagen nicht in Frage)

Verwenden Sie die Strukturumwandlung, wenn sie einfacher zu verstehen ist.

Was verstanden wird, ist das, was behandelt wurde. Ich habe nicht versucht, Ihren Code auszuführen, aber ich denke, Sie haben es selbst getan, also erklären Sie mir unintelligent, wie es funktioniert:

86401/86400-86400/86400 ist gleich 1, wenn nach den Regeln der Mathematik 1,000012-1=0,000012 ist und int auf eine ganze Zahl aufgerundet werden soll, d.h. 0.

 
-Aleks-:

Was verstanden wird, ist das, was behandelt wurde. Ich habe nicht versucht, Ihren Code auszuführen, aber ich denke, Sie haben es selbst getan, so erklären Sie mir unintelligent, wie es funktioniert:

86401/86400/86400 ist gleich 1, wenn nach den Regeln der Mathematik 1.000012-1=0.000012 , und int auf eine ganze Zahl, also 0, gerundet werden soll.

aber tun Sie es)

Tagesbeginn 00:00:00 wird durch 86400 ohne Rest geteilt, die vorherige ist mindestens 1 Sekunde kleiner. Abgerundet - der Rest der Division wird verworfen, nicht der gesamte Ausdruck.

86400/86400=1

86399/86400=0

 
Aleksey Lebedev:

und führen Sie es dann aus)

Der Tagesbeginn 00:00:00 wird ohne Rest durch 86400 geteilt, wobei der vorherige Tag mindestens 1 Sekunde kürzer ist. Abgerundet - der Rest der Division wird verworfen, nicht der gesamte Ausdruck.

86400/86400=1

86399/86400=0

Daher bin ich überrascht, dass die merkwürdige Rundung innerhalb eines Ausdrucks auftritt - ich dachte, wenn einer Variablen ein Wert zugewiesen wird, wird der Wert nach dem Dezimalpunkt verworfen.
 
Leute! Ist es möglich, den Indikator programmgesteuert auf dem Diagramm anzuzeigen? Oder nur von Hand?
 
Vladimir Tkach:
Leute! Ist es möglich, den Indikator programmgesteuert auf dem Diagramm anzuzeigen? Oder nur von Hand?
Sie können es tunhttps://www.mql5.com/ru/docs/chart_operations/chartindicatoradd
Документация по MQL5: Операции с графиками / ChartIndicatorAdd
Документация по MQL5: Операции с графиками / ChartIndicatorAdd
  • www.mql5.com
Операции с графиками / ChartIndicatorAdd - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
ist es in mql5 und in mql4?