Un saludo a todos
LLevo unos dias peleándome con las funciones de tiempo y fecha, y al final me ha quedado una duda :
¿en qué casos es preferible utilizar String en vez de Str, con TimeTo o ToTime ?
Me explico. A mi me dan los mismos resultados cuando imprimo los logs de StringToTime, StrToTime que TimeToString y TimeToStr,
¿se obtiene algún resultado diferente en caso de codificar en una determinada manera?
String+Time vs Str+Time
Re: String+Time vs Str+Time
Hola Carol,
Por lo que veo en la referencia de MQL4, la única diferencia es que las funciones que usan Str trabajan con el total de segundos transcurridos desde el 1 de enero de 1970, mientras que las que usan String usan el formato datetime estándar (no convierten de/a segundos).
Saludos,
X-Trader
Por lo que veo en la referencia de MQL4, la única diferencia es que las funciones que usan Str trabajan con el total de segundos transcurridos desde el 1 de enero de 1970, mientras que las que usan String usan el formato datetime estándar (no convierten de/a segundos).
Saludos,
X-Trader
"Los sistemas de trading pueden funcionar en ciertas condiciones de mercado todo el tiempo, en todas las condiciones de mercado en algún momento del tiempo, pero nunca en todas las condiciones de mercado todo el tiempo."
Re: String+Time vs Str+Time
Tú lo has entendido enseguida y lo has sabido explicar en tres líneas, pero yo voy a necesitar tres dias y analizar cada palabra para entenderlo.X-Trader escribió: ↑22 Sep 2022 18:43 Hola Carol,
Por lo que veo en la referencia de MQL4, la única diferencia es que las funciones que usan Str trabajan con el total de segundos transcurridos desde el 1 de enero de 1970, mientras que las que usan String usan el formato datetime estándar (no convierten de/a segundos).
Saludos,
X-Trader
Muchísimas gracias, voy a a trabajar en ello
Re: String+Time vs Str+Time
Nada, que no, que no hay manera .Estoy haciendo un filtro horario
y en otra función
Y no me da ningún error, pero me aparece en ambas expresiones un aviso: "possible loss of data due to type conversion"
Vale, entiendo que me está diciendo que puedo perder datos por la conversión de tipos, pero he probado
StrToInteger(TimeCurrent()) ;
StrToTime(TimeCurrent());
TimeToStr(TimeCurrent());
TimeToString(TimeCurrent());
StringToInteger(TimeCurrent());
StringToTime(TimeCurrent());
y ademas de esos avisos recibo otro dos "implicit conversion from 'string' to 'number' y" implicit conversion from 'number' to 'string' "
Me declaro incapaz
Código: Seleccionar todo
void HoursFilter()
{
int datetimeHF= TimeLocal();
int hour0 = TimeHour(datetimeHF);
etc,etc....}
Código: Seleccionar todo
void BuyPendingOrder()
{
int expire = TimeCurrent() + 60 * 0;
etc, etc...
Vale, entiendo que me está diciendo que puedo perder datos por la conversión de tipos, pero he probado
StrToInteger(TimeCurrent()) ;
StrToTime(TimeCurrent());
TimeToStr(TimeCurrent());
TimeToString(TimeCurrent());
StringToInteger(TimeCurrent());
StringToTime(TimeCurrent());
y ademas de esos avisos recibo otro dos "implicit conversion from 'string' to 'number' y" implicit conversion from 'number' to 'string' "
Me declaro incapaz
Re: String+Time vs Str+Time
No te preocupes Carol, a todos nos ha costado empezar, sobre todo si no eres programador de formación.
Si quieres describe exactamente que intentas conseguir y te busco algún ejemplo (viendo casos resueltos también se aprende y mucho).
Saludos,
X-Trader
Si quieres describe exactamente que intentas conseguir y te busco algún ejemplo (viendo casos resueltos también se aprende y mucho).
Saludos,
X-Trader
"Los sistemas de trading pueden funcionar en ciertas condiciones de mercado todo el tiempo, en todas las condiciones de mercado en algún momento del tiempo, pero nunca en todas las condiciones de mercado todo el tiempo."
Re: String+Time vs Str+Time
Hola X-Trader, si pudieses encontrar ejemplos de estas funciones me harias un favor enorme, porque yo he buscado en el manual pero lo que encuentro no me aclara el caso.
En realidad cuando compilo no me da error, pero me salen los dichosos avisos "possible loss of data due to type conversion", "implicit conversion from 'string' to 'number' e" implicit conversion from 'number' to 'string' "
y me gustaria saber por qué, por qué hago mal la conversión de tipos, cual es el error
Supongo que tendré que hacer algún paso intermedio, pero ya te digo, no he sido capaz de encontrar ningún ejemplo
Te explico: prácticamente he terminado el EA y le he puesto un filtro horario para que ponga órdenes en un determinado periodo de tiempo.
Primero individualizo la hora del dia en la que nos encontramos, luego la comparo con el horario del dia en el que quiero que actúe y después doy la orden que quiero que cumpla. El filtro, es este
El filtro funciona, lo he comprobado dejándolo correr en mt4, y al compilar no me da error, pero aparece el aviso "possible loss of data due to type conversion", en : int datetimeHF = TimeLocal();
He intentado arreglarlo ayudándome de las funciones de conversión , así que he ido sustituyendo esa línea por cada una de estas, para ir probando
int datetimeHF=StrToInteger(TimeCurrent()) ;
int datetimeHF=StrToTime(TimeCurrent());
int datetimeHF=TimeToStr(TimeCurrent());
int datetimeHF=TimeToString(TimeCurrent());
int datetimeHF=StringToInteger(TimeCurrent());
int datetimeHF=StringToTime(TimeCurrent());
Pero en lugar de arreglarse me sale un aviso mas, bien "implicit conversion from 'string' to 'number' o " implicit conversion from 'number' to 'string' "
Como te decía, sospecho que necesito realizar algún paso intermedio, pero sin algún ejemplo de conversión parecido tendré que dejar este cabo suelto para cuando sepa más
En realidad cuando compilo no me da error, pero me salen los dichosos avisos "possible loss of data due to type conversion", "implicit conversion from 'string' to 'number' e" implicit conversion from 'number' to 'string' "
y me gustaria saber por qué, por qué hago mal la conversión de tipos, cual es el error
Supongo que tendré que hacer algún paso intermedio, pero ya te digo, no he sido capaz de encontrar ningún ejemplo
Te explico: prácticamente he terminado el EA y le he puesto un filtro horario para que ponga órdenes en un determinado periodo de tiempo.
Primero individualizo la hora del dia en la que nos encontramos, luego la comparo con el horario del dia en el que quiero que actúe y después doy la orden que quiero que cumpla. El filtro, es este
Código: Seleccionar todo
void HoursFilter()
{
int datetimeHF= TimeLocal();
int hour0 = TimeHour(datetimeHF);
if ((HoursFrom < HoursTo && hour0 >= HoursFrom && hour0 < HoursTo) ||
(HoursFrom > HoursTo && (hour0 < HoursTo || hour0 >= HoursFrom)))
{
PendingOrderSDOMax();
PendingOrderSTTMax();
}
}
}
He intentado arreglarlo ayudándome de las funciones de conversión , así que he ido sustituyendo esa línea por cada una de estas, para ir probando
int datetimeHF=StrToInteger(TimeCurrent()) ;
int datetimeHF=StrToTime(TimeCurrent());
int datetimeHF=TimeToStr(TimeCurrent());
int datetimeHF=TimeToString(TimeCurrent());
int datetimeHF=StringToInteger(TimeCurrent());
int datetimeHF=StringToTime(TimeCurrent());
Pero en lugar de arreglarse me sale un aviso mas, bien "implicit conversion from 'string' to 'number' o " implicit conversion from 'number' to 'string' "
Como te decía, sospecho que necesito realizar algún paso intermedio, pero sin algún ejemplo de conversión parecido tendré que dejar este cabo suelto para cuando sepa más
Si te ha gustado este hilo del Foro, ¡compártelo en redes!