Erros, bugs, perguntas - página 2225

 

De alguma forma falhei o ponto ou já me esqueci:

os valores dos objectos são devolvidos normalmente no alojamento partilhado?

ou seja, se a estratégia utiliza linhas, posso obter o valor dessas linhas nas meta-cotações do alojamento virtual?

 
Nikolai Semko:

Não vai ajudar. Especialmente se o temporizador já estiver ligado antes de ser activado na classe, por exemplo, em intervalos de algumas horas ou dias. Então tal classe arruinará toda a lógica do programa.

Idealmente, todo o trabalho com temporizador deve ser envolvido numa classe, e todas as partes de um programa onde o temporizador é necessário, devem utilizá-lo através desta classe.

De outra forma, é impossível de o seguir.

 
Andrey Khatimlianskii:

Idealmente, todo o trabalho do temporizador deveria ser envolvido numa classe, e todas as partes do programa que necessitam de um temporizador deveriam utilizá-lo através dessa classe.

Caso contrário, é impossível de o seguir.

sabiamente

 
Nikolai Semko:

sensato

Faria sentido fazer isto a nível de plataforma e deixar-nos executar vários temporizadores para diferentes necessidades )

 
Andrey Khatimlianskii:

Idealmente, todo o trabalho do temporizador deveria ser envolvido numa classe, e todas as partes do programa que necessitam de um temporizador deveriam utilizá-lo através dessa classe.

Caso contrário, não será capaz de o acompanhar.

E nesta classe pode derrotar o OnTimer, EventSetMillisecondTimer, EventSetTimer, EventKillTimer, como foi feito pela Faber no Init_Sync.mqh. E depois controlo total. Boa ideia. Obrigado.

 
Nikolai Semko:

Pode adicionar OnTimer, EventSetMillisecondTimer, EventSetTimer, EventKillTimer a esta classe, como a Faber fez no Init_Sync.mqh. E depois controlo total. Boa ideia. Obrigado.

Ansioso pela KB ;)

 
Andrey Khatimlianskii:

Faria sentido fazê-lo a nível de plataforma e permitir-nos-ia executar vários temporizadores para diferentes necessidades )

Certo...
Isso seria muito mais fácil. Mas as formas fáceis são para os homens, e os maridos não procuram formas fáceis :))

 
Andrey Khatimlianskii:

Ansioso pelo QB ;)

Espero um dia deitar as mãos a isto...

 
Dmitri Custurov:

Já tentei tanto o feng shui como isto - o resultado é o mesmo. A questão é que tudo funciona 99% do tempo, e eu preciso de 100%. Neste momento, o principal para mim é acertar a lógica, e mais tarde poderei fazer a beleza.

Esqueci-me de acrescentar apenas que o erro acima mencionado aparece no testador. Quando o abro num gráfico, não reparo ou apenas preciso de esperar pelo extremo exigido, onde o erro voltará a ocorrer.

Os reais precisam de ser comparados correctamente

/*!
   \brief   Сравнение вещественных double
   \return true в случае равно, иначе false
*/
bool CompDouble(const double a_one,const double a_two) {
   if(fabs(a_one - a_two) <= DBL_EPSILON * fmax(fabs(a_one), fabs(a_two)))
      return true;    // числа равны с относительной точностью DBL_EPSILON
//---
   return false;
}
/*!
   \brief   Сравнение вещественных float
   \return true в случае равно, иначе false
*/
bool CompFloat(const float a_one,const float a_two) {
   if(fabs(a_one - a_two) <= FLT_EPSILON * fmax(fabs(a_one), fabs(a_two)))
      return true;    // числа равны с относительной точностью FLT_EPSILON
//---
   return false;
}
 
Obrigado pela dica. Está a funcionar. Eu já estava preocupado com OrderSelect.