Quando si cerca di creare un oggetto di una classe astratta, il log mostra informazioni troppo scarne sull'errore: 'CClass - cannot instantiate abstract class. E vorrei sapere quali metodi mancano, perché ci sono così tanti metodi astratti, e ci vuole molto tempo per trovare quello mancante.
In MQL5\Include\environment.mqh c'è un tale doppio confronto
//+------------------------------------------------------------------+//| Сравнивает два значения типа double. |//| RESULT |//| Возвращает истину, если значения равны и |//| ложь в противном случе. |//+------------------------------------------------------------------+bool CEnvironment::DoubleEquals(constdouble a,constdouble b)
{
//---return(fabs(a-b)<=16*DBL_EPSILON*fmax(fabs(a),fabs(b)));
//---
}
In Aiuto, c'è una variante da 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);
}
Il secondo metodo consiste nel confrontare la differenza normalizzata tra due numeri reali con un valore di zero. Confrontare la differenza dei numeri normalizzati con lo zero è inutile perché qualsiasi operazione matematica con numeri normalizzati dà come risultato un risultato non normalizzato. Esempio:
Il secondo modo consiste nel confrontare la differenza normalizzata di due numeri reali con zero. È inutile confrontare la differenza dei numeri normalizzati con lo zero, perché qualsiasi operazione matematica con i numeri normalizzati produce un risultato non normalizzato.
Questo non è vero. La differenza di due doppi normalizzati sarà sempre zero se i loro valori normalizzati sono gli stessi. Non ho bisogno di citare un esempio quando paragono float e double. Questo non è il caso di due doppi.
Inoltre si possono prendere due numeri i cui valori normalizzati sono uguali tra loro. Ma la loro differenza normalizzata non sarà uguale a zero.
Dopo l'aggiornamento di oggi 18.08.2016 la funzione OrderCalcMargin ha iniziato a restituire 0.
Versione terminale Demo 5.00 build 1383
Codice di prova:
Uscita nel terminale:
2016.08.18 20:35:36.394 Test (EURUSD,H1) OneLot=0.0 GetLastError=0
ps: ho scritto anche a servicedesk, ma c'è un thread adatto anche qui, quindi forse questo messaggio riceverà una risposta più rapida.
Nessun controllo sull'implementazione di metodi virtuali puri
Errore di debug (build 1383)
Forse non è un bug grave, ma mi dà sempre fastidio.
l'essenza dell'oggetto grafico come OBJ_RECTANGLE_LABEL scompare un paio o un pixel, sembra niente, ma non è buono...
scompare in alto a sinistra quando l'oggetto è scuro nel colore....
In MQL5\Include\environment.mqh c'è un tale doppio confronto
In Aiuto, c'è una variante da MQL4\Libraries\stdlib.mq4
In MQL5\Include\environment.mqh c'è un tale doppio confronto
In Aiuto, c'è una variante di MQL4\Libraries\stdlib.mq4
doppio sguardo. E noi lo leggiamo. E vediamo due modi di confronto:
Esempio:
Esempio:
Il secondo modo consiste nel confrontare la differenza normalizzata di due numeri reali con zero. È inutile confrontare la differenza dei numeri normalizzati con lo zero, perché qualsiasi operazione matematica con i numeri normalizzati produce un risultato non normalizzato.
Questo non è vero. La differenza di due doppi normalizzati sarà sempre zero se i loro valori normalizzati sono gli stessi. Non ho bisogno di citare un esempio quando paragono float e double. Questo non è il caso di due doppi.
Inoltre si possono prendere due numeri i cui valori normalizzati sono uguali tra loro. Ma la loro differenza normalizzata non sarà uguale a zero.
Errore di compilazione: ')'. - non tutti i percorsi di controllo restituiscono un valore