Errori, bug, domande - pagina 2426

 
Alexandr Gavrilin:

Cosa diavolo c'è di sbagliato nel doppio tipo nelle ultime versioni di metaeditor? Sia in mt4 che in mt5 scrive delle sciocchezze invece di -0.01. Da dove vengono questi numeri, le variabili sono azzerate nel mio caso.

Devo cambiare la memoria. Era lo stesso nelle versioni precedenti.

 

il compilatore si comporta diversamente negli stessi casi.

Scaricato 2 file da kodobase:https://www.mql5.com/en/code/15440

sono stati fatti, ovviamente prima che iTime() apparisse. Uno dei due compila, l'altro impreca:

Le funzioni sono identiche:

chiama anche.

Il motivo del rimprovero è ovvio, comprensibile e facilmente risolvibile con l'autosostituzione, ma il diverso comportamento in situazioni simili è allarmante.

PS:

L'indicatore compilato funziona correttamente.

Volume Profile + Range v6.0
Volume Profile + Range v6.0
  • www.mql5.com
Volume Profile + Range v6.0 (former TPO). Distribution of deals by price levels at a given time interval. Displayed as a histogram. The width of the histogram at the level means the number of transactions carried out on it. If a broker provides data on a real volume, the indicator is able to display distribution on it as well. VP: display...
 
Alexey Viktorov:

Dovete sostituire la memoria. Era esattamente lo stesso nelle vecchie versioni.

Quale memoria? Cosa c'entra la memoria?

 

Ho eseguito il seguente codice:

 Temp.ask=0; Temp.bid=0; Temp.time=0;
 Print("Старт Ask=",Temp.ask," Bid=",Temp.bid," Time=",Temp.time);
 Print("Ответ SymbolInfoTick=", SymbolInfoTick("",Temp) );
 Print("Ask=",Temp.ask," Bid=",Temp.bid," Time=",Temp.time);

E ho ottenuto uno strano risultato:

Старт Ask=0.0 Bid=0.0 Time=1970.01.01 00:00:00
Ответ SymbolInfoTick=true
Ask=69.75 Bid=69.33 Time=2019.04.08 21:21:12

Cioè SymbolInfoTick con il primo parametro uguale a "" per qualche motivo restituisce l'ultimo tick del simbolo del grafico invece di false e un tick da zero. Anche se non dovrebbe essere così secondo la definizione nella documentazione.

bool  SymbolInfoTick( 
   string    symbol,     // символ 
   MqlTick&  tick        // ссылка на структуру 
   );
 
Igor Zakharov:

proprietà rigorosa?

 
Alexandr Gavrilin:

Cosa diavolo c'è di sbagliato nel doppio tipo nelle ultime versioni di metaeditor? Sia in mt4 che in mt5 scrive delle sciocchezze invece di -0.01. Da dove vengono questi numeri? Ho impostato le variabili a zero.

Questa è la costruzione del 2007.

È sempre stato 0,01, ma ora non lo capisco:


 
Andrei Trukhanovich:

proprietà rigorosa?

in entrambi sono gli stessi:

Non ho controllato fino al simbolo (come sottolineato sopra - il codice non è mio), ma ad uno sguardo superficiale sono identici al 95%. E la differenza non è nei luoghi in cui l'errore salta fuori. Ma, per qualche motivo, uno compila e l'altro no. L'ho già risolto da solo, ma sto informando gli sviluppatori della stranezza.

 

Questo bug sembra essere apparso nelle ultime build di MT5.

Bug nelle funzioni CryptEncode() e CryptDecode(). Problema con il metodo di conversione CRYPT_AES256

Potete riprodurre il bug nell'ultima build (2009) con questo script:

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
{
   string Txt = "The quick brown fox jumps over the lazy dog. A0 A1 A2 A3 A4 A5 A6 A7 A8 A9"; 

//---Key
   uchar Key[32];
   ArrayInitialize(Key, 3);

//---encode
   uchar SourceArr[], EncodedArr[];
   
   StringToCharArray(Txt, SourceArr); 
   
   int EncodeRes = CryptEncode(CRYPT_AES256, SourceArr, Key, EncodedArr);
   
//---decode
   uchar DecodedArr[];
   
   int DecodeRes = CryptDecode(CRYPT_AES256, EncodedArr, Key, DecodedArr);
   
   string DecodedTxt = CharArrayToString(DecodedArr);

//---res
   Print("Txt: ",Txt);
   Print("EncodeRes: ",EncodeRes);
   
   Print("DecodedTxt: ",DecodedTxt);
   Print("DecodeRes: ",DecodeRes);
   
//---
   return;
}
 
Marat Sultanov:

Questo bug sembra essere apparso nelle ultime build di MT5.

Il bug è nelle funzioni CryptEncode() e CryptDecode(). Problema con il metodo di conversione CRYPT_AES256

Potete riprodurre il bug nell'ultima build (2009) con questo script:

La correzione apparirà molto probabilmente solo quando si aggiorna a una nuova build.
 
Vitaly Muzichenko:

Qui nella costruzione dal 2007

Era sempre 0,01 e ora non è chiaro:


Mostra il codice di uscita