Fehler, Irrtümer, Fragen - Seite 940

 

Guten Tag.

Können Sie mir sagen, was man tun kann ...

Anstelle von C:\Programmdateien\MT 5 ......... allesgeht in C:\Benutzer\Iam\AppData\Roaming\MetaQuotes\Terminal\...

MT 5 wurde mehrmals deinstalliert und wieder installiert - gleiches Ergebnis. All dies geschah nach der Installation von Windows 8.

Mit freundlichen Grüßen, E.Kovalev

 
erkov:

Guten Tag.

Können Sie mir sagen, was man tun kann ...

Anstelle von C:\Programmdateien\MT 5 ......... allesgeht in C:\Benutzer\Iam\AppData\Roaming\MetaQuotes\Terminal\...

MT 5 wurde mehrmals deinstalliert und wieder installiert - gleiches Ergebnis. All dies geschah nach der Installation von Windows 8.

Mit freundlichen Grüßen, E. Kovalev

Ich habe das Gleiche auf meinem Desktop 7 und alle Expert Advisors, Einführungen usw. sind darauf installiert.

Offenbar handelt es sich um eine "Voreinstellung".

ich würde es auch gerne ändern? es ist nicht bequem, den Ordner zu erreichen....

 
Zugriffsverletzung beim Schreiben auf 0x000000001535C1D8


Das Skript ruft denselben Indikator in einer Schleife auf, nur die Parameter ändern sich. Nach etwa 300 Aufrufen erscheint diese Meldung

Am Anfang der Schleife wird ein Handle erstellt

den Indikator aufrufen

am Ende eines jeden Zyklus IndicatorRelease(...) setzen;

vielleicht muss etwas anderes den Indikator entfernen

 
vgeny:

Ich habe das Gleiche auf meinem 7er, alle EAs, Einleitungen usw. sind dort platziert.

dies muss die "Standardeinstellung" sein.

Ich frage mich auch, wie man es ändern? es ist nicht bequem, um den Ordner zu bekommen....

Schauen Sie in der integrierten Hilfe des Terminals nach - MetaTrader 5 HelpStart Menu → Run Terminal:

Gast-Modus

Die Besonderheit des Gastmodus des Client-Terminals besteht darin, dass die bearbeitbaren Dateien getrennt von den unveränderbaren Dateien gespeichert werden. Dieser Modus wird aktiviert, wenn das Terminal im Systemordner (Betriebssystemordner, Programme) installiert ist und die Schreibrechte des Benutzers dort eingeschränkt sind.

Der Gastmodus wird auch in den folgenden Situationen aktiviert:

  • Wenn UAC (Benutzerkontensteuerung) aktiviert ist.
  • Wenn Sie eine Verbindung zu einem Computer aus der Ferne herstellen (Remote Desktop Protocol, RDP).

In den oben genannten Fällen werden alle veränderbaren Terminaldateien, je nach verwendetem Betriebssystem, in den folgenden Verzeichnissen gespeichert:

Microsoft Windows XP:

  • C:\Dokumente und Einstellungen\Benutzername\Anwendungsdaten\MetaQuotes\Terminal\instance_id\

Microsoft Windows Vista und höher:

  • C:\Benutzer\Benutzername\Anwendungsdaten\Roaming\MetaQuotes\Terminal\instance_id\

Dabei ist "C" der Buchstabe eines logischen Laufwerks, auf dem das Betriebssystem installiert ist, "username" ist der Kontoname im Betriebssystem, unter dem das Terminal installiert wurde, und "instance_id" ist eine eindeutige Kennung, die auf der Grundlage des Pfads zu einem Verzeichnis erzeugt wird, in dem das Terminal installiert ist.

Für den schnellen Zugriff auf diese Verzeichnisse bietet das Terminal einen speziellen Befehl - "Öffnen Sie das Datenverzeichnis Datenverzeichnis öffnen" im Menü "Datei".

  • Im Gastmodus hat jedes Windows-Konto ein anderes Verzeichnis zum Speichern der geänderten Terminaldateien.
  • Um zu erzwingen, dass das Terminal im Hauptmodus startet, starten Sie es von der Kommandozeile aus mit dem Schalter /portable.
  • Eine ausführliche Beschreibung der Struktur der Client-Terminal-Dateien und ihrer Zwecke finden Sie im entsprechenden Abschnitt.

Wenn Sie keine Probleme mit dem Sicherheitssystem haben wollen, installieren Sie das Terminal nicht im Ordner/Programme/ .

Lesen Sie auch den Artikel A Quick Dive into MQL5


 
vgeny: vor dem Drucken

k2 = NormalizeDouble(k2, 2);

Im Logbuch steht Folgendes

0.07000000000000001

und nur wenn der Koeffizient 0,07 beträgt

Typ k2 double k2;

was kann das sein?

Offenbar sieht diese Zahl nach der Normalisierung genau so aus. Schauen Sie in den Verweis auf den Hinweis, der die Funktion NormalizeDouble() beschreibt : Was wird in der folgenden Zeile ausgegeben?

Print("DoubleToString(a,8)=",DoubleToString(a,8)); // выведем с заданной точностью

Документация по MQL5: Преобразование данных / NormalizeDouble
Документация по MQL5: Преобразование данных / NormalizeDouble
  • www.mql5.com
Преобразование данных / NormalizeDouble - Документация по MQL5
 
vgeny: Zugriffsverletzung beim Schreiben auf 0x000000001535C1D8

Das Skript ruft denselben Indikator in einer Schleife auf, nur die Parameter ändern sich. Nach etwa 300 Aufrufen erscheint diese Meldung

Ich bilde ein Handle am Anfang der Schleife, rufe den Indikator auf, am Ende jeder Schleife setze ich IndicatorRelease(...);

vielleicht muss etwas anderes den Indikator entfernen

Ein kontinuierlicher Indikatoraufruf in einer Schleife? Das ist ein sehr schwieriger Weg. Hier finden Sie den Anfang und lesen Sie das ganze Thema sorgfältig: In der Tat ist in 99% der Fälle der IndicatorRelease-Aufruf ein logischer Fehler des Programmierers
 
vgeny:

Bitte teilen Sie uns mit, warum dies mit der Schleifenleitung passiert

for(k2 = 0,01; k2 < 0,1; k2 += 0,01)

Ich sende den Koeffizienten k2 zum Drucken

Drucken(k2);

vor dem Drucken

k2 = NormalizeDouble(k2, 2);

Im Journal sieht es so aus

0.07000000000000001

und nur wenn der Koeffizient 0,07 beträgt

Typ k2 double k2;

was kann das sein?

Diese Frage ist bereits mehrfach diskutiert worden.

Lesen Sie es hier.

 
Yedelkin:
Der kontinuierliche Aufruf des Indikators in einer Schleife ist eine sehr schwierige Methode. Hier finden Sie den Anfang und lesen Sie das ganze Thema sorgfältig: In der Tat ist der IndicatorRelease-Aufruf in 99% der Fälle ein logischer Fehler des Programmierers

ok 900 Seiten))

Empfehlen Sie einen anderen Weg, um die Indikatorlinie zu prüfen, 10000 verschiedene Varianten von Indikatorparametern, das Ergebnis jedes einzelnen prüfe ich auf Streuung usw., speichere das Ergebnis, nehme den nächsten Parameter usw.

Wenn Sie zum Beispiel die MA, 10000 Perioden in Betracht ziehen, wie würden Sie dies umsetzen?

 
alexvd:

Das Thema wurde bereits mehrfach erörtert.

Lesen Sie es hier.

OK, ich danke Ihnen für Ihre Geduld und Ihr Verständnis)))))))
 

vgeny:

Yedelkin:
Kontinuierlicher Indikatoraufruf in einer Schleife? Das ist ein sehr schwieriger Weg. Hier, finden Sie den Anfang und lesen Sie sorgfältig das ganze Thema: In der Tat, in 99% der Fälle ist der IndicatorRelease Aufruf ein logischer Fehler des Programmierers

ok 900 Seiten))

Nein, nicht 900 Seiten. Das Thema über die ineffiziente Verwendung von IndicatorRelease() wird wahrscheinlich nicht mehr als 10 Seiten in der Nähe dieses Links bekommen. Deshalb habe ich Ihnen geraten, "den Anfang" des Themas zu finden. Sie müssen dafür nicht den allgemeinen Zweig "Fehler, Bugs, Fragen" erneut lesen.

vgeny : Ich werde Ihnen einen anderen Weg empfehlen, die Indikatorlinie zu untersuchen, ich werde das Ergebnis jedes Parameters untersuchen, ich werde das Ergebnis speichern und das nächste nehmen und so weiter.

D.h. Sie benötigen 10 Tausend Indikatoren zur Analyse (10 Tausend Versionen eines Indikators mit unterschiedlichen Parametern)? Ich glaube, die Antwort auf diese Frage wurde bereits gegeben - versuchen Sie, die Forumsthemen mit dem Stichwort IndicatorRelease zu durchsuchen.

vgeny : Wenn Sie zum Beispiel MA, 10000 Perioden in Betracht ziehen würden, wie würden Sie es umsetzen?

Es ist schwer zu beantworten, wenn man den Sinn der Verwendung einer so großen Anzahl von Punkten/Parametern nicht versteht. Aber theoretisch würde ich auf die Idee verzichten, 10 Tausend Standardindikatoren zu verwenden (10 Tausend Versionen eines Standardindikators mit unterschiedlichen Parametern) und meinen eigenen Indikator (einen) schreiben, der 10 Tausend Werte bei jedem Tick und andere abgeleitete Parameter neu berechnet. Und es minimiert die Anzahl der Indikatorpuffer - Sie brauchen die berechneten Daten, nicht deren Spiegelung auf dem Diagramm. Und es muss geprüft werden, ob ein solcher Hybrid alle Berechnungen innerhalb eines Ticks durchführt. Oder in einer Minute, wenn Ihre Analyse eine minütliche Neuberechnung zulässt, anstatt Tick für Tick.

Hier ist ein einfaches Beispiel - Bollinger Bands. Sie können drei verschiedene Indikatoren verwenden - für die mittlere, die obere und die untere Linie. Oder Sie können sie alle elegant in einem Indikatorprogramm kombinieren.