Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 606

 
pako:
Há quatro cinco semanas num mês, é a quarta semana do mês.
Sim, sim. Quais são as opções?
 
new-rena:
Estou a ver. Assim, ele quer prestar contas durante semanas desta natureza no dia 29 do mês anterior (segunda-feira, por exemplo) e até ao dia 31 do mês em curso (segunda-feira também, por exemplo). Isso seria mais de um mês. Não é lógico contar tais semanas.
Não, eu preciso de saber que semana é desde o início do mês corrente.
 
-Aleks-:
Não, eu preciso de saber que semana é desde o início do mês corrente.

Bem, como outra opção - tirar barras do gráfico do período W1, contar o número de barras do mês requerido + o ano requerido e ficará contente.

Sim, sim! É exactamente isso. Mas não sei como o fazer em 5p.

 
new-rena:

Bem, como outra opção - tirar barras do gráfico do período W1, contar o número de barras do mês requerido e ficará feliz.

Sim, sim! É exactamente isso. Mas não sei como o fazer em 5p.

Que tal sem barras? Pura e programática
 
pako:
Que tal sem barras? Pura e programática.
Bem, é claro que pode, eu escrevi a versão mais simples.
 
pako:
Como?

Um pouco mais complicado... E provavelmente terá de subtrair o número de dias da semana ao número mais baixo, multiplicado por 7, e depois compará-lo com o número do mês se o resultado for superior a 0 ou 4. É mais fácil tirá-lo de um gráfico.

int НомерНеделиВмесяце=NormalizeDouble(НомерДНЯвМесяце/7,0)+1;
 
pako:
Não há nenhum gráfico.
TimeLocal() apenas?
 
pako:
Sim

depois o que deu gorjeta, acrescentei lá - multiplicar o número da semana por 7, analisar e deve resultar.

Isto é para a primeira semana quando ===1. Para o último, é necessário subtrair os dias extra e fazer a mesma análise.

Continua a ser uma confusão, penso eu. Vai funcionar, mas é desajeitado))))

 
pako:
Não percebo.
Melhor a partir de um gráfico, muito mais fácil. Ele está lá a fazer uma série temporal, não está?
 
pako:

não há horários

Só há tempo.

Não há problema. Apliquei o algoritmo. O início apenas sem um horário, ou seja, sem um calendário:

int НомерДНЯвМесяце=TimeDay(TimeLocal());