Merkmale der Sprache mql5, Feinheiten und Techniken - Seite 131

 
fxsaber:

DieSpeicherfreigabe ist der einzige Grund.

Welche Art von Speicher? Wenn redundant, dann istreserve_size=-1 ausreichend, wie bereits gesagt wurde. Nur die Person dort hat offensichtlich etwas mit den Geschwindigkeitsmessungen falsch gemacht (falsche Testbedingungen, nehme ich an)

 

Mir ist eine interessante Möglichkeit aufgefallen, die ich als Indikatorrekursion bezeichnen möchte.

Wenn Sie einen Indikator aus sich selbst berechnen können:

handle=iMA(_Symbol,_Period,per1,0,MaMethod,PriceBase);  
for(int i=0;i<N;i++) handle=iMA(_Symbol,_Period,per2,0,MaMethod,handle);

Es könnte für Fans von Indikatoren nützlich sein...

Falls dieses Thema bereits behandelt wurde: Wiederholung ist die Mutter des Lernens.

Um diese Funktion zu demonstrieren, habe ich eigens einen Indikator in QB geschrieben.

 
Nikolai Semko:

Mir ist eine interessante Möglichkeit aufgefallen, die ich als Indikatorrekursion bezeichnen möchte.

Wenn Sie einen Indikator aus sich selbst berechnen können:

Es könnte für Fans von Indikatoren nützlich sein...

Falls dieses Thema bereits behandelt wurde: Wiederholung ist die Mutter des Lernens.

Um diese Funktion zu demonstrieren, habe ich eigens einen Indikator in QB geschrieben.

Ja... Ich dachte nicht, dass es eine Besonderheit ist. Sobald ich es brauchte, habe ich es einfach so geschrieben, nur mit anderen Variablennamen für die Handles. Ich dachte, jeder benutzt es, wenn er es braucht...

 
Alexey Viktorov:

Ja... Ich dachte nicht, dass es eine Funktion ist. Sobald ich es brauchte, habe ich es einfach so geschrieben, aber mit anderen Variablennamen für die Handles. Ich dachte, jeder benutzt es, wenn er es braucht...

Ich habe erst jetzt daran gedacht, sie in eine Schleife zu legen. Sie können den Indikator 100 Mal reproduzieren, aber es gibt nur einen Griff.

 
Nikolai Semko:

Ich habe gerade erst daran gedacht, sie in eine Schleife zu legen. Sie können den Indikator mindestens 100 Mal reproduzieren, aber es gibt nur einen Griff.

Es handelt sich nicht um einen einzelnen Griff, sondern um eine Variable. Sie haben die Werte der vorherigen Griffe verloren. Und wie schließt man sie?

 
Alexey Navoykov:

Es handelt sich nicht um einen einzelnen Griff, sondern um eine Variable. Sie haben die Werte der vorherigen Griffe verloren. Und wie schließt man sie?

Na ja...

Es verbraucht eine Menge Speicherplatz. Nur durch die Änderung von TF können Sie die internenIndikatorpuffer freigeben, die nicht mehr benötigt werden. ))

Es gibt keine Möglichkeit, in ArrayFree zu schrauben.

 
Nikolai Semko: Nur durch die Änderung der TF können Sie die nicht benötigten internenIndikatorpuffer freigeben. ))

Es gibt keine Möglichkeit, ArrayFree anzuhängen.

Beim Ändern der TF wird eine neue Kopie des Indikators erstellt und die alte vernichtet.

 
Igor Makanu:

Beim Ändern der TF wird eine neue Kopie des Indikators erstellt und die alte vernichtet.

Nun, das ist verständlich.

Ich habe mir gerade den Speicherverbrauch beim Laden mit den maximalen Einstellungen meines Indikators angesehen (Schieberegler nach rechts bis zum Rand). Der Speicher ist von 50 MB auf etwa 400 MB angewachsen. Aber als ich die Anzeige auf das Minimum zurückstellte (Schieberegler nach links), blieb der Speicher immer noch bei 400 MB hängen.

Das bedeutet, dass alle 100 berechneten Indikatoren im Speicher hängen, obwohl sie nicht verwendet werden.
Ein Wechsel der TF löscht sie.

 
Nikolai Semko:

Nun, das ist verständlich.

Es ist nur so, dass ich mir den Speicherverbrauch während des Bootens entsprechend den maximalen Einstellungen meines Indikators (Schieberegler nach rechts bis zum Rand) angesehen habe. Der Speicher wurde von 50 MB auf etwa 400 MB erhöht. Aber als ich die Anzeige auf das Minimum zurückstellte (Schieberegler nach links), blieb der Speicher immer noch bei 400 MB hängen.

So bleiben alle 100 berechneten Indikatoren im Speicher hängen, obwohl sie nicht mehr verwendet werden.
Ein Wechsel der TF löscht sie.

In den Klassenberechnungsindikator einpacken - Puffer an die Klassenfelder binden

 
Igor Makanu:

die Indikatorberechnung in eine Klasse verpacken - die Puffer mit den Klassenfeldern verbinden

Ja, ich werde es ausprobieren müssen. Ich danke Ihnen.