[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
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:
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,
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?
Also
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?
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.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Erlauben Sie die Verwendung von Cookies, um sich auf der Website MQL5.com anzumelden.
Bitte aktivieren Sie die notwendige Einstellung in Ihrem Browser, da Sie sich sonst nicht einloggen können.
Sie sind angemeldet. Die Zwei-Faktor-Authentifizierung wurde deaktiviert. Richten Sie sie erneut ein und scannen Sie einen neuen QR-Code oder fahren Sie mit deaktivierter Zwei-Faktor-Authentifizierung fort.
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?