Neues MetaTrader 4 Client Terminal 387 und MetaTrader 4 Data Center Build 387 - Seite 8

 
Es ist keine Fehlermeldung, also gibt es auch keine Reaktion.
 

Sie finden es also in Ordnung?

Wenn ja, wer braucht ihn, den 387-388er?

Viele Leute arbeiten noch an 225. Die Menschen brauchen Stabilität.

 

Beim Start der Optimierung dieses EA s gibt MT4 eine Meldung aus, dass nicht genug RAM auf diesem Computer vorhanden ist (6GB oo) und startet die Optimierung. Die Schaltfläche "Start" bleibt anstelle von "Stop" aktiv. Insgesamt handelt es sich eindeutig um eine Störung. Der Vorgängerbau litt nicht unter einem solchen Unsinn.

 
Renat:
Es ist keine Fehlermeldung, also gibt es auch keine Reaktion.

:)))

(c) "Siehst du ein Erdhörnchen? Nein! Ich auch nicht. Aber du schon!"

Dateien:
 

In den Builds 387-388 erfolgt die Neuinitialisierung von benutzerdefinierten Indikatorpuffern zu unvorhersehbaren Zeiten. Das ist nicht gut.

Wenn die Neuinitialisierung so notwendig ist, kann die Lösung wie folgt aussehen.

Wir führen eine zusätzliche Funktion in mql4 ein, die eine solche Neuinitialisierung verbieten oder erlauben kann.

Wir führen eine boolesche Funktion ein, die TRUE zurückgibt, wenn das Terminal sie reinitialisiert, andernfalls gibt sie FALSE zurück. Die zweite Funktion ist gültig, wenn die erste Funktion eine Neuinitialisierung zulässt.

Auf diese Weise werden alle Probleme gelöst. Wer es braucht, kann die automatische Neuinitialisierung durch die erste Funktion ermöglichen. Gleichzeitig kann er mit der zweiten Funktion die Zeiten der Neuinitialisierung kontrollieren.

Es ist möglich, dies alles in einer Funktion zu kombinieren. Es liegt im Ermessen der Entwickler.

Und alle sind zufrieden. Die Fehler werden beseitigt. Und die Programmierer von Drittanbietern - die Individualprogrammierer - sind gegen Überraschungen versichert.

Das ist eine schöne Lösung.

 
Akkarin:

Beim Start der Optimierung dieses EA s gibt MT4 eine Meldung aus, dass nicht genug RAM auf diesem Computer vorhanden ist (6GB oo) und startet die Optimierung. Die Schaltfläche "Start" bleibt anstelle von "Stop" aktiv. Insgesamt handelt es sich eindeutig um eine Störung. Die vorherige Version hatte diesen Fehler nicht.

Leider haben Sie keine Ausgangsdaten, Testparameter oder Protokolle angegeben.

Außerdem beziehen Sie sich auf die Bibliotheken (DLL), die nicht nur viele Installationen erfordern, sondern auch nicht funktionieren, weil zusätzliche Bibliotheken fehlen (das ist der Autor der Bibliotheken, der die zusätzlichen DLL-Dateien vergessen hat).

Wenden Sie sich für Informationen an den Autor dieser Bibliotheken.

 
nen:

In den Builds 387-388 erfolgt die Neuinitialisierung von benutzerdefinierten Indikatorpuffern zu unvorhersehbaren Zeiten. Das ist nicht gut.

Offenbar wollen Sie Ihren aufgeblähten Code nicht überprüfen, sondern versuchen, das Problem auf uns abzuwälzen. Ihre Rhetorik ist absolut durchschaubar - "das ist nicht mein Problem".

Das ist mir egal. Ich habe kein Problem damit. Ich kann es wiederherstellen, damit es richtig funktioniert. Aber ich kann nicht alle Indikatoren, die andere Leute verwenden, neu erstellen.

Sie ersetzen auch die Bedeutung von "starke Veränderungen in der Geschichte führen dazu, dass eine vollständige Neuberechnung erforderlich ist" durch "unvorhersehbare Momente". Sie sind vorhersehbar - die Geschichte hat sich geändert, was eine vollständige Neuinitialisierung erforderlich machte. Wenn Ihr Code diese Situation nicht wahrhaben will und sich nicht selbst neu berechnen will, dann betreiben Sie Selbsttäuschung.

Demonstrieren Sie das Problem mit einer vollständigen Aufschlüsselung. Nicht in Worten, sondern mit klaren Einstellungen, Code, Protokollen, klaren Screenshots usw.

Als Programmierer ist es ratsam, technisch untermauerte, klar beschriebene Schritt-für-Schritt-Diskussionen zu führen. Einzelne Links und verstreute, unzusammengesetzte Meldungen stellen keinen Fehlerbericht dar.

Die Qualität eines Berichts wird durch die Reproduzierbarkeit seines Problems durch externe Nutzer bestimmt. Soweit ich weiß, war bisher niemand (einschließlich der Entwickler) in diesem Thread in der Lage, Ihr Problem zu reproduzieren.

 

Renat.

Ich frage mich, ob Sie hoffen können, dass die benutzerdefinierten Indikatoren nach einem Test im Testprogramm wieder gerendert werden. Ich habe LiveUpdate auf einigen Terminals vorläufig deaktiviert. Sie sehen, für uns - die Schöpfer der Forex Trading "Filme" - ist es nicht genug zu lesen oder zu schreiben Skripte und sehen den Film ohne Bilder, sondern nur mit Ton. Wir müssen sehen, was wir dort gemacht haben, und wie gut.

Es gab sogar Überlegungen, dass die Entwickler das Rendering in MT4 deaktiviert haben, weil MT5 sich nicht gut entwickelt. Wenn ja, stellt sich vielleicht heraus, dass die Händler und Makler eine Sache brauchen und Sie versuchen, eine andere durchzusetzen. Vielleicht sollten Sie dann Ihren Standpunkt in dieser Hinsicht ändern.

Und wenn es durch übereilte technische Entscheidungen verursacht wird, die den Entwicklern von Fachleuten so viel Schaden zugefügt haben, dann sollten Sie als Programmierer die Fahne in der Hand haben, alles wieder gut zu machen.

Können wir also auf eine baldige Lösung dieses Problems hoffen?

 

Gut.

Die visuelle Prüfung. Moving Average Expert Advisor.

Einstellung der ZUP.

Euro. Arbeitszeiten.

Bitte beachten Sie, dass mein Code den Tausch der Historie verfolgt. Es wird also neu initialisiert, wenn die Geschichte ausgetauscht wird.

Früher in diesem Zweig habe ich ein Stück Code gepostet. Alle Optimierungen sind vorhanden.

Ich füge hier Bilder ein. Mein "aufgeblähter" Code ist für das Zeichnen von Bildern gedacht, das ist alles. Sie befasst sich nicht mit automatischem Handel. Wenn ein Bild nicht korrekt gezeichnet wird, handelt es sich um einen Fehler.

Erstes Bild. Eine kleine Geschichte. Ein Strahl wird gezeichnet. Alles ist normal.

Fast unmittelbar nach Beginn des Tests wurden mehrere Zickzack-Strahlen gezeichnet, ein Schmetterling wurde gezeichnet. Normales Fliegen.

Weiteres Fliegen. IHRE Neuinitialisierung ist erfolgt. Die Software kann dies nicht nachvollziehen. ES GIBT KEINE ROUTINEMÄSSIGE MÖGLICHKEIT, DIE NEUINITIALISIERUNG ZU VERFOLGEN.

Da die Berechnungsoptimierung aktiviert ist und es kein Signal für eine vollständige Neuberechnung gibt, sehen wir das Ergebnis:

Es hat sich ein wenig neue Geschichte angesammelt. Ein Zick-Zack-Strahl ist gezeichnet worden:

Wenn wir nun den Indikator zurücksetzen, wird eine Initialisierung durchgeführt, und alles sieht wie folgt aus:

Und so weiter. Es gibt keine interne Möglichkeit, die Neuinitialisierung IHRES Indikatorpuffers zu verfolgen.

Und Sie können den Indikator nicht bei jedem Tick neu berechnen. Machen Sie selbst so ein Chaos. SIE haben schon lange viele Dinge in diesem Sinne getan. Und egal, wie oft wir Ihnen von vielen Fehlern erzählt haben, Sie haben sie nicht verstanden. Und jetzt, wo viele Programmierer es einfach leid sind, mit Ihnen zu kämpfen und ihre eigenen Umgehungen für Ihre Fehler gefunden haben, fangen Sie an, hinterhältige Dinge zu arrangieren.

Ihr Code ist genauso groß geworden. Und Sie haben wenig Ahnung von den Folgen Ihrer Innovationen.

Testen wir es weiter.


Ihre Neuinitialisierung ist erneut mehrmals durchgelaufen. Sie sollte folgendermaßen aussehen:

Ist sie schwer zu reproduzieren? Oder vielleicht wollen Sie das einfach nicht?

Und auch im weiteren Verlauf der Prüfung ist alles wie gehabt.

Schieben Sie die Schuld nicht auf andere. Der Code ist gewachsen.

-------

Abschließend möchte ich es noch einmal sagen. Um mich mache ich mir keine Sorgen. Ich kann jeden Ihrer Fehler selbst programmatisch umgehen. Aber ich werde nicht in der Lage sein, dies mit einer großen Anzahl von Benutzern zu tun.

Ich möchte hinzufügen. Ich habe noch nie einen meiner Indikatoren verkauft und habe auch keinen meiner Indikatoren gegen eine Gebühr entwickelt. Ich denke, wenn Metaquotes alles grundlegend verändern können, wie in 387-388 Builds, wird niemand von außen in der Lage sein, ein gutes Geschäft mit der Entwicklung unter Verwendung von MQL(*)-Sprachen aufzubauen. Sie können Entwicklern von Drittanbietern noch keinen stabilen Entwicklungsrahmen bieten.

Und alle bezahlten Entwicklungen, die Ihre Sprachen verwenden, betrachte ich derzeit als eine Art von Betrug.

 
nen:

Gut.

Die visuelle Prüfung. Moving Average Expert Advisor.

Einstellung der ZUP.

Euro. Arbeitszeiten.

Bitte beachten Sie, dass mein Code den Tausch der Historie verfolgt. Es wird also neu initialisiert, wenn die Geschichte ausgetauscht wird.

Zu Beginn dieses Threads habe ich ein Stück Code gepostet. Alle Optimierungen sind vorhanden.

Ich füge hier Bilder ein. Mein "aufgeblähter" Code ist für das Zeichnen von Bildern gedacht, das ist alles. Sie befasst sich nicht mit automatischem Handel. Wenn ein Bild nicht korrekt gezeichnet wird, handelt es sich um einen Fehler.

Erstes Bild. Eine kleine Geschichte. Ein Strahl wird gezeichnet. Alles ist normal.

Fast unmittelbar nach Beginn des Tests werden mehrere Zickzack-Strahlen gezeichnet, ein Schmetterling wird gezeichnet. Normales Fliegen.

Weiteres Fliegen. IHRE Neuinitialisierung ist erfolgt. Die Software kann dies nicht nachvollziehen. ES GIBT KEINE ROUTINEMÄSSIGE MÖGLICHKEIT, DIE NEUINITIALISIERUNG ZU VERFOLGEN.

Da die Berechnungsoptimierung aktiviert ist und es kein Signal für eine vollständige Neuberechnung gibt, sehen wir das Ergebnis:

Es hat sich ein wenig neue Geschichte angesammelt. Ein zickzackförmiger Strahl wurde gezeichnet:

Wenn wir nun den Indikator zurücksetzen, wird eine Initialisierung durchgeführt, und alles sieht wie folgt aus:

Und so weiter. Es gibt keine interne Möglichkeit, die Neuinitialisierung IHRES Indikatorpuffers zu verfolgen.

Und Sie können den Indikator nicht bei jedem Tick neu berechnen. Machen Sie selbst so ein Chaos. SIE haben schon lange viele Dinge in diesem Sinne getan. Und egal, wie oft wir Ihnen von vielen Fehlern erzählt haben, Sie haben sie nicht verstanden. Und jetzt, wo viele Programmierer es einfach leid sind, mit Ihnen zu kämpfen und ihre eigenen Umgehungen für Ihre Fehler gefunden haben, fangen Sie an, hinterhältige Dinge zu arrangieren.

Ihr Code ist genauso groß geworden. Und Sie haben wenig Ahnung von den Folgen Ihrer Innovationen.

Testen wir es weiter.


Ihre Neuinitialisierung ist erneut mehrmals durchgelaufen. Sie sollte folgendermaßen aussehen:

Ist sie schwer zu reproduzieren? Oder vielleicht wollen Sie das einfach nicht?

Und auch im weiteren Verlauf der Prüfung ist alles wie gehabt.

Schieben Sie die Schuld nicht auf andere. Der Code ist gewachsen.

-------

Abschließend möchte ich es noch einmal sagen. Um mich mache ich mir keine Sorgen. Ich kann jeden Ihrer Fehler selbst programmatisch umgehen. Aber ich werde nicht in der Lage sein, dies mit einer großen Anzahl von Benutzern zu tun.

Ich möchte hinzufügen. Ich habe noch nie einen meiner Indikatoren verkauft und habe auch keinen meiner Indikatoren gegen eine Gebühr entwickelt. Ich denke, wenn Metaquotes alles grundlegend verändern können, wie in 387-388 Builds, wird niemand von außen in der Lage sein, ein gutes Geschäft mit der Entwicklung unter Verwendung von MQL(*)-Sprachen aufzubauen. Sie können Entwicklern von Drittanbietern noch keinen stabilen Entwicklungsrahmen bieten.

Und alle bezahlten Entwicklungen, die Ihre Sprachen verwenden, halte ich derzeit für eine Art von Betrug.

GUT. Okay, lassen wir noch einmal alle Emotionen beiseite und gehen wir ruhig mit der Situation um.

Was ist gegeben - Sichtprüfung. Führen wir visuelle Tests durch und wenden wir denselben Indikator für die Protokollierung an. Nach all diesen Testläufen ergibt sich ein trauriges Bild.

Name;Time;GetTickCount;Bars;LastBarsCount;IndicatorCounted
IndicatorCounted() == 0;2011.02.28 09:39:12;156609840;107;107;0
Новый бар;2011.02.28 09:39:12;156610324;108;107;106
Новый бар;2011.02.28 09:39:13;156610838;109;108;107
... (вырезал)
Новый бар;2011.02.28 09:39:23;156621602;128;127;126
Новый бар;2011.02.28 09:39:24;156621758;129;128;127
IndicatorCounted() == 0;2011.02.28 09:39:24;156622180;2648;2648;0
Новый бар;2011.02.28 09:39:24;156622289;130;129;128
Новый бар;2011.02.28 09:39:25;156622819;131;130;129
Новый бар;2011.02.28 09:39:25;156623147;132;131;130
... (вырезал)
Новый бар;2011.02.28 09:39:31;156629699;144;143;142
Новый бар;2011.02.28 09:39:32;156630027;145;144;143
Новый бар;2011.02.28 09:39:32;156630385;2649;2648;2647
Новый бар;2011.02.28 09:39:33;156631009;146;145;144
Новый бар;2011.02.28 09:39:33;156631399;147;146;145
... (вырезал)
Новый бар;2011.02.28 09:40:15;156673364;275;274;273
Новый бар;2011.02.28 09:40:16;156673785;276;275;274
Новый бар;2011.02.28 09:40:16;156673878;277;276;275
IndicatorCounted() == 0;2011.02.28 09:40:16;156673956;2649;2649;0
IndicatorCounted() == 0;2011.02.28 09:40:16;156674081;2649;2649;0
Новый бар;2011.02.28 09:40:16;156674159;278;277;276
Новый бар;2011.02.28 09:40:16;156674612;279;278;277
... (вырезал)

Новый бар;2011.02.28 09:40:27;156684986;314;313;312

Etwas ist genau im visuellen Testmodus schief gelaufen - es gibt Datensätze mit Balken gleich 2648 statt der erwarteten 130, aber wieder 130 beim nächsten Tick/Balken.

Das ist der Grund, und eine vollständige Neuinitialisierung hat absolut nichts damit zu tun, insbesondere nicht bei jedem Tick.

Angst vor den Augen und die Hände machen die Arbeit. Genau 10 Minuten, um den Fehler zu finden und zu beschreiben.