Errores, fallos, preguntas - página 2177

 
Konstantin Nikitin:

StringToTime

¡Muchas gracias!
 
Maxim Khrolenko:
¡Muy agradecido!

Es terriblemente lento y no es óptimo para manejar conversiones de variables de cadena.

La respuesta la tienes arriba:

Foro sobre trading, sistemas de trading automatizados y pruebas de estrategias de trading

Bichos, errores, preguntas

Alexey Viktorov, 2018.03.30 19:30

Llenar la estructura MqlDateTime y obtener la fecha y hora completa de ella.


 
Maxim Khrolenko:
¡Muchas gracias!

No buscamos caminos fáciles. Así se hace...

 
Alexey Viktorov:

No buscamos una salida fácil. Así se hace...

Escríbele un pequeño ejemplo ;)

 
Alexey Viktorov:

Rellena la estructura MqlDateTime y obtén la fecha y la hora completas de ella.

Es interesante ver cómo funciona en código

 
Artyom Trishkin:

Escríbele un pequeño ejemplo ;)

Se dijo

Foro sobre trading, sistemas de trading automatizados y pruebas de estrategias de trading

Bichos, errores, preguntas

Maxim Khrolenko, 2018.03.30 18:49

No encuentro una respuesta a la pregunta, ¿cómo escribir un valor de tiempo correspondiente a los parámetros dados en una variable de tipo datetime basada en 6 variables de tipo int (año, mes, día, hora, minuto)? Entonces necesito encontrar el índice de la vela que se abrió en ese momento, pero eso no es un problema para mí. Si alguien tiene un enlace donde pueda encontrar la respuesta, por favor, ya lo averiguaré por mi cuenta.

MqlDateTime dateTime;

dateTime.year = 2018;
dateTime.mon = 3;
dateTime.day = 30;
dateTime.hour = 21;
dateTime.min = 15;

datetime _Time = StructToTime(dateTime);
 
Alexey Viktorov:

Se dijo.


¿Qué día de la semana es? ¿Lo has comprobado? Sólo me pregunto si lo calcula por sí mismo durante la conversión o no.

Incluso estos dos: día_de_la_semana y día_del_año

 
Artyom Trishkin:

¿Qué día de la semana es? ¿Lo has comprobado? Me pregunto si lo calcula por sí mismo durante la conversión o no.

Incluso estos dos: día_de_la_semana y día_del_año.

Si lo vuelves a poner en la estructura después.

  TimeToStruct(_Time, dateTime);

aparecerá bien.

día_de_la_semana = 5

día_del_año = 88

 
Artyom Trishkin:

¿Qué día de la semana es? ¿Lo has comprobado? Sólo tengo curiosidad por saber si lo calcula por sí mismo durante la conversión o no.

Incluso estos dos: día_de_la_semana y día_del_año


void OnStart()
  {
//---
   MqlDateTime timeDate, time;
   
   timeDate.year=2018;
   timeDate.day_of_year=32;
   
   datetime date1=StructToTime(timeDate);
   Print("День года - ",timeDate.day_of_year);
   
   time.year=2018;
   time.mon=2;
   time.day=1;
   time.hour=0;
   time.min=0;
   
   datetime date2=StructToTime(time);
   Print("День года - ",time.day_of_year);
  }

День года - 879007969
День года - 32



No funciona cuando day_of_year se rellena (

 


Una pausa muy extraña de 22 segundos. ¿Quién puede explicarlo?

//+------------------------------------------------------------------+
//|                                                      BagBars.mq5 |
//|                        Copyright 2018, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+

void OnStart()
  {
   datetime Arr[];
   if(CopyTime(_Symbol,PERIOD_H4,0,1,Arr)<0) Print("Ошибка");
   Print("1 "+TimeToString(Arr[0])+" CurrentTime = "+TimeToString(TimeCurrent()));
   
   int Res=::Bars(_Symbol,PERIOD_W1,Arr[0],TimeCurrent());  // выполнение происходит 22 секунды!!!
   
   Print("2 CurrentTime = "+TimeToString(TimeCurrent()));
  }
//+------------------------------------------------------------------+

resultado:

2018.03.30 16:37:16.941 BagBars (EURUSD,W1)     1 2018.03.30 20:00 CurrentTime = 2018.03.30 23:37
2018.03.30 16:37:38.862 BagBars (EURUSD,W1)     2 CurrentTime = 2018.03.30 23:37