![MQL5 - Sprache von Handelsstrategien, eingebaut ins Kundenterminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Das Debuggen jeder Funktion kann das Problem richtig lokalisieren und eine Aufgabe im SD
Es scheint ein Fehler bei der Berechnung der Leinwandgröße vorzuliegen, denn es wird versucht, eine Gigabyte-Leinwand zu erstellen.
oder ein großes Array wird in einer Art Schleife erstellt
Das Debuggen jeder Funktion kann das Problem richtig lokalisieren und eine Aufgabe im SD
Es scheint ein Fehler bei der Berechnung der Leinwandgröße vorzuliegen, denn es wird versucht, eine Gigabyte-Leinwand zu erstellen.
Oder es wird ein großes Array in einer Art Schleife erstellt
Mehr davon: "...erzeugt ein riesiges Array in einer Art Schleife", denn ich habe definitiv ein Array mit 300 Elementen gesehen, das im RAM lebt. Während der Laptop "atmete", konnte ich 5 GB sehen.
Das Problem ist nur schwebend - zumindest setzen Video-Aufnahme von dem, was auf dem Bildschirm passiert - zu fangen, die Kombinationen führen zu fatalen Ergebnissen.
Bei mir hat es nicht funktioniert
Ich kann es nicht reproduzieren.
Ich habe auch kein klares Playback. Ich habe das gerade gesehen:
Ist das nicht das Problem?
Nein, im Gegenteil, es ist gut.)
Es macht keinen Unterschied. Ein normaler Compiler sollte diese Optimierungen selbst vornehmen.
Nach der Beschreibung zu urteilen, haben wir den Verdacht, dass das Problem mit einem Speicherleck zu tun hat und vielleicht gar nicht im Code liegt.
Nein, es ist das Gegenteil von gut )
Habe es auf das übliche i++ gesetzt und mehr erweiterten Code kompiliert = wieder 5GB :). Ich gebe den Code später, wenn wir schon mal dabei sind...
Dies ist wahrscheinlicher: "...erzeugt ein riesiges Array in einer Art Schleife", denn ich habe definitiv ein Array mit 300 Elementen gesehen, das RAM verursacht. Während der Laptop "atmete", konnte ich 5 GB sehen.
Das Problem ist nur fließend - man könnte genauso gut ein Drittanbieter-Kameravideo von dem, was passiert, auf den Bildschirm bringen, um zu sehen, welche Kombinationen zu einem fatalen Ergebnis führen.
Guten Tag!
Der Grund für das Hängenbleiben ist die Deaktivierung des automatischen Nähens: xAxis.AutoScale(false)
In diesem Fall haben Sie einen sehr großen Bereich von Werten im Array arrX gespeichert:
Und Sie ändern den Wert des Schritts zur Aufteilung der Achse nicht, wenn Sie die Signatur my_graphic.XAxis().DefaultStep() setzen, und da er standardmäßig 25,0 beträgt, ist die Anzahl der Signaturen, die die Bibliothek zu erzeugen versucht, gleich:
Das führt dazu, dass es zwei Möglichkeiten gibt:
Fixiert auf vertrautes i++ und kompiliert mehr erweiterten Code = wieder 5GB :). Ich gebe den Code später ein, während ich hänge...
Irgendwo hier drin:
Schwierigkeiten. Ich spoilere nur diese Zeilen.
Guten Tag!
Die Ursache für das Hängenbleiben ist die Deaktivierung des Auto-Stepping: xAxis.AutoScale(false)
Sie haben einen sehr großen Bereich von Werten im Array arrX gespeichert:
Und Sie ändern den Wert des Schritts zur Aufteilung der Achse nicht, wenn Sie die Signatur my_graphic.XAxis().DefaultStep() setzen, und da er standardmäßig 25,0 beträgt, ist die Anzahl der Signaturen, die die Bibliothek zu erzeugen versucht, gleich:
Das führt dazu, dass es zwei Möglichkeiten gibt:
Danke! Schneiden (entfernen) Sie die Linien mit AutoScale und mit der Stufeneinstellung im Allgemeinen.
Und gleich noch ein Vorschlag: Ich kann für beide Achsen gleichzeitig eine schräge (abgewinkelte) Schrift erstellen (my_graphic.FontSet("Arial",10,0,180);). Können wir diese Methode zur Einstellung der Schriftart (oder des Winkels) nicht für eine separate Achse verwenden?