Cómo referirse a un momento determinado - 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. O bien especifica siempre el periodo o nunca (utilice NULL en su lugar.) si utiliza High[nyitohigh], su código se rompe en cualquier gráfico que no sea M15.
  2. Puedes usar StrtoTime, o como mostré anteriormente
 
RaptorUK:

No, porque Time[x] devuelve un datetime... pero puedes hacer...

leer sobre TimeHour


Hola gente
El negocio molesto tomó todo mi tiempo por un tiempo allí, pero de vuelta a la codificación ahora

Gracias por todas estas respuestas

Estaba pensando en utilizar un código de este tipo para este rango de tiempo de negociación también veo ahora que hay muchas maneras diferentes de ir sobre esto.
if(Hora() >= 2 && Hora()<17)

Gracias de nuevo
 
Una última pregunta sobre las constantes Datetime y el formato datetime utilizado para iBarsShift

Veo los documentos aquí al respecto:
https://docs.mql4.com/basis/types/datetime

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


Estoy tratando de seleccionar una vela algo como esto tal vez

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

Sé que 7:15 no es el método correcto de datetime; y sin embargo aquí es donde estoy teniendo problemas para comparar el tiempo diario recurrente

IBarsShift indica el mismo esquema datetime para la constante datetime, pero parece ser sólo para una fecha parcial y no para el tiempo diario recurrente.

Estoy asumiendo que tengo que usar IBarsShift para encontrar el turno para buscar el tiempo de esa barra en particular y devuelve el turno para esa barra entonces puedo usar el turno para seleccionar esa vela y usar sus datos.
Al menos así es como lo estoy viendo.


Probablemente podría trabajar a través de lo que estoy tratando de hacer si pudiera averiguar cómo seleccionar un tiempo diario recurrente en lugar de un tiempo específico durante 1 fecha en particular.
Y uno que tenga el mismo formato en Time[] o TimeToStr(Time[]) o algún método similar para que pueda hacer la comparación y utilizar los datos para esa vela

No estoy completamente convencido de querer usar IBarsShift porque realmente tampoco quiero buscar una barra por la hora de apertura

Quiero saber cuando Time[1] o incluso Close[1] == a_particular_time

Por favor, aconsejadme
Gracias




 
Agent86:
Una última pregunta sobre las constantes Datetime y el formato datetime utilizado para iBarsShift

Veo los documentos aquí al respecto:
https://docs.mql4.com/basis/types/datetime

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


Estoy tratando de seleccionar una vela algo así tal vez

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

Sé que 7:15 no es el método correcto de datetime; y sin embargo, aquí es donde estoy teniendo problemas para comparar el tiempo diario recurrente

¿Por qué no calcular el valor datetime de las 7:15? ¿Cómo?

Calcule el tiempo de la fecha para la medianoche... agregue ( (7 * PERIOD_H1) + 15) * 60

datetime para la medianoche

 
RaptorUK:
¿Por qué no calcular el valor de la fecha para las 7:15? ¿Cómo?
Calcule el tiempo de la fecha para la medianoche... añada ( (7 * PERIOD_H1) + 15) * 60

Como ya publiqué, anteriormente, en ESTE hilo

Agente86: Si no te vas a molestar en leer lo que hemos publicado y aprender, estamos perdiendo el tiempo contigo.

 
WHRoeder:

Al igual que ya he publicado, anteriormente, en ESTE hilo

Sí, pero eso fue el año pasado... todo el mundo ha dormido desde entonces ;-)
 
RaptorUK:

¿Por qué no calcular simplemente el valor de la fecha para las 7:15? ¿Cómo?

Calcule el tiempo de la fecha para la medianoche... añada ( (7 * PERIOD_H1) + 15) * 60

datetime para la medianoche

Gracias

Así que podría codificar algo como

datetime time_select = ( (7 * PERIOD_H1) + 15) * 60
if(Tiempo[1] == time_select)
Print(Time[1], '' y", Low[1]);

Pero qué es el valor de PERIOD_H1 cuando no se utiliza como valor de enumeración del marco temporal para un indicador. No veo nada en la documentación sobre el uso de esto de otra manera.

Pero esto me suena a lo que busco para seleccionar un tiempo concreto para compararlo con el tiempo de una vela concreta
Gracias
 
WHRoeder:

Como ya he posteado, anteriormente, en ESTE hilo

Agente86: Si no te vas a molestar en leer lo que hemos posteado y aprender, estamos perdiendo el tiempo contigo.

Hola
Gracias por la respuesta

Sí que he leído tu post que se refería a un rango de tiempo o rango / filtro y he entendido la conclusión pero no las ecuaciones completamente

Por tu respuesta tengo que asumir que no entiendo cómo crear una expresión que compare algo como if(Time[1] == 7:15) en su forma correcta porque no entiendo las ecuaciones que has publicado.

 
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

No es mi intención hacer las mismas preguntas si en realidad esta es la misma respuesta que necesitaba, pero no pensé que lo fuera o no lo habría vuelto a preguntar.

Gracias


 
RaptorUK:
Sí, pero eso fue el año pasado... todo el mundo ha dormido desde entonces ;-)
LOL

No hay duda.
Realmente quería aprender mql rápidamente y pasar mucho más tiempo en él
Desafortunadamente mi negocio es una completa molestia que consumió demasiado tiempo ese año pasado.
He hecho algunos ajustes así que espero poder proceder de forma consistente una vez más.

Gracias a todos por las respuestas
 
Agent86:
Gracias

Así que podría codificar algo como

datetime time_select = ( (7 * PERIOD_H1) + 15) * 60
if(Hora[1] == time_select)
Print(Time[1], '' y", Low[1]);

Pero qué es el valor de PERIOD_H1 cuando no se utiliza como valor de enumeración del marco temporal para un indicador. No veo nada en la documentación sobre el uso de esto de otra manera.

Realmente tienes que empezar a aprender tu camino alrededor de la documentación. . .

Ve a cualquier función que utilice un TimeFrame y verás la enumeración de Timeframe. . . y enlaza con aquí: Timeframe enumeración y que le dirá que Period_H1 es un valor de 60 . . en otras palabras 60 minutos . . . 60 mins * 60 = segundos . . . las fechas están en segundos.


Lo que ha codificado no funcionará... su time_select NO es un datetime... recuerde, ¿qué es un datetime? de la Documentación... "datetime type (integer representing the amount of seconds elapsed from midnight, 1 January, 1970)." si quiere un datetime que signifique 7:15 am tiene que ser el número de segundos que han transcurrido desde el 1 de enero de 1970 hasta las 7:15am de hoy...

Lo que has calculado es el número de segundos transcurridos desde la medianoche hasta las 7:15 de esta mañana, y eso no es un datetime.