Fehler, Irrtümer, Fragen - Seite 2422

 

bild 2009

Die Daten, die von den höheren TFs in der Online-Karte empfangen werden, unterscheiden sich von den Daten, die im Testgerät empfangen werden. Dieser Fehler macht es unmöglich, Expert Advisors mit Daten von höheren TFs korrekt zu testen.

Reproduzierte Minimalbeispiele im Anhang, das Skript für den Chart und der Expert Advisor für den Tester schreiben Daten in eine Datei zum weiteren Vergleich.

Der Screenshot der beiden entsprechenden Dateien zeigt deutliche Unterschiede:

Fehler

Dateien:
 
Andrey Dik:

bild 2009

Die Daten, die von höheren TFs in der Online-Karte empfangen werden, unterscheiden sich von den Daten, die im Testgerät empfangen werden. Dieser Fehler macht es unmöglich, Expert Advisors mit Daten von höheren TFs korrekt zu testen.

Reproduzierte Minimalbeispiele im Anhang, das Skript für den Chart und der Expert Advisor für den Tester schreiben Daten in eine Datei zum weiteren Vergleich.

Der Screenshot der beiden entsprechenden Dateien zeigt deutliche Unterschiede:

Und ja, dieser Fehler kann vermieden werden, indem man unabhängig höhere TFs aus der Tick-Historie konstruiert, aber das bedeutet nicht, dass man die fehlerhafte Funktionsweise der Funktionen i(o,h,l,c), iOpen, etc. im Tester ignorieren kann.

 
Andrey Dik:

Haben Sie meine Codes überprüft? Wenn Ihnen meine Tests nicht gefallen, schreiben Sie Ihre eigenen, "richtigen" Tests. Wenn Sie einen Test für den von Ihnen genannten Fehler durchgeführt haben, posten Sie ihn hier. Sie wollen sich nicht die Mühe machen, das zu überprüfen? - Mein Fehlerbericht ist nicht für Sie, sondern für die Entwickler.
Ich benutze MT5 seit den Betatests der Plattform, und es ist nicht an Ihnen, mich zu belehren.

Es besteht keine Notwendigkeit, Ihre Codes auszuführen. Sie verstehen das Problem wirklich nicht?

Das Skript liest die Balkenstände für heute. Der Expert Advisor liest die Balkenstände ab dem aktuellen Testzeitpunkt.

 
Slava:

Es besteht keine Notwendigkeit, Ihre Codes auszuführen. Verstehen Sie das Problem wirklich nicht?

Das Skript liest die Balkenstände von heute. Der Expert Advisor liest die Balkenstände ab dem aktuellen Testzeitpunkt.

Slawa, unter dem Druck deiner Autorität habe ich an meinem Handeln gezweifelt... Aber nur für einen Moment, weil ich mich daran erinnerte, dass ich gerade den Moment überprüfte, von dem du mir erzählt hast und der die Zeit der höheren TFs zusammen mit ihren Preisen anzeigt.

Aber speziell für Sie habe ich es gemacht - jetzt gibt es in einer Zeile alles aus, was Sie brauchen, um das Problem zu sehen.... Sie wollen nicht sagen, dass iTime die Zeit korrekt zurückgibt, aber die Preise iOpen, iHigh, iLow, iClose - falsch und das ist normal?

Achten Sie bitte auch besonders auf die Linie:

int bar = iBarShift (NULL, tf, time, false);

In der betreffenden Funktion ist bar ein Index im Array, der auf der Grundlage der Zeit ermittelt wird. Unabhängig davon, ob er für heute, gestern oder vorgestern angefordert wird, wird der bar-Index anhand der in den Funktionsparametern angeforderten Zeit zurückgegeben.

Die beigefügten Beispiele zeigen die Zeit der TFs, ich empfehle dringend, dass Sie noch laufen sie und stellen Sie sicher, dass Sie das Problem selbst, anstatt zu hören, um zufällige Passanten, die sich nicht die Mühe machen, in die problematische, schauen Sie sich den Code und führen Sie es.

Ich verstehe den Standpunkt der Verwaltung nicht... Wollte das Problem zeigen, wollte das Beste, aber es stellt sich heraus, wie immer...

Dateien:
 
Pavel Nikiforov:

Ich habe ein solches Problem mit dem Tester begegnet: das erste Mal, wenn wir drücken Sie starten alle der Prozess geht gut, drücken Sie sofort nach, dass - nichts, keine Fehler oder Test. Das Komische ist, dass der Tester nach einigen Minuten Wartezeit wieder funktioniert, aber nur einmal.

Wenn Sie die Optimierung über eine Reihe von Läufen durchführen, gibt sie nach:

EO 2 15:51:28.514 Core 1 genetic pass (0, 0) tested with error "some error after pass finished" at 0:00:00.052

PS 2 15:51:28.615 Core 1 genetic pass (0, 1) tested with error "task rejected by tester agent" in 0:00:00.000

Solche Magie nur mit einem EA, wahrscheinlich das Problem mit ihm und neue Updates, aber wo es zu suchen ist nicht klar, bevor alles funktionierte (zwei Monate ohne es zu berühren).

Im Allgemeinen habe ich es herausgefunden. Falls es jemanden interessiert, es war Sleep(5000); es spielt keine Rolle, wie viele Millisekunden man verwenden kann. Mit anderen Worten: Sleep() sollte den Test nicht beeinflussen und gleichzeitig die erzeugten Ticks für die angegebene Zeit "abspielen". Bisher habe ich keinen Zusammenhang zwischen Sleep() und einem bestimmten Code des Expert Advisors gefunden. Dieses Problem existiert nicht in anderen Eulen, aber es ist noch nie aufgetreten und wenn Sie ähnliche Probleme haben, sollten Sie darauf achten.

 
Andrey Dik:

Slawa, unter dem Druck deiner Autorität zögerte ich mit meinem Handeln... Aber nur für einen Moment, denn mir fiel ein, dass ich den von Ihnen erwähnten Punkt überprüfte, indem ich auch die Zeit älterer TFs zusammen mit ihren Preisen anzeigte.

Aber speziell für Sie habe ich es gemacht - jetzt gibt es in einer Zeile alles aus, was Sie brauchen, um das Problem zu sehen.... Sie wollen nicht sagen, dass iTime die Zeit korrekt zurückgibt, aber die Preise iOpen, iHigh, iLow, iClose - falsch und das ist normal?

Achten Sie bitte auch besonders auf die Linie:

In der betreffenden Funktion ist bar ein Index im Array, der auf der Grundlage der Zeit ermittelt wird. Unabhängig davon, ob er für heute, gestern oder vorgestern angefordert wird, wird der bar-Index anhand der in den Funktionsparametern angeforderten Zeit zurückgegeben.

Die beigefügten Beispiele zeigen die Zeit der TFs, ich empfehle dringend, dass Sie noch laufen sie und stellen Sie sicher, dass Sie das Problem selbst, anstatt zu hören, um zufällige Passanten, die sich nicht die Mühe machen, in die problematische, schauen Sie sich den Code und führen Sie es.

Ich verstehe den Standpunkt der Verwaltung nicht... Ich wollte dir zeigen, dass es ein Problem gibt, ich wollte das Beste, aber es ist so gekommen, wie es immer kommt...

Ich habe versucht, CopyRates () in Expert Advisor zu verwenden, das Ergebnis war dasselbe wie bei i(), die Zeit stimmt überein, aber die Preise nicht.

 

Im folgenden Beispiel tritt ein Fehler auf, wenn versucht wird, ein Objekt mit einem konstanten Feld zu kopieren, obwohl der überladene Operator = vorhanden ist. Und der Text der Fehlermeldung entspricht nicht einmal der Ursache des Fehlers, denn der Schutz hat damit nichts zu tun.

class A
{
};

class B
{
  A _data;
 public:
  const A*const Data;
  
  B() : Data(&_data) { }
  
  void operator=(const B &other) { _data= other._data; }
};

struct  C
{
  B b;
};

void OnInit()
{
  B b;
  b=b; // Так работает
  C c;
  c=c; // '=' - not allowed for objects with protected members or inheritance
}
 
Wie lade ich den Code von Russian ME aus der englischsprachigen KB herunter?
 
Andrey Dik:

Slawa, unter dem Druck deiner Autorität zögerte ich mit meinem Handeln... Aber nur für einen Moment, denn mir fiel ein, dass ich den von Ihnen erwähnten Punkt überprüfte, indem ich auch die Zeit älterer TFs zusammen mit ihren Preisen anzeigte.

Aber speziell für Sie habe ich es getan - jetzt zeigt es in einer Zeile alles an, was Sie brauchen, um das Problem zu sehen.... Sie wollen nicht sagen, dass iTime die Zeit korrekt zurückgibt, aber die Preise iOpen, iHigh, iLow, iClose - falsch und das ist normal?

Achten Sie bitte auch besonders auf die Linie:

In der betreffenden Funktion ist bar ein Index im Array, der auf der Grundlage der Zeit ermittelt wird. Unabhängig davon, ob er für heute, gestern oder vorgestern angefordert wird, wird der bar-Index anhand der in den Funktionsparametern angeforderten Zeit zurückgegeben.

Die beigefügten Beispiele zeigen die Zeit der TFs, ich empfehle dringend, dass Sie noch laufen sie und stellen Sie sicher, dass Sie das Problem selbst, anstatt zu hören, um zufällige Passanten, die sich nicht die Mühe machen, in die problematische, schauen Sie sich den Code und führen Sie es.

Ich verstehe den Standpunkt der Verwaltung nicht... Wollte das Problem zeigen, wollte das Beste, aber es stellt sich heraus, wie immer...

Daran ist niemand interessiert. Die Hauptsache ist, dass der Markt und die Signale funktionieren.
 

Guten Tag.

Baujahr 2007. Das Problem stellt sich wie folgt dar. Ich lasse im Strategietester einen EA auf einen Futures (nicht geklebt) mit Visualisierung laufen. Ich erhalte das folgende Ergebnis

Jetzt entferne ich das Kontrollkästchen "Visualisierung" und erhalte andere Ergebnisse

Ich nehme andere Zeiten, auch Instrumente. Sowohl die Gewinnparameter als auch die Anzahl der Geschäfte sind unterschiedlich. Außerdem habe ich nach einem detaillierten Vergleich von Geschäften festgestellt, dass einige Geschäfte ohne Visualisierung auf der Ebene der Beraterlogik unmöglich sind. Die richtigen Daten können also nur mit Hilfe der Visualisierung ermittelt werden.

Genossen Forumsmitglieder und Entwickler, was ist das und wie geht man damit um? Es ist kostspielig, die ganze Zeit mit Visualisierung über große Zeiträume zu testen, da der Prozess länger dauert als ohne die Visualisierung.

Grund der Beschwerde: