Fehler, Irrtümer, Fragen - Seite 2295

 
Alexey Navoykov:

Es geht nicht nur um die Sprache.

Worum geht es dann? Ich selbst bin in der Lage, einige Punkte als Bestrebungen zu formulieren. Aber ich glaube nicht, dass ihre Abwesenheit mich im Moment davon abhält, ein TC zu erstellen. Vielleicht sehe ich das zu eng, deshalb frage ich ja.

Praktisch nur aus Gründen der Cloud-Optimierung... Nun, und teilweise für Market. Aber jetzt ist mir natürlich klar, dass der Preis dafür zu hoch war (in Form von verschwendeten Nerven und Zeit). Es gibt einige alternative Möglichkeiten des Cloud Computing, ich kriege es einfach nicht auf die Reihe...

Könnten Sie dennoch einige Zahlen für die Geschwindigkeit Ihres Testers im Mattenmodus nennen?

Offensichtlich haben Sie einige sehr schwere Berechnungen. Vielleicht verwenden Sie ein GA, mit dem Sie nicht zufrieden sind.

Ich selbst verwende benutzerdefinierte Zeichen und volle Übersteuerung. Länger als 10 Stunden verbringe ich nicht mit Optimize. Meistens < 10 Minuten.


ZS Ich habe wahrscheinlich am wenigsten Nerven verbraucht. Ich weiß nicht einmal, wo MT5 die Matten aufaddieren kann. Zeit - nur für Selbststudium, undokumentierte Dinge und Fehlerberichte. Der aktuelle Stand von MT5 ist viel besser als noch vor einem Jahr. Was mir wirklich nicht gefällt, ist, dass die SD-Anforderungen abgeschafft wurden. Ich halte das für eine totale Respektlosigkeit gegenüber der Arbeit anderer Leute. Fast jede Anwendung ist eine lange Fehlerlokalisierung mit Replay. Alles wurde zerstört, es wurden keine Backups erstellt.

 

Fehler bei der Ausführung

void Print( const int& ) { printf( "%s", __FUNCSIG__ ); }
void OnStart()
{
        const int i = 0;
              int j = 0;
        Print( i ); //(1)
        Print( j ); //(2)
}

Ergebnis 1: void Print(const int&)
2: 0

anders. Was ist der Unterschied? Das gleiche wurde erwartet.

 
A100:

anders. Was ist der Unterschied? Das gleiche wurde erwartet.

Aus diesem Grund

void f( const int& ) { printf( "%s", __FUNCSIG__ ); }
void f( int& ) { printf( "%s", __FUNCSIG__ ); }
void OnStart()
{
        const int i = 0;
              int j = 0;
        f( i ); //(1)
        f( j ); //(2)
}
 
fxsaber:

Aus diesem Grund.

Wo ist die Verbindung zu meinem Beispiel? Ersetzen Sie Print durch Print2 und das Ergebnis ist dasselbe!

Falls Sie es nicht verstehen: Aus meinem Beispiel geht hervor, dass int i für Print( const int&) angeblich ungeeignet ist.

 
A100:
Was ist der Zusammenhang mit meinem Beispiel? Ersetzen Sie Print durch Print2 und das Ergebnis ist dasselbe!

Direkte Verbindung! Zwei Unterschriften im Originalbeispiel. Eine davon ist Standard.

Wenn Sie es durch Print2 ersetzen, erhalten Sie nur eine Signatur, die zweimal aufgerufen wird.

 
fxsaber:

Direkte Verbindung! Zwei Unterschriften im Originalbeispiel. Eine davon ist die Standardvariante.

Und was ist Ihre zweite Unterschrift hier? War es das?
void Print( int& )
 
A100:
Und was ist die zweite Unterschrift hier? Ist es wirklich so?

Sie wissen selbst, dass Print in MQL5 etwas Einmaliges für den Benutzer ist. Ich habe Ihnen eine Erklärung gegeben. Wenn es Ihnen nicht gefällt, können Sie es gerne tun.

 
fxsaber:

Sie wissen selbst, dass Print in MQL5 etwas Einmaliges für den Benutzer ist. Ich habe Ihnen eine Erklärung gegeben. Wenn es Ihnen nicht gefällt, können Sie es gerne tun.

Es ist keine Erklärung, denn wenn (2) Standard wäre, würde das folgende Beispiel
#define  PRN             { printf( "%s", __FUNCSIG__ ); }
  void Print( const int& ) PRN //(1) //пользовательская
//void Print(       int& )     //(2) //якобы штатная
  void Print(       int& ) PRN //(3) //пользовательская
void OnStart()
{
        const int i = 0;
              int j = 0;
        Print( i );
        Print( j );
}
hätte in der Kompilierungsphase einen Fehler verursacht: (2) und (3) widersprechen sich. Aber alles wird kompiliert und läuft normal. Und im ersten Beispiel sollte in Ermangelung von void Print(int&) void Print( const int&) anstelle des regulären void Print(...) aufgerufen werden.
 
A100:
Im ersten Beispiel sollte in Ermangelung von void Print(int&) void Print( const int&) anstelle des regulären void Print(...) aufgerufen werden

Das sollte sie nicht.

Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien

Wanzen, Wanzen, Fragen

fxsaber, 2018.09.23 17:08

Sie selbst wissen, dass Print in MQL5 etwas Einmaliges für den Benutzer ist.

Ich verstehe nicht, warum Sie daraus ein Problem machen sollten. Der Standarddruck hat eine seltsame Signatur, die nicht zu den Möglichkeiten von MQL5 passt.

 
fxsaber:

Das sollte es nicht.

Ich wüsste nicht, warum das ein Problem sein sollte. Das eingebaute Print hat eine riesige Signatur, die nicht in die MQL5-Funktionen passt.

Es gibt kein Problem... ... es liegt ein Fehler vor. Ich verstehe auch nicht, warum Sie versuchen, das zu erklären. DerStandarddruck hat die folgende Signatur:

und ist auch in der Lage, mit anderen Funktionen in Konflikt zu geraten (falls erforderlich)