Fehler, Irrtümer, Fragen - Seite 2426

 
Alexandr Gavrilin:

Was zum Teufel ist mit der doppelten Schrift in den neuesten Versionen des Metaeditors los? Sowohl in mt4 als auch in mt5 wird anstelle von -0,01 irgendein Unsinn geschrieben. Woher kommen diese Zahlen, die Variablen sind in meinem Fall auf Null gesetzt.

Ich muss den Speicher ändern. Das war auch in älteren Versionen so.

 

verhält sich der Compiler in denselben Fällen unterschiedlich.

Ich habe 2 Dateien von kodobase heruntergeladen:https://www.mql5.com/en/code/15440

wurden gemacht, offensichtlich bevor iTime() erschien. Einer von ihnen kompiliert, der andere flucht:

Die Funktionen sind identisch:

ruft auch an.

Der Grund für das Schimpfen ist offensichtlich, verständlich und durch die automatische Ersetzung leicht zu beheben, aber das unterschiedliche Verhalten in ähnlichen Situationen ist alarmierend.

PS:

Der kompilierte Indikator arbeitet korrekt.

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:

Sie müssen den Speicher ersetzen. Und genau so war es auch in den alten Versionen.

Welche Erinnerung? Was hat das mit dem Gedächtnis zu tun?

 

Ich habe den folgenden Code ausgeführt:

 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);

Und erhielt ein seltsames Ergebnis:

Старт 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

D.h. SymbolInfoTick mit dem ersten Parameter gleich "" gibt aus irgendeinem Grund den letzten Tick des Diagrammsymbols anstelle von false und einem Tick aus Nullen zurück. Obwohl dies nach der Definition in der Dokumentation nicht der Fall sein sollte.

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

Eigentum streng?

 
Alexandr Gavrilin:

Was zum Teufel ist mit der doppelten Schrift in den neuesten Versionen des Metaeditors los? Sowohl in mt4 als auch in mt5 wird anstelle von -0,01 irgendein Unsinn geschrieben. Woher kommen diese Zahlen? Ich habe die Variablen auf Null gesetzt.

Dies ist die Version von 2007.

Es war immer 0,01, aber jetzt verstehe ich es nicht mehr:


 
Andrei Trukhanovich:

Eigentum streng?

sind in beiden Fällen gleich:

Ich habe es nicht bis zum Symbol überprüft (wie oben erwähnt - der Code ist nicht von mir), aber bei einem flüchtigen Blick sind sie zu 95 % identisch. Und der Unterschied liegt nicht in den Stellen, an denen der Fehler auftaucht. Aber aus irgendeinem Grund kompiliert das eine, das andere nicht. Ich habe das Problem bereits für mich selbst behoben, aber ich informiere die Entwickler über diese Merkwürdigkeit.

 

Dieser Fehler scheint in den letzten Builds von MT5 aufgetaucht zu sein.

Der Fehler liegt in den Funktionen CryptEncode() und CryptDecode(). Problem mit der Konvertierungsmethode CRYPT_AES256

Sie können den Fehler in der neuesten (2009) Version mit diesem Skript reproduzieren:

//+------------------------------------------------------------------+
//| 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:

Dieser Fehler scheint in den letzten Builds von MT5 aufgetaucht zu sein.

Der Fehler liegt in den Funktionen CryptEncode() und CryptDecode(). Problem mit der Konvertierungsmethode CRYPT_AES256

Sie können den Fehler im letzten (2009) Build mit diesem Skript reproduzieren:

Forum für Handel, automatisierte Handelssysteme und Strategietests

CryptEncode in MT5 2009 liefert ein anderes Ergebnis

Ilyas, 2019.04.08 10:28

Vielen Dank für diesen Beitrag.

Der Fehler bei der AES-Verschlüsselung wurde behoben.


Der Fix wird höchstwahrscheinlich nur beim Upgrade auf ein neues Build erscheinen.
 
Vitaly Muzichenko:

Hier im Bau seit 2007

Es war immer 0,01 und jetzt ist es nicht klar:


Ausgabecode anzeigen
Grund der Beschwerde: