Подсчёт баров с учётом выходных - страница 2

 
forex2030:

Что-то не пойму что мне это даст?

Может какой то перебор дней сделать от точки до точки и если за период день = 6 или 0 то day++;

Нет смысла. Все графические построения на рынке (любом) делаются, исходя из того, что выходных дней просто нет. 

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

Нет смысла. Все графические построения на рынке (любом) делаются, исходя из того, что выходных дней просто нет. 

Можно же перебрать дни, например если последняя дата 15 а потом известна дата 18 то запомним +2 (т.е. 16 и 17 выходные)

 
forex2030:

Можно же перебрать дни, например если последняя дата 15 а потом известна дата 18 то запомним +2 (т.е. 16 и 17 выходные)

Можно, если очень хочется. Смысла нет. 

Тенденция продолжится 18-го. От 15 к 18 - один бар. 

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

Можно, если очень хочется. Смысла нет. 

Как это смысла нет?
Я же прибавлю полученное значение к своим барам и получу уже 12+4=16 баров и линия встанет на нужную дату в итоге

 
forex2030:

Как это смысла нет?
Я же прибавлю полученное значение к своим барам и получу уже 12+4=16 баров и линия встанет на нужную дату в итоге

Линия повиснет в воздухе. 

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

Линия повиснет в воздухе. 

Если я к первой точки прибавлю не 12 баров а 16 баров, с чего она повиснет в воздухе то?

 
forex2030:

Если я к первой точки прибавлю не 12 баров а 16 баров, с чего она повиснет в воздухе то?

Спокойной ночи. 

 

Мне надо что-то типа такого, но только правильно оформленного, это так мысли только

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);}
 
А почему бы не взять и не решить эту задачу? Даты начала и конца известны, можем посчитать общее количество дней между ними. Потом считаем общее количество целых недель. На каждую неделю пять рабочих дней и два выходных - с этим все просто. Заморочки с остатком (будем считать, что он вначале), в зависимости от первого дня недели и его длительности остаток может захватить или не захватить выходные. Надо будет написать switch на семь вариантов для каждого дня недели и выполнить семь расчетов в зависимости от дня недели начала и длительности остатка. Потом посмотреть на этот switch и, может быть, получится увидеть, как эти расчеты можно будет обобщить и упростить. Смысл в том, что надо что-то делать.
 
Dmitry Fedoseev:
А почему бы не взять и не решить эту задачу? Даты начала и конца известны, можем посчитать общее количество дней между ними. Потом считаем общее количество целых недель. На каждую неделю пять рабочих дней и два выходных - с этим все просто. Заморочки с остатком (будем считать, что он вначале), в зависимости от первого дня недели и его длительности остаток может захватить или не захватить выходные. Надо будет написать switch на семь вариантов для каждого дня недели и выполнить семь расчетов в зависимости от дня недели начала и длительности остатка. Потом посмотреть на этот switch и, может быть, получится увидеть, как эти расчеты можно будет обобщить и упростить. Смысл в том, что надо что-то делать.

сложно все, есть время между датами в секундах (datetime) - этого достаточно, чтобы посчитать количество целых дней в которых 24 часа, 60 минут в каждом часе и 60 секунд в минуте....гугл в помощь

если речь о извращенных способах подсчета, то можно так:

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);
}
//+------------------------------------------------------------------+

можно как Вы предлагаете, считать каждый бар и узнавать были между текущим и предыдущим баром выходные....в общем тут только желанием ограничены возможности усложнить задачу )))

Причина обращения: