Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 1687

 
Was haben Ihre Indizes und die Menge der zurückgegebenen Aufträge damit zu tun? Erstellen Sie eine Reihe von Aufträgen und durchlaufen Sie diese in einer Schleife. Die Schleife ist kein Array, sondern die Zahl, die von OrdersTotal als normale Funktion zurückgegeben wird, da sie nicht die Adresse des Array-Indexes zurückgibt, in dem die Bestellungen gespeichert sind.
 

Array-Größe ist die Anzahl der Array-Elemente (oder z. B. Aufträge)

Das erste Element hat immer einen Index von 0,

die letzte Zahl ist um eins kleiner als die Array-Größe.


Wenn Sie ein Array mit einem Element erstellen möchten, ist die einzige Möglichkeit, auf dieses Element zuzugreifen, die Verwendung von arr[0]. In allen anderen Fällen erhalten Sie einen Array-Überlauf-Fehler.

Bei Aufträgen ist es dasselbe, nur ohne Fehler, aber man kann das erste Element (Auftrag) nicht auf andere Weise erreichen.

 
Hier ist die Referenz https://www.mql5.com/ru/docs/array
Документация по MQL5: Операции с массивами
Документация по MQL5: Операции с массивами
  • www.mql5.com
Операции с массивами - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Ich verstehe es, OrdersTotal gibt nur den Betrag, aber um auf die Bestellung zu verweisen, verwenden wir OrderSelect und hier geht es bereits durch das Array. Ich habe diesen Punkt übersehen.
 
Ja, das ist richtig. OrderSelect(0,


 
Nerd Trader eines Array-Indexes zurückgeben, in dem die Bestellungen gespeichert sind.

Sie machen keinen Pass auf eine Zahl, sondern auf die Liste der Aufträge in Ihrem Handelskonto! Und die Anzahl der Aufträge ist nur eine Zahl... man kann sie nicht übergehen... wie kann man eine Zahl von 100 übergehen? Du hast nicht... Und auf der Liste mit 100 Zeilen können wir jede Zeile einmal durchgehen.

Die von OrdersTotal() zurückgegebene Zahl ist eine Primzahl... Sie wurde so konzipiert, dass sie IMMER mit der Anzahl der Aufträge in der Liste übereinstimmt.

Wenn Sie wissen, dass Sie immer nur 1 Auftrag haben, dann brauchen Sie nur mit einer Auftragsnummer "0" ohne OrdersTotal() zu arbeiten...

 
Nikolay Ivanov #:

Sie machen keinen Pass auf eine Zahl, sondern auf die Liste der Aufträge in Ihrem Handelskonto! Und die Anzahl der Aufträge ist nur eine Zahl... man kann sie nicht übergehen... wie kann man eine Zahl von 100 übergehen? Du hast nicht... Und auf der Liste mit 100 Zeilen können wir jede Zeile einmal durchgehen.

Die von OrdersTotal() zurückgegebene Zahl ist eine Primzahl... Sie wurde so konzipiert, dass sie IMMER mit der Anzahl der Aufträge in der Liste übereinstimmt.

Wenn Sie wissen, dass Sie immer nur 1 Auftrag haben, dann arbeiten Sie einfach mit einer Auftragsnummer "0" ohne OrdersTotal()...

Aleksei Stepanenko #:

Die Array-Größe ist die Anzahl der Array-Elemente (oder z. B. Aufträge)

Das erste Element hat immer den Index 0,

die letzte Zahl ist um eins kleiner als die Array-Größe.


Wenn Sie ein Array mit einem Element erstellen wollen, können Sie nur mit arr[0] darauf zugreifen. In allen anderen Fällen erhalten Sie einen Array-Überlauf-Fehler.

Bei Aufträgen ist es dasselbe, nur ohne Fehler, aber man kann das erste Element (Auftrag) nicht auf andere Weise erreichen.

Ja, das ist sie.
 
Nerd Trader verwenden wir OrderSelect und es geht bereits durch das Array. Ich habe diesen Punkt übersehen.

Das Array (die Liste) durchläuft einen CYCLE. Der OrderSelect wählt nur den Auftrag zur weiteren Bearbeitung aus, dessen Auftragsnummer in diesem Zyklus angelegt wurde.

Документация по MQL5: Торговые функции / OrderSelect
Документация по MQL5: Торговые функции / OrderSelect
  • www.mql5.com
OrderSelect - Торговые функции - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Nerd Trader eines Array-Index zurück, in dem die Bestellungen gespeichert sind.
Das Formular ist insofern praktisch, als es durch die Angabe der Anzahl der Positionen ein beliebiges Feld füllen kann. In meinem Fall würde alles abstürzen, wenn 0 eingegeben wird, weil die ArrayResize an die Anzahl der Positionen gebunden ist. Aus diesem Grund habe ich zusätzliche Bedingung, wenn Anzahl der Positionen mehr als 0, dann diese Schleife. Ich bringe das auch immer wieder durcheinander, jetzt habe ich es noch einmal überprüft. Der Ratschlag ist richtig, denn andernfalls würde das Forte das Nullelement des Arrays nicht füllen, wofür das Forte ja da ist.
 
Großartig, Freunde, dass wir einen Konsens haben