Como se referir a uma determinada época - página 3

 
datetime ejfel = StrToTime("00:00");
int shift=iBarShift(NULL,PERIOD_M15,ejfel,true);
nyitohigh=iHigh(NULL,PERIOD_M15,shift);
nyitolow=iLow(NULL,PERIOD_M15,shift);
  1. Ou você sempre especifica o período ou nunca (use NULL.) se você usar High[nyitohigh], seu código quebra em qualquer tabela não M15.
  2. Você pode usar StrtoTime, ou como eu mostrei anteriormente
 
RaptorUK:

Não, porque o Time[x] retorna uma data/hora. . mas você pode fazer . .

ler no TimeHour


Olá pessoal
O negócio pesadelo levou todo o meu tempo lá, mas agora de volta à codificação

Obrigado por todas estas respostas

Eu estava considerando o uso de algum código deste tipo para esta faixa de tempo de negociação e vejo agora que há muitas maneiras diferentes de fazer isto.
if(Hora() >= 2 && Hora()<17)

Mais uma vez obrigado
 
Uma última pergunta sobre as constantes de data/hora e o formato de data/hora utilizado para iBarsShift

Vejo aqui os documentos sobre o assunto:
https://docs.mql4.com/basis/types/datetime

https://docs.mql4.com/series/iBarShift


Estou tentando selecionar uma vela algo como isto, talvez

if(TimeToStr(Time[1]) == 7:15)
Print(Low[1], " 7:15 low");

Eu sei que 7:15 não é o método correto de data/hora; e ainda assim é aqui que estou tendo problemas para comparar o tempo recorrente diário

IBarsShift indica o mesmo esquema de data/hora para a constante de data/hora, mas parece ser apenas para uma data/hora partcular e não para uma reocupação diária.

Assumo que tenho que usar o IBarsShift para descobrir o turno para procurar aquele tempo particular de barras e ele retorna o turno para aquela barra, então posso usar o turno para selecionar aquela vela e usar seus dados.
Pelo menos é assim que estou vendo isso.


Provavelmente eu poderia trabalhar com o que estou tentando fazer se eu pudesse descobrir como selecionar uma hora de reocupação diária em vez de uma hora específica durante uma determinada data.
E uma que tenha o mesmo formato no Time[] ou TimeToStr(Time[]) ou algum método desse tipo para que eu possa fazer a comparação e usar os dados para aquela vela.

Não estou completamente convencido de que quero usar o IBarsShift porque também não quero procurar um bar por tempo aberto

Quero saber quando Tempo[1] ou mesmo Fechar[1] == a_particular_tempo

Favor informar
Obrigado




 
Agent86:
Uma última pergunta sobre as constantes de data/hora e o formato de data/hora utilizado para iBarsShift

Vejo aqui os documentos sobre o assunto:
https://docs.mql4.com/basis/types/datetime

https://docs.mql4.com/series/iBarShift


Estou tentando selecionar uma vela algo como isto, talvez

if(TimeToStr(Time[1]) == 7:15)
Print(Low[1], " 7:15 low");

Eu sei que 7:15 não é o método correto de data/hora; e ainda assim é aqui que estou tendo problemas para comparar o tempo recorrente diário

Por que não apenas calcular o valor da data/hora para 7:15 ? Como ?

Calcule a data/hora para a meia-noite . . adicione ( (7 * PERÍODO_H1) + 15) * 60

data/hora para meia-noite

 
RaptorUK:
Por que não apenas calcular o valor da data/hora para 7:15 ? Como ?
Calcule a data/hora para a meia-noite . . adicione ( (7 * PERÍODO_H1) + 15) * 60

Assim como eu já postei, anteriormente, sobre este tópico

Agente86: Se você não vai se dar ao trabalho de ler o que colocamos e aprendemos, estamos passando nosso tempo com você.

 
WHRoeder:

Assim como eu já postei, anteriormente, sobre este tópico

Sim, mas isso foi no ano passado . . . todos dormiram desde então ;-)
 
RaptorUK:

Por que não apenas calcular o valor da data/hora para 7:15 ? Como ?

Calcule a data/hora para a meia-noite . . adicione ( (7 * PERÍODO_H1) + 15) * 60

data/hora para meia-noite

Obrigado

Assim, eu poderia codificar algo como:

datatimetime_select = ( (7 * PERÍODO_H1) + 15) * 60
if(Time[1] == time_select)
Print(Time[1], '' and", Low[1]);

Mas o que é o valor PERÍODO_H1 quando não é usado como um valor de enumeração de tempo para um indicador. Não vejo nada na documentação sobre o uso disto de outra forma.

Mas isto soa como o que eu procuro para selecionar um determinado tempo para compará-lo com o tempo de uma determinada vela
Obrigado
 
WHRoeder:

Assim como eu já postei, anteriormente, sobre este tópico

Agente86: Se você não vai se dar ao trabalho de ler o que colocamos e aprendemos, estamos passando nosso tempo com você.

Hi
Obrigado pela resposta

Eu li seu post que dizia respeito a um intervalo de tempo ou intervalo / filtro e entendi a conclusão, mas não as equações completamente

Por sua resposta tenho que assumir que não entendo como criar uma expressão que comparasse algo como se (Time[1] == 7:15) na sua forma correta, porque não entendo as equações que você postou.

 
datetime now = Time[0],
         bod = now - now % 86400,
         HR1800 = bod + 18*3600,
         HR2100 = bod + 21*3600;
if (Time[1] >= HR1800 && Time[1] < HR2100) ...

Por favor, confirme

Não pretendo fazer as mesmas perguntas se esta for realmente a mesma resposta que eu precisava, mas não pensei que fosse ou não a teria feito novamente.

Obrigado


 
RaptorUK:
Sim, mas isso foi no ano passado . . . todos dormiram desde então ;-)
LOL

Sem dúvida.
Eu realmente queria aprender mql rapidamente e gastar muito mais tempo com isso.
Infelizmente, meu negócio é um incômodo completo que consumiu muito tempo no ano passado.
Fiz alguns ajustes para que eu possa proceder de forma consistente mais uma vez.

Obrigado a todos pelas respostas
 
Agent86:
Obrigado

Assim, eu poderia codificar algo como:

datatimetime_select = ( (7 * PERÍODO_H1) + 15) * 60
if(Time[1] == time_select)
Print(Time[1], '' and", Low[1]);

Mas o que é o valor PERÍODO_H1 quando não é usado como um valor de enumeração de tempo para um indicador. Não vejo nada na documentação sobre o uso disto de outra forma.

Você realmente precisa começar a aprender a lidar com a documentação ...

Vá para qualquer função que utilize um TimeFrame e você verá a enumeração do TimeFrame . . e ele se liga a ele aqui: Enumeração do Período e isso lhe dirá que o Período_H1 é um valor de 60 . . . em outras palavras, 60 minutos . . . 60 minutos * 60 = segundos . . . o tempo é em segundos.


O que você codificou não funcionará . . seu tempo_selecionado NÃO é uma data/hora . . lembre-se, o que é uma data/hora ? da Documentação . . "tipo de data/hora (inteiro representando a quantidade de segundos decorridos a partir da meia-noite de 1 de janeiro de 1970)" se você quiser uma data/hora que signifique 7:15 da manhã tem que ser o número de segundos que decorreram de 1 de janeiro de 1970 até as 7:15 de hoje . .

O que você calculou é o número de segundos da meia-noite às 7h15 desta manhã, e isso não é uma data/hora.