Zählleisten einschließlich Wochenenden - Seite 2

 
forex2030:

Ich verstehe nicht, was das für mich bedeuten soll?

Vielleicht eine Art von Tag zu Punkt Aufzählung und wenn in der Periode Tag = 6 oder 0 dann Tag++;

Es gibt keinen Grund. Die gesamte Charttechnik am Markt (gleich welcher Art) basiert auf der Annahme, dass es einfach keine freien Tage gibt.

 
Алексей Тарабанов:

Es gibt keinen Grund. Die gesamte Charttechnik auf dem Markt (egal auf welchem Markt) basiert darauf, dass es einfach keine freien Tage gibt.

Es ist möglich, die Tage zyklisch durchzugehen, z. B. wenn das letzte Datum der 15. ist und dann das Datum 18 bekannt ist, dann merken Sie sich +2 (d. h. 16 und 17 freie Tage).

 
forex2030:

Es ist möglich, die Tage zyklisch zu durchlaufen, z. B. wenn das letzte Datum der 15. ist und dann das Datum 18 bekannt ist, dann merken Sie sich +2 (d. h. Wochenende 16 und 17)

Das können Sie, wenn Sie es wirklich wollen. Es gibt keinen Grund.

Der Trend wird sich am 18. fortsetzen. Von 15 bis 18 ist ein Balken.

 
Алексей Тарабанов:

Das können Sie, wenn Sie es wirklich wollen. Es gibt keinen Grund.

Inwiefern ist es sinnlos?
Ich addiere diesen Wert zu meinen Balken und erhalte 12+4=16 Balken, und die Linie wird am Ende am richtigen Datum stehen

 
forex2030:

Was soll das heißen, es hat keinen Sinn?
Ich addiere diesen Wert zu meinen Balken und erhalte 12+4=16 Balken und die Linie steht am Ende auf dem gewünschten Datum

Die Linie hängt in der Luft.

 
Алексей Тарабанов:

Die Leine wird in der Luft hängen.

Wenn ich dem ersten Punkt 16 Takte statt 12 Takte hinzufüge, warum hängt er dann in der Luft?

 
forex2030:

Wenn ich dem ersten Punkt 16 Takte statt 12 Takte hinzufüge, warum hängt er dann in der Luft?

Gute Nacht.

 

Ich brauche so etwas, aber richtig eingerahmt, es ist nur ein Gedanke

int NumData(datetime data1,datetime data2){
    int num=0;
    for (int d=data1; d>=data2; d--)
    if(TimeDayOfWeek(d)==6 || TimeDayOfWeek(d)==0) num++;
return(num);}
 
Warum sollte man dieses Problem nicht angehen und lösen? Das Anfangs- und das Enddatum sind bekannt, wir können die Gesamtzahl der Tage zwischen ihnen zählen. Zählen Sie dann die Gesamtzahl der ganzen Wochen. Jede Woche hat fünf Arbeitstage und zwei freie Tage - das ist einfach. Probleme mit dem Rest (wir gehen davon aus, dass er am Anfang steht), je nach dem ersten Tag der Woche und seiner Dauer kann der Rest das Wochenende einnehmen oder nicht. Wir müssten einen Schalter für sieben Optionen für jeden Wochentag schreiben und sieben Berechnungen in Abhängigkeit vom Wochentag des Beginns und der Dauer des Rests durchführen. Schauen Sie sich dann diesen Schalter an, und vielleicht können Sie sehen, wie diese Berechnungen verallgemeinert und vereinfacht werden können. Der Punkt ist, dass etwas getan werden muss.
 
Dmitry Fedoseev:
Und warum sollte man dieses Problem nicht lösen? Wenn Anfangs- und Enddatum bekannt sind, können wir die Gesamtzahl der dazwischen liegenden Tage berechnen. Zählen Sie dann die Gesamtzahl der ganzen Wochen. Jede Woche hat fünf Arbeitstage und zwei freie Tage - das ist ganz einfach. Probleme mit dem Rest (wir gehen davon aus, dass er am Anfang steht), je nach dem ersten Tag der Woche und seiner Dauer kann der Rest das Wochenende einnehmen oder nicht. Wir müssten einen Schalter für sieben Optionen für jeden Wochentag schreiben und sieben Berechnungen in Abhängigkeit vom Wochentag des Beginns und der Dauer des Rests durchführen. Schauen Sie sich dann diesen Schalter an, und vielleicht können Sie sehen, wie diese Berechnungen verallgemeinert und vereinfacht werden können. Der Punkt ist, dass etwas getan werden muss.

kompliziert, es ist eine Zeit zwischen den Daten in Sekunden (datetime) - das ist genug, um die Anzahl der ganzen Tage, in denen 24 Stunden, 60 Minuten in jeder Stunde und 60 Sekunden in einer Minute zu berechnen.... google zu helfen

Wenn es sich um eine verdrehte Art des Zählens handelt, kann man es so machen:

input datetime d_start = D'2020.01.01';
input datetime d_stop  = D'2020.02.01';
//+------------------------------------------------------------------+
void OnStart()
{
   MqlDateTime dts[2];
   TimeToStruct(d_start,dts[0]);
   TimeToStruct(d_stop,dts[1]);
   printf("Между датами %i дней",dts[1].day_of_year - dts[0].day_of_year);
}
//+------------------------------------------------------------------+

Es ist möglich, wie Sie vorschlagen, jeden Balken zu zählen und herauszufinden, ob es zwischen dem aktuellen und dem vorherigen Balken irgendwelche freien Tage gab.... im Allgemeinen wird hier nur der Wunsch durch die Möglichkeit eingeschränkt, die Aufgabe zu komplizieren ))))