Erros, bugs, perguntas - página 2177

 
Konstantin Nikitin:

StringToTime

Muito obrigado!
 
Maxim Khrolenko:
Muito obrigado!

Terrivelmente lento e não óptimo para lidar com conversões de variáveis de cordas.

Tem a resposta acima:

Fórum sobre comércio, sistemas automatizados de comércio e testes de estratégia comercial

Insectos, insectos, perguntas

Alexey Viktorov, 2018.03.30 19:30

Preencher a estrutura MqlDateTime e obter data e hora completas a partir dela.


 
Maxim Khrolenko:
Muito obrigado!

Não procuramos formas fáceis. Muito bem...

 
Alexey Viktorov:

Não estamos à procura de uma saída fácil. Muito bem...

Escreva-lhe um pequeno exemplo ;)

 
Alexey Viktorov:

Preencha a estrutura MqlDateTime e obtenha a data e hora completas da mesma.

Interessante ver como funciona em código

 
Artyom Trishkin:

Escreva-lhe um pequeno exemplo ;)

Foi dito

Fórum sobre comércio, sistemas automatizados de comércio e testes de estratégia comercial

Insectos, insectos, perguntas

Maxim Khrolenko, 2018.03.30 18:49

Não consigo encontrar uma resposta à pergunta, como escrever um valor de tempo correspondente aos parâmetros dados numa variável de tipo data/hora com base em 6 variáveis de tipo int (ano, mês, dia, hora, minuto)? Depois preciso de encontrar o índice da vela que se abriu nessa altura, mas isso não é um problema para mim. Se alguém tiver um link onde possa encontrar a resposta, por favor, eu descubro-o por mim mesmo.

MqlDateTime dateTime;

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

datetime _Time = StructToTime(dateTime);
 
Alexey Viktorov:

Foi dito.


Em que dia da semana é que isso acontece? Já verificou? Só me pergunto se o calcula por si só durante a conversão ou não.

Mesmo estes dois: dia_da_semana e dia_do_ano

 
Artyom Trishkin:

Que dia da semana é hoje? Já verificou? Só me pergunto se o calcula por si só durante a conversão ou não.

Mesmo estes dois: dia_da_semana e dia_do_ano.

Se o voltar a colocar na estrutura depois.

  TimeToStruct(_Time, dateTime);

vai aparecer tudo bem.

dia_da_semana = 5

dia_do_ano = 88

 
Artyom Trishkin:

Que dia da semana é hoje? Já verificou? Apenas curioso se o calcula por si só durante a conversão ou não.

Mesmo estes dois: dia_da_semana e dia_do_ano


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



Não funciona quando o dia_do_ano é preenchido (

 


Uma pausa muito estranha de 22 segundos. Quem o pode explicar?

//+------------------------------------------------------------------+
//|                                                      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