[Archiv!] Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht daran vorbei. Könnte nirgendwo ohne dich hingehen - 2. - Seite 131
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
Weiterführung des Themas
Vorherige Seite https://www.mql5.com/ru/forum/111497
Ich versuche, ein eindimensionales Array ValueArr[] zu füllen.
Ich bin nicht sicher, ob das richtig ist.
Bei jedem Ticken gibt die Funktion GetValue() einen int-Wert aus. Wie fülle ich ValueArr[]?
Ist mein Versuch richtig?
Die Größe des Arrays soll bei jedem Tick um eins erhöht werden? Die Größe der Datei ist dann durch den verfügbaren Speicherplatz begrenzt.
Erhöhen Sie die Größe des Arrays ValueArr[] mit der Funktion ArrayResize() und fügen Sie die neuen Daten an das Array an. Nochmals: Wo wollen Sie sie hinzufügen? Am Anfang oder am Ende?
Wenn Sie am Anfang bereits geschriebene Daten verschieben müssen, werden diese sonst durch die neu geschriebenen Daten überschrieben.
Wenn am Ende, dann:
Inite setze Array-Größe = Null, und zu Beginn erhöhe sie um 1 (size++), dann ändere die Größe des Arrays ( ArrayResize(ValueArr, size);) und schreibe die Daten, die durch GetValue(); (ValueArr[size-1]=GetValue();) in die Array-Zelle ValueArr[], indiziert durch Größe-1 (ValueArr[size-1]).
Möchten Sie, dass sich die Größe des Arrays bei jedem Tick um eins erhöht? Die Größe der Datei ist dann durch den verfügbaren Speicherplatz begrenzt.
Erhöhen Sie bei jedem Tick die Größe des Arrays ValueArr[] mit der Funktion ArrayResize() und fügen Sie neue Daten in das Array ein. Nochmals: Wo wollen Sie sie hinzufügen? Am Anfang oder am Ende?
Wenn Sie am Anfang bereits geschriebene Daten verschieben müssen, werden diese sonst durch die neu geschriebenen Daten überschrieben.
Inite setze Array-Größe = Null, und zu Beginn erhöhe sie um 1 (size++), dann verändere die Größe des Arrays ArrayResize(ValueArr, size); und füge Daten, die durch die Funktion GetValue() erhalten wurden, in die Array-Zelle ValueArr[] ein, die durch size-1 indiziert ist (ValueArr[size-1]);
Ja, die Daten von GetValue() werden bei jedem Tick in das Array ValueArr[] geschrieben.
Die Größe des Arrays wird mit jedem Tick erhöht, kann aber auch auf einmal festgelegt werden, z. B. [10000].
DieElemente des Arrays werden in der Reihenfolge ihres Eintreffens angeordnet, d. h. das erste geschriebene Element ist das erste in der "allgemeinen Warteschlange",
das zweite Element steht an zweiter Stelle in der Warteschlange.
Wenn ich es richtig verstanden habe, sieht es so aus:
Ich hoffe, ich habe Sie richtig verstanden.
Die Elemente des Arrays werden in der Reihenfolge ihres Eintreffens angeordnet, d. h. das erste geschriebene Element steht in der "allgemeinen Warteschlange" an erster Stelle,
warum nicht ein Zeitreihen-Array verwenden?
Ich versuche, ein eindimensionales Array ValueArr[] zu füllen.
Ich bin nicht sicher, ob das richtig ist.
Bei jedem Ticken gibt die Funktion GetValue() einen int-Wert aus. Wie fülle ich ValueArr[]?
Ist mein Versuch richtig?
int ValueArr[size];
können Sie nicht. Wenn Sie ein Array deklarieren, geben Sie entweder eine Konstante als Größe an oder nichts, und das Array wird dann als dynamisch betrachtet.
Der richtige Weg ist der folgende
int ValueArr[]; int init() { ArrayResize(ValueArr,size); }
Bitte um Rat! Gibt es eine Funktion in MT4, die das Ergebnis eines früheren Handels berücksichtigt, um einen neuen zu eröffnen? Wenn ja, wie kann ich es richtig angeben?
Bitte um Rat! Gibt es eine Funktion in MT4, die das Ergebnis eines vorherigen Handels berücksichtigt, um einen neuen zu eröffnen? Wenn ja, wie kann ich es richtig angeben?
Es gibt keine solche eingebaute Funktion, Sie müssen sie selbst schreiben, ich habe hier ein Beispiel gezeigt:https://www.mql5.com/ru/forum/131277/page113
Dies ist
Sie können es nicht. Bei der Deklaration eines Arrays wird entweder eine Konstante als Größe angegeben oder nichts, und das Array wird dann als dynamisch betrachtet.
Der richtige Weg ist der folgende
Dann war's das wohl:
Ist das richtig?