Ao tentar criar um objecto de uma classe abstracta, o registo mostra informação demasiado escassa sobre o erro: 'CClass - não pode instanciar classe abstracta. E eu gostaria de saber quais os métodos em falta, porque há tantos métodos abstractos, e demora muito tempo a encontrar o que falta. Por favor, certifique-se de que o primeiro método em falta é indicado no registo.
Em MQL5\Include\environment.mqh existe uma comparação tão dupla
//+------------------------------------------------------------------+//| Сравнивает два значения типа double. |//| RESULT |//| Возвращает истину, если значения равны и |//| ложь в противном случе. |//+------------------------------------------------------------------+bool CEnvironment::DoubleEquals(constdouble a,constdouble b)
{
//---return(fabs(a-b)<=16*DBL_EPSILON*fmax(fabs(a),fabs(b)));
//---
}
Em Help, existe uma variante de MQL4\Libraries\stdlib.mq4
//+------------------------------------------------------------------+//| right comparison of 2 doubles |//+------------------------------------------------------------------+bool CompareDoubles(double number1,double number2)
{
if(NormalizeDouble(number1-number2,8)==0) return(true);
elsereturn(false);
}
O segundo método consiste em comparar a diferença normalizada entre dois números reais com um valor de zero. Comparar a diferença dos números normalizados com zero é inútil porque qualquer operação matemática com números normalizados resulta num resultado não normalizado. Exemplo:
A segunda via envolve a comparação da diferença normalizada de dois números reais com zero. É inútil comparar a diferença dos números normalizados com zero, porque qualquer operação matemática com números normalizados resulta num resultado não normalizado.
Isto não é verdade. A diferença de duas duplas normalizadas será sempre zero se os seus valores normalizados forem os mesmos. Não preciso de citar um exemplo ao comparar flutuar e dobrar. Este não é o caso de dois duplos.
Além disso, pode aceitar dois números cujos valores normalizados são iguais um ao outro. Mas a sua diferença normalizada não será igual a zero.
Após a actualização de hoje em 18.08.2016 a função OrderCalcMargin começou a regressar 0.
Versão terminal Demo 5.00 build 1383
Código de teste:
Saída em terminal:
2016.08.18 20:35:36.394 Teste (EURUSD,H1) OneLot=0.0 GetLastError=0
ps: também escreveu ao servicedesk, mas também há aqui um fio adequado, por isso talvez esta mensagem seja respondida mais rapidamente.
Sem verificação da implementação de métodos puramente virtuais
Erro de depuração (construir 1383)
Talvez não seja um insecto sério, mas está sempre a incomodar-me.
a essência do objecto gráfico como OBJ_RECTANGLE_LABEL desaparece um casal ou um pixel, não parece nada, mas não é bom ...
desaparece no canto superior esquerdo quando o objecto está escuro em cor....
Em MQL5\Include\environment.mqh existe uma comparação tão dupla
Em Help, existe uma variante de MQL4\Libraries\stdlib.mq4
Em MQL5\Include\environment.mqh existe uma comparação tão dupla
Em Help, existe uma variante de MQL4\Libraries\stdlib.mq4
duplo olhar. E lêmo-lo. E vemos duas formas de comparação:
Exemplo:
Exemplo:
A segunda via envolve a comparação da diferença normalizada de dois números reais com zero. É inútil comparar a diferença dos números normalizados com zero, porque qualquer operação matemática com números normalizados resulta num resultado não normalizado.
Isto não é verdade. A diferença de duas duplas normalizadas será sempre zero se os seus valores normalizados forem os mesmos. Não preciso de citar um exemplo ao comparar flutuar e dobrar. Este não é o caso de dois duplos.
Além disso, pode aceitar dois números cujos valores normalizados são iguais um ao outro. Mas a sua diferença normalizada não será igual a zero.
Erro de compilação: ') - nem todos os caminhos de controlo devolvem um valor