Erros, bugs, perguntas - página 858

 
A propósito, os segundos bissextos têm algum efeito sobre o tempo nas datas?
 

Eis a situação: temos uma estrutura de datas e, a dada altura, adicionamos-lhe dias ou horas ou minutos ou meses e acabamos com valores negativos como -335.05.2012 00:-615:00 (ou no caso de acrescentarmos 650, 360 horas e 250 minutos de Janeiro). Têm de ser convertidos para uma data normal. Até agora, tenho vindo a pensar nisto.

void ReconstructTimeStruct(MqlDateTime &sTime)
  {
   while(sTime.min<0)
     {
      sTime.min=59-fabs(sTime.min);
      sTime.hour--;
     }
   while(sTime.min>=60)
     {
      sTime.min=sTime.min-60;
      sTime.hour++;
     }

   while(sTime.hour<0)
     {
      sTime.hour=23-fabs(sTime.hour);
      sTime.day--;
     }
   while(sTime.hour>=24)
     {
      sTime.hour=sTime.hour-24;
      sTime.day++;
     }

   while(sTime.day<1)
     {
      if(sTime.mon>1)
        {
         sTime.mon--;
         sTime.day=GetDaysInMonthByMonthAndYear(sTime.mon,sTime.year)-fabs(sTime.day); //GetDaysInMonthByMonthAndYear получает количество дней в месяце с учетом  месяца и високосный ли год
        }
      else
        {
         sTime.mon=12;
         sTime.year--;
         sTime.day=GetDaysInMonthByMonthAndYear(sTime.mon,sTime.year)-fabs(sTime.day);
        }
     }
   while(sTime.day>GetDaysInMonthByMonthAndYear(sTime.mon,sTime.year))
     {
      if(sTime.mon<12)
        {
         sTime.mon++;
         sTime.day=sTime.day-GetDaysInMonthByMonthAndYear(sTime.mon,sTime.year);
        }
      else
        {
         sTime.mon=1;
         sTime.year++;
         sTime.day=sTime.day-GetDaysInMonthByMonthAndYear(sTime.mon,sTime.year);
        }
     }
   while(sTime.mon<1)
     {
      sTime.year--;
      sTime.mon=12-fabs(sTime.mon);
     }
   while(sTime.mon>12)
     {
      sTime.year++;
      sTime.mon=sTime.mon-12;
     }
  }

Não sei se sou um tolo ou se os esquis não voam. às vezes fica preso e no mês não funciona correctamente.

alguém me pode dizer qual é o problema?

Ou quem me pode dizer o algoritmo para encontrar o tempo de abertura de uma vela por data, incluindo velas não formadas, com a possibilidade de mudar (0 vela actual, -1 - vela à esquerda, 1 - vela à direita)?

 
leksiq: Não sei como dizer aos criadores sobre o erro, vou tentar aqui...
Tem uma secção ServiceDesk no seu perfil.
 
Urain:

Exactamente, mas fá-lo-ia de forma diferente... Portanto, se a condição funcionou, não há necessidade de fazer outra verificação.

A maioria dos anos passarão pelo primeiro cheque como falso,

Na verdade, um compilador normal não verifica o resto do &&& se a primeira condição for falsa.

Não o conheço em ME5.

 
papaklass:

Está planeada a criação do serviço de Armazém para o quarteto?

Eu junto-me à pergunta - é possível que 4 também sobrevivam 5 - é como XP e VISTA
 
A100:

Em geral, o compilador normal se a primeira condição for falsa - o resto do && não verificará

mas não sei como é no ME5.

Da mesma forma. verificações curtas do estado.

// Em quatro longos (cheios)

 
MetaDriver:

// Num quarteto de comprimento (cheio)

Depois fica claro de onde vêm as pernas
 

MetaTrader 5 Client Terminal build 712

[...]

8. Terminal: Sinais. Visualização fixa de informação de sinais e navegação suspensa entre sinais quando se trabalha sob Vinho.

[...]

Partiram algo no terminal, na última construção. Agora pendura-se sozinho após vários segundos após o arranque ( espera de tubo ) e é morto apenas através do monitor do sistema. As construções 695 e 705 funcionaram sem falhas, mas de um modo geral estavam bem. Tenho Linux mint 12 ( lisa ), wine-1.4. Aqui está o registo do terminal de SO anexado. Pode ajudar. O próprio terminal MT não deixa quaisquer registos -- depois de apagados através do monitor, as pastas dos registos estão vazias.

Gostaria de ver actualização com possibilidade de desligar, por exemplo, através de interruptor de linha de comando como '/noupdate'. Então, pelo menos seria possível trabalhar de alguma forma antes do próximo acidente.

Arquivos anexados:
crash9log.zip  2 kb
 

OnTesterInit

A função OnTesterInit() é o manipulador do evento TesterInit que é gerado automaticamente antes do início da optimização do Expert Advisor no testador de estratégias.

Portanto, esta função só é chamada quando Optimization=CustomMax ?

No início pensei pela descrição que se chama sempre a partir do Testador de Estratégia. É pena que não seja...

 
Roffild:

OnTesterInit

A função OnTesterInit() é o manipulador do evento TesterInit que é gerado automaticamente antes do início da optimização do Expert Advisor no testador de estratégias.

Portanto, esta função só é chamada quando Optimization=CustomMax ?

Primeiro pensei pela descrição que é sempre chamado pelo testador. É pena que não seja esse o caso...

O que significa Optimize=CustomMax ?

Descreva o que lhe faz falta. O que gostaria de obter?