Fehler, Irrtümer, Fragen - Seite 3039

 
Nikolai Semko:
Ein kleiner Tipp: Sie können alle Diagramme bis auf die benötigten schließen, dann ist der Verbrauch ungefähr so hoch, als ob Sie Ihre Krücke eingesetzt hätten.
 
Andrei Trukhanovich:
Ein kleiner Tipp: Sie können alle Diagramme bis auf das eine, das Sie brauchen, schließen, dann ist der Verbrauch ungefähr so, als ob Ihre Krücke implementiert worden wäre.

altmodische Logik

Ich habe esauf VPS, aber es tut mir leid. Ich möchte durch nichts eingeschränkt werden.
 
Igor Makanu:

Wenn wir jetzt über den Speicherverbrauch sprechen, erinnere ich mich, dass@fxsaber vor ein paar Monaten das gleiche Problem hatte, allerdings beim Laden von Ticks - nach dem Freigeben von Arrays mit Ticks gibt das Terminal den Speicher nicht frei, sondern speichert (für 10 Sekunden?) diese Ticks als Cache

Es ist sehr wahrscheinlich, dass Ihre Anfrage das gleiche Problem haben wird - der Speicherverbrauch wird nicht abnehmen, sondern im Gegenteil zunehmen (in Massen).

Ich verstehe nicht, warum.
Ich weiß, wie man die Funktion ArrayFree verwendet.
Insbesondere werde ich die Funktion, um die ich bitte, nur einmal verwenden. Gleichzeitig muss ich aber auch nicht unbegrenzt einschalten.
Die gesamte Geschichte für ein Tool umfasst ca. 80-100 MB (sowohl im RAM als auch auf der Festplatte). Jetzt sind es etwa 500 MB auf der Festplatte.
Ich schalte das Terminal ein und lade das Array von Strukturen aus der Datei in den Speicher und kann in Ruhe arbeiten. Überhaupt keine Spitzenwerte.
Ich würde eine normale Datenstruktur verwenden. Zum Teufel mit dem vielen Platz. Aber ich brauche Zeit für High und Low.
Ich verwende bereits Ticks in vollem Umfang bei der Gestaltung meiner Datenstruktur, aber sie haben nicht die ganze Tiefe der Geschichte und neigen zu Unstimmigkeiten mit den Minutenbalken. Ich habe Zecken und keine Balken, oder ich habe Balken und keine Zecken.


 
Nikolai Semko:

um sich selbst ins Bein zu schießen - es gibt ohnehin schon unzählige Optionen.
Allein durch die Einstellung max_bars =Unlimited steigt der Speicherverbrauch dramatisch an.
Hier ein Beispiel für das Terminal mit max_bars = 5000

Ändern Sie nun max_bars = Unlimited und laden Sie das Terminal neu.

Bei denselben geöffneten Fenstern ist der Speicherverbrauch um mehr als ein GB gestiegen. In meinem Fall 11 Mal größer !!!!
Dies ist eine normale ))
Sie können es selbst überprüfen.
max_bars = Unlimited ist ein sehr harter Luxus.
Wenn

meinem Antrag stattgegeben würde, könnten Sie niemalsmax_bars = Unlimited verwenden.
Das würde nicht nur Speicherplatz im RAM einsparen, sondern auch diesen Ordner, der jetzt etwa 31 GB groß ist, erheblich verkleinern. Ich denke, etwa 5 Mal so viel. Und es wären 6 GB anstelle von 30 GB.

Du schlägst also vor, dass jeder unbegrenzt unkündbar sein sollte!

Wenn ein Programm Zugang zu allen Balken hat, dann haben alle Zugang.

Warum sollten die Diagramme tausend Balken anzeigen, wenn der Indikator Zugriff auf eine Million hat?


Eine weitere Frage ist der Zugriff auf das hcc-Format und auf den Ordner mit den Verlaufsdateien. Aber auch dort ist nicht alles einfach - Caches, sparsames Zurücksetzen, Überprüfung auf Korrektheit, noch etwas...

 

2940

Ich hatte den Code des Indikators: alles funktionierte gut auf dem Chart und im Tester.

Ich habe eine neue Version des Indikators mit den vorgenommenen Änderungen erstellt: Er funktioniert gut im Diagramm, aber nicht im Tester (er zeichnet nichts, obwohl das Datenfenster Puffer zeigt und diese leer sind).

Ich habe ein paar Stunden damit verbracht, es zu verstehen, habe die vorherige Version des Codes zurückgesetzt, aber nichts hat geholfen. Nur die Aktualisierung im Terminal Navigator hat geholfen und der neue Code funktioniert auch im Tester, nicht nur auf der Karte.

Ich denke, dass etwas in der automatischen Aktualisierung der Compiler, die der Tester sieht, kaputt ist, einen anderen Grund sehe ich nicht.

 
Nikolai Semko:

Ich würde die normale Datenstruktur verwenden. Scheiß drauf, es gibt genug Platz. Aber ich brauche Zeit für High und Low.
Ich verwende Ticks bereits in vollem Umfang bei der Gestaltung meiner Datenstruktur, aber sie haben nicht die ganze Tiefe der Historie und neigen dazu, nicht mit den Minutenbalken synchronisiert zu sein. Ich habe Zecken und keine Balken, und dann habe ich Balken und keine Zecken.

Wenn es 20 Jahre lang Zecken gäbe, würden Sie sie dann benutzen? Darf ich nicht fragen, warum? )

Nun gut, man kann eine superschlaue, sich selbst anpassende Strategie aufstellen und sie interessehalber einmal mit einem 20-jährigen Tickverlauf laufen lassen. Nur aus Interesse. Einmal.

Aber nicht für die Arbeit, nicht als regelmäßiger Beitrag.


Und wenn das Timing nicht stimmt, warum glauben Sie dann den Balken? Das ist Blödsinn.

 
Andrey Khatimlianskii:

Sie schlagen also vor, dass alle Menschen unbegrenzt arbeiten sollten!

Wenn ein Programm Zugang zu allen Bars hat, dann haben alle Zugang.

Warum sollten die Diagramme tausend Balken anzeigen, wenn der Indikator Zugriff auf eine Million hat?


Eine weitere Frage ist der Zugriff auf das hcc-Format und auf den Ordner mit den Verlaufsdateien. Aber nicht alles ist dort einfach - Caches, sparsames Zurücksetzen, Überprüfung auf Korrektheit, etwas anderes...

Sie brauchen keinen Zugriff auf das hcc-Format und den Ordner mit den Verlaufsdateien. Erstens wird sich MQ niemals darauf einlassen, und zweitens ist es nicht notwendig. Das M1-Array aus diesen Dateien zu erhalten, wird ausreichen.

Das ist die Sache, ich möchte in der Lage sein, niemalsUnlimited zu aktivieren.Denn eine solche Einbeziehung beginnt mit dem Abpumpen von Daten für alle Instrumente. Aber ich brauche nicht alle, sondern immer nur einen. Warum sollte ich das System durch das Herunterladen zusätzlicher Hunderte von MB historischer Daten ohne jegliche Kontrolle überlasten wollen?

 
Andrey Khatimlianskii:

Hätte es in 20 Jahren noch Tics gegeben, hätten Sie sie benutzt? Darf ich mich nicht fragen - warum? )

Nun gut, man kann eine superschlaue, sich selbst anpassende Strategie aufstellen und sie interessehalber einmal mit einem 20-jährigen Tickverlauf laufen lassen. Nur aus Interesse. Einmal.

Aber nicht für die Arbeit, nicht als regelmäßiger Beitrag.


Und wenn das Timing nicht stimmt, warum glauben Sie dann den Balken? Das ist überhaupt kein Unsinn.

Hier geht es nicht um eine Strategie, sondern um die korrekte Visualisierung einer dynamischen TF, die viel anschaulicher und bequemer ist als das bestehende archaische Zeitrahmensystem.
Auch für die Möglichkeit des internen Testens "on the fly".
Obwohl es sich auch auf die Genauigkeit der Strategien im positiven Sinne auswirken kann.

Nun, hier ist zumindest ein kleines Beispiel:
Wie baut man ein regelmäßiges ZigZag, wenn man nicht weiß, welches Ereignis zuerst eingetreten ist, High oder Low?




oder



wenn Sie versuchen, es für tägliche Balken herauszufinden, gibt es keine Garantie dafür, dass Sie mit max_bars = 50.000 niedrigere Zeitrahmen für eine bestimmte Balkenzeit laden können, und auch Ticks.

 
Fehler bei der Ausführung:
void OnStart()
{
    uchar  array[];
    const string text = "All Files\0*.*\0\0";
    const int start = 0, count = StringLen( text );
    Print( StringToCharArray( text, array, start, count ), ":", count );
}

Ergebnis: 10:15

Erwartet 15:15

Ich wollte das Ergebnis in der WinAPI-Funktion GetSaveFileNameA verwenden, aber ich kann nicht wegen eines Fehlers


 
A100:

Dies ist schon seit langem der Fall. mql-Strings mögen keine Null-Zeichen innerhalb einer Zeichenkette und in Literalen, auch in Funktionen.

Der einzige normale Weg ist die Umwandlung von drei Zeichenketten in ein Array mit einer abschließenden Null.

Das heißt, dass dieses Verhalten, so wie es jetzt ist, vor einigen Jahren absichtlich gemacht wurde. Ich weiß nicht, warum.