Fehler, Irrtümer, Fragen - Seite 2264

 

Bitte helfen Sie mir, ich kann die Gründe immer noch nicht herausfinden.


Dieser Code kompiliert aus einem unbekannten Grund

class A {};

class B : public A
{
public:
  void f()
  {
    Print(__FUNCTION__);
  }
};

void OnStart()
{
  A a;
  
  ((B*)(&a)).f(); // OK
}

aber es stürzt zur Laufzeit ab. Ich dachte, es sei ein Kompilierungsfehler - keine große Sache.


Aber dann habe ich den Code wie folgt geschrieben

#property script_show_inputs

input string FileName = "Alpari_GBPAUD.ZIP";

#include <Zip\Zip.mqh> // https://www.mql5.com/ru/articles/1971

void OnStart()
{
  CZip Zip;

  Zip.LoadZipFromFile(FileName, 0);

  uchar Bytes[];

  ((CZipFile*)Zip.ElementAt(0)).GetUnpackFile(Bytes);
  Print("UnZip - unpack size " + (string)ArraySize(Bytes) + " bytes.");  
}


Er lässt sich nicht nur kompilieren, sondern wird auch erfolgreich ausgeführt! Ich muss wohl sehr dumm sein, aber ich habe nicht verstanden, warum es ohne Probleme funktioniert.

Leider habe ich es nicht geschafft, es zu lokalisieren, daher das Beispiel mit der ZIP-Zeichenfolge. Und höchstwahrscheinlich wäre es schade, es herauszufinden. Aber das spielt keine Rolle.

 

Terminal (1881) stürzt beim Debuggen ab, wenn die Variable im Binärformat ist

Spielen Sie die Animation ab, um zu sehen

Dies gilt wahrscheinlich nur für Gewerkschaftsvariablen

 
Nikolai Semko:

Terminal (1881) stürzt beim Debuggen ab, wenn die Variable im Binärformat ist

Spielen Sie die Animation ab, um zu sehen

Dies gilt wahrscheinlich nur für Gewerkschaftsvariablen

Vielen Dank für die Nachricht.

Es wurde korrigiert.
Der Fix wird in der nächsten Build enthalten sein.

 
fxsaber:

Bitte helfen Sie mir, ich kann die Gründe immer noch nicht herausfinden.


Dieser Code kompiliert aus einem unbekannten Grund

aber es stürzt zur Laufzeit ab. Ich dachte, das ist ein Kompilierungsfehler - keine große Sache.

...

Sie versuchen, einen Zeiger auf ein Objekt des Typs A in einen Zeiger auf ein Objekt des Typs B umzuwandeln, was ein offensichtlicher Fehler ist, da A nicht von B geerbt wird
 
Ilyas:
Sie versuchen, einen Zeiger auf ein Objekt des Typs A in einen Zeiger auf ein Objekt des Typs B umzuwandeln, was ein offensichtlicher Fehler ist, da A nicht von B geerbt wird

Das verstehe ich. Aber es ist überhaupt nicht klar, warum die gleiche Aktion im ZIP-Bibble-Beispiel funktioniert. Dort ist es genau derselbe Geist.

ZS Ich habe es herausgefunden.

 

Die Hintergrundbeleuchtung geht aus... taucht dann wieder auf


Dateien:
Error1.mqh  1 kb
 

Ich bin auf ein solches Problem gestoßen, als ich dieErgebnisse von vier- und fünfstelligen Werten (insbesondere auf dem kleinen MT4) in MT4 getestet habe. Die Ergebnisse sind signifikant unterschiedlich (5- und 4-stellige Erkennung ist im Expert Advisor implementiert), zumindest steigt die Anzahl der Geschäfte signifikant an. Wer kennt den Grund oder hat ihn vorgeschlagen? Vielleicht hängt es nicht vom Vorzeichen ab, sondern von der Art der Auftragsausführung - normal oder marktgerecht?

P.S. In beiden Fällen wurden die Zitate über Tisckstory geladen.


Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - MetaTrader 5
Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - MetaTrader 5
  • www.metatrader5.com
Тестер стратегий позволяет тестировать и оптимизировать торговые стратегии (советники) перед началом использования их в реальной торговле. При тестировании советника происходит его однократная прогонка с начальными параметрами на исторических данных. При оптимизации торговая стратегия прогоняется несколько раз с различным набором параметров...
 
Guten Tag. Können Sie mir sagen, ob es möglich ist, die Anzeigeeinstellungen des Indikators über den Code des Expert Advisors zu ändern? Zum Beispiel die Farbe oder die Dicke der Linien. Ich danke Ihnen im Voraus.
 
SuhanovDM94:
Hallo, ich möchte meine Gedanken zu diesem Thema mit Ihnen teilen. Wissen Sie, ob Sie die Anzeigeeinstellungen des Indikators im Code des Expert Advisors ändern können? Zum Beispiel die Farbe oder die Dicke der Linien. Ich danke Ihnen im Voraus.

Sie können, aber

  1. Nur zum Zeitpunkt der Erstellung des Indikators
  2. Nur wenn die Farb- und Linieneinstellungen des Indikators in den Eingabeparametern enthalten sind (ein Beispiel für einen solchen Indikator istCustom Moving Average Inputs)

 
SuhanovDM94:
Hallo. Wissen Sie, ob Sie die Einstellungen einer Indikatoranzeige aus dem Code eines Expert Advisors heraus ändern können? Zum Beispiel die Farbe oder die Dicke der Linien. Ich möchte mich im Voraus bei Ihnen bedanken.

Warum sollten Sie die Farbe und die Dicke des EA ändern wollen? Die Leistung wird dadurch in keiner Weise beeinträchtigt. Brauchen Sie es für ein Foto? Ändern Sie dies also in einer Vorlage in den Einstellungen des Indikators.