Contagem de barras, incluindo fins de semana - página 2

 
forex2030:

Não entendo o que isto fará por mim.

Talvez algum tipo de dia para enumeração pontual e se no período dia = 6 ou 0 então dia++;

Não vale a pena. Todos os gráficos no mercado (de qualquer tipo) são feitos com base no simples fato de que não há dias de folga.

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

Não vale a pena. Todos os gráficos no mercado (qualquer mercado) são feitos com base no simples fato de que não há dias de folga.

É possível percorrer os dias, por exemplo, se a última data for 15 e depois a data 18 for conhecida, então lembraremos +2 (ou seja, 16 e 17 dias de folga).

 
forex2030:

É possível percorrer os dias, por exemplo, se a última data for 15 e depois a data 18 for conhecida, então lembre-se +2 (ou seja, fins de semana 16 e 17)

Você pode, se realmente quiser. Não vale a pena.

A tendência continuará no dia 18. De 15 a 18 é uma barra.

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

Você pode, se realmente quiser. Não vale a pena.

Como isso é inútil?
Vou acrescentar este valor às minhas barras e obter 12+4=16 barras e a linha ficará na data certa no final

 
forex2030:

O que você quer dizer com "não adianta"?
Vou adicionar este valor às minhas barras e obter 12+4=16 barras e a linha ficará na data desejada no final

A linha fica pendurada no ar.

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

A linha ficará suspensa no ar.

Se eu acrescentar 16 barras ao primeiro ponto ao invés de 12 barras, por que ficará no ar?

 
forex2030:

Se eu acrescentar 16 barras ao primeiro ponto em vez de 12 barras, por que ficaria no ar?

Boa noite.

 

Preciso de algo assim, mas devidamente enquadrado, é apenas um pensamento

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);}
 
Por que não pegar este problema e resolvê-lo? As datas de início e fim são conhecidas, podemos contar o número total de dias entre elas. Em seguida, conte o número total de semanas inteiras. Cada semana tem cinco dias úteis e dois dias de folga - isso é fácil. Problemas com o restante (supomos que esteja no início), dependendo do primeiro dia da semana e de sua duração, o restante pode ou não levar o fim de semana. Teríamos que escrever uma troca para sete opções para cada dia da semana e realizar sete cálculos dependendo do dia da semana de início e da duração do restante. Em seguida, observe esta chave e talvez você possa ver como estes cálculos podem ser generalizados e simplificados. A questão é que algo tem que ser feito.
 
Dmitry Fedoseev:
E por que não resolver este problema? As datas de início e fim são conhecidas, podemos calcular o número total de dias entre elas. Em seguida, conte o número total de semanas inteiras. Cada semana tem cinco dias úteis e dois dias de folga - isso é fácil. Problemas com o restante (supomos que esteja no início), dependendo do primeiro dia da semana e de sua duração, o restante pode ou não levar o fim de semana. Teríamos que escrever uma troca para sete opções para cada dia da semana e realizar sete cálculos dependendo do dia da semana de início e da duração do restante. Em seguida, observe esta chave e talvez você possa ver como estes cálculos podem ser generalizados e simplificados. A questão é que algo tem que ser feito.

complicado, há um tempo entre datas em segundos (datetime) - isso é suficiente para calcular o número de dias inteiros em que 24 horas, 60 minutos em cada hora e 60 segundos em um minuto.... google para ajudar

Se estamos falando de uma forma distorcida de contar, você pode fazê-lo desta forma:

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

é possível, como você sugere, contar cada barra e descobrir se houve algum dia de folga entre a barra atual e a anterior em geral aqui apenas o desejo é limitado pela possibilidade de complicar a tarefa ))))