Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 667
![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
unten in der Klassendatei
Gibt diese Methode einen Fehler zurück? Wenn ja, definieren Sie sie im privaten Bereich. Sie können es in seiner Gesamtheit tun:
Oder Sie können es herausnehmen:
Nun, wenn es Unsinn ist, dann ist er erfahrungsgeprüft.
Nicht nur "theoretischer Blödsinn" !!!
Ganz genau.
Ich verwende alle Arten von Arrays in Indikatoren sicher. Und als Puffer, und dynamisch, und statisch.
Aber alles funktioniert nicht für Sie und die Erfahrung sagt Ihnen, sorry, irgendeinen Unsinn.
Gibt diese Methode einen Fehler zurück? Wenn ja, definieren Sie sie im privaten Bereich. Sie können es als Ganzes definieren:
Und Sie können es herausnehmen:
Nun, wenn es Unsinn ist, dann ist er erfahrungsgeprüft.
Nicht nur "theoretischer Blödsinn" !!!
Niemand hindert Sie daran, ein dynamisches Array in Ihren Berechnungen zu verwenden.
Aber!!! Der Prozessor ist während der Berechnungen beschäftigt und es wird nicht in das dynamische Array geschrieben.
Daher werden alle Daten, die während der Berechnungen in ein dynamisches Array gelangen, automatisch ignoriert. (Manchmal werden sie auch geschützt und in einen Puffer geschrieben).
Ich hoffe, das ist klar?
Aus diesem Grund werden alle Daten in dynamischen Arrays auf statische Arrays verteilt, damit keine Daten verloren gehen, während der Prozessor arbeitet.
Und deshalb sollten alle Berechnungen in statischen Arrays durchgeführt werden!!!
Dies ist ein heftiger Unsinn, der es wert ist, in die Annalen des Forums einzugehen.
Das ist sie.
Ich verwende problemlos alle Arten von Arrays in Indikatoren. Und als Puffer, und dynamisch, und statisch.
Aber das funktioniert bei Ihnen nicht, und die Erfahrung sagt Ihnen, sorry, das ist Unsinn.
Gut.
Führen wir ein Experiment durch.
Nehmen wir ein dynamisches Array, das mit Tickdaten verknüpft ist, und verwenden wir den Prozessor für dieses Array für ein paar Stunden.
Und sehen Sie, was wir in dieser Zeit in dieses Feld schreiben!
Gefällt Ihnen diese Formulierung der Frage? (Natürlich ohne Puffer).
Also gut.
Lassen Sie uns ein Experiment machen.
Nehmen wir ein dynamisches Array, das mit Tickdaten verknüpft ist, und beschäftigen den Prozessor einige Stunden lang mit diesem Array.
Und sehen Sie, was wir in dieser Zeit in dieses Feld schreiben!
Gefällt Ihnen diese Formulierung der Frage? (Natürlich ohne den Puffer).
Tun Sie es. Dann geben Sie den Code hier ein.
Gibt diese Methode einen Fehler zurück? Wenn ja, definieren Sie sie im privaten Bereich. Sie können es als Ganzes definieren:
Und Sie können es herausnehmen:
Ja, so sollte es sein, danke.
Tun Sie es. Dann geben Sie den Code hier ein.
Ja, natürlich.
Das werden wir später sehen.
Eine andere Frage.
Ich habe eine Struktur in einer Klasse.
Wie kann ich sie per Anfrage an externen Code zurückgeben, der mit dieser Klasse arbeitet?
Eine andere Frage.
Ich habe eine Struktur in einer Klasse.
Wie kann ich sie per Anfrage an externen Code zurückgeben, der mit dieser Klasse arbeitet?
nur durch die Beschreibung der Struktur selbst auf der Ebene der Sichtbarkeit der globalen Variablen
dann deklarieren Sie die Strukturvariable in der Klasse
und in Ihrem externen Code können Sie die gleiche Variable deklarieren, aber beachten Sie, dass, wenn Sie eine solche Variable innerhalb von OnTick() deklarieren, jeder Aufruf von OnTick() einen Strukturkonstruktor startet, auch wenn Sie es nicht erstellt haben - in MQL gibt es keinen Unterschied zwischen Klassen und Strukturen, das einzige, was ich mich erinnere, der Konstruktor mit dem Parameter der Strukturen, die durch neue erstellt werden, wird nicht vom Compiler übergeben
Also... In der klassischen OOP kommt man in der Regel nicht über die Klasse hinaus, indem man die internen Elemente (Klassenfelder) übergibt, alles wird in der Regel über Abfragen an die Klasse Get() realisiert ... Setzen()... Nun, das ist Geschmackssache.
SZ: .... Vererbung verwenden, Erben haben gemeinsame Klassen, den Quellcode der Klassen aus der MT-Lieferung ansehen (Include-Ordner)