Cycle Operator 'für' Fragen - Seite 7

 

Simon,

Wenn OrdersTotal() also 10 zurückgibt, was ist dann die letzte und erste Bestellposition?

Ich habe die Funktion OrdersTotal() als Bedingung vor der Verwendung der OrderSend()-Funktionen verwendet. Meinem Verständnis nach habe ich die Funktion OrdersTotal() in einer Art und Weise wie folgt verwendet:

if(OrdersTotal()<1) OrderSend(...);

// I have also used the function like this...

if(OrdersTotal()==0) OrderSend(...);

Die beiden obigen Codezeilen bedeuten so etwas wie: Wenn keine Aufträge vorhanden sind, wird ein Auftrag gesendet.

OrdersTotal() Funktion gibt die Anzahl der Markt- und Pending-Orders zurück (dies kann auch so geschrieben werden: Gibt die Gesamtzahl der aktuellen Marktaufträge und die Gesamtzahl der ausstehenden Aufträge zurück).

Ich nehme an, dass die Funktion "Order Ticket Position" ähnlich abläuft. Sie beginnt mit 1 und endet mit 10 (ich persönlich würde nicht zu diesem Schluss kommen, wenn ich den Wert der Funktion OrdersTotal() betrachte, aber man muss Fortschritte machen).

Wenn OrdersTotal() 10 zurückgibt, ist die erste Position 1 und die letzte Position 10. Die aktuelle Position für die letzte Bestellung ist also 10 und die erste Bestellung (die 10. in Folge) ist 1.

Vielen Dank für Ihre Hilfe.

 

@WhooDoo22:wenn OrdersTotal() 10 zurückgibt, ist die erste Position 1 und die letzte Position 10. = falsch.
- Die korrekte Antwort ist demnach 0 und 9
- Die erste Position=0 && Die letzte Position = OrderTotal - 1
- Warum sagen Sie ständig "Order Ticket Position"?
- Es heißt entweder "Order Ticket" oder "Order Position".
- Bitte unterlassen Sie es, es "Order Ticket Position" zu nennen.
- Die 1. Position innerhalb des Pools ist immer Null

 

ubzen,

@WhooDoo22:wenn OrdersTotal() 10 zurückgibt, ist die erste Position 1 und die letzte Position 10. = false.

Ich glaube, ich war nah dran, 1 als erste Position und 10 als letzte Position anzugeben, weil ich dachte, dass es der Wertedarstellung von OrdersTotal() ähnlich ist.

Die Eins als erste und die Null als erste ist sehr nahe. Zehn als letzte und neun als letzte ist sehr nahe dran. Der Fehler lag in der Wertedarstellung.


- Die 1. Position=0 && Die letzte Position = OrderTotal - 1

Ich verstehe, dass der Wert der ersten Position als Null dargestellt wird, weil die Werte der Bestellposition ähnlich wie ein Array dargestellt werden (Beispiel: 0,1,2,3,4,etc.).

Ich verstehe nicht, warum die letzte Position gleich OrdersTotal() -1 ist. Liegt das daran, dass die Funktion OrdersTotal() nur mit aktuellen Aufträgen arbeitet, so dass alle Aufträge in der Vergangenheit als minus eins betrachtet werden?


- Warum sagen Sie ständig "Order Ticket Position"?

Denn dieses "Order Ticket" repräsentiert das Ticket auf dem Markt und "Order Ticket Position" repräsentiert die Position des Tickets.


- Es heißt entweder "Order Ticket" oder "Order Position".

Ich halte es für das Beste, "Order Ticket" als "Order Ticket Number" und "Order Position" als "Order Position Number" zu bezeichnen. Es ist wichtig, die beiden Begriffe zu beschreiben, da sie zu Verwirrung führen können, wenn der Unterschied nicht verstanden wird.


- Die erste Position innerhalb des Pools ist immer Null

Wenn dies tatsächlich der Fall ist, geht dies auf die Wertedarstellung zurück. Die Wertedarstellung ist ähnlich wie bei einem Array (Beispiel: 0,1,2,3,4,etc.).


Ich danke Ihnen.

 

@WhooDoo22: Ich verstehe nicht, warum die letzte Position gleich OrdersTotal() -1 ist.

Es ist, als ob Sie Läufer auf einer Bahn haben. Die Bahnen sind unten abgebildet.

|0|1|2|3|4|5|6|7|8|9|

Beachte, dass die Bahnen mit 0->9 bezeichnet sind, weil der Typ, der die Bahnen gemalt hat, sie so nummerieren wollte. [Oh Gott, bitte fragt mich nicht, warum er sie so gemalt hat :) ].

Wie auch immer, die Strecke ist voll mit Läufern für dieses Ereignis. Diese Läufer haben alle Nummern auf dem Rücken. Wenn du jemals ein Rennen gesehen hast, dann weißt du, wovon ich spreche. Aber diese Läufer suchen sich ihre eigenen Nummern aus. Es könnte sein, dass der erste Läufer die 7 für seine Glückszahl hält und sie auf seiner Uniform trägt. Der letzte Läufer hat die 23 auf dem Rücken, und um die Erinnerung an seinen Vater zu ehren, trägt er heute die Nummer_23. Wie auch immer, die Läufer stellen sich wie folgt auf.

|7|93|41|68|17|45|22|6|16|23|

Jemand hat gerade ein Mädchen namens OrdersTotal gefragt, wie viele Läufer im Rennen sind. OrdersTotal antwortete Zehn[10] (weil sie so schlau ist).

Jemand hat gerade ein Mädchen namens "i" alias "index" nach der Position des ersten Läufers gefragt. Darauf antwortet sie prompt mit 0 (weil sie so schlau ist). Sie wird auch nach der Position des letzten Läufers gefragt und antwortet mit Blick auf die obige Strecke: Nine[9].

Jemand hat gerade ein Mädchen namens OrderTicket gefragt, wie die Läufernummer in der 1st_Position lautet. Und sie antwortet 7. (weil sie so schlau ist). Und für Runner_Number in Last_Position antwortet sie 23, "weil er heute seinen Papa ehrt".

Welcher Läufer nun das Rennen gewinnen wird, hebe ich mir für ein anderes Mal auf. Ich hoffe jedoch, dass mein Fallbeispiel Ihnen hilft, zu verstehen.

Wenn Sie sich die Positionsnummern ansehen, sind sie alle um 1 verschoben, weil der Maler beschlossen hat, seine Zählung bei Null zu beginnen. Wenn er seine Zählung bei 1 begonnen hätte, dann wäre es 1>10. Auf diese Weise kann jede Zahl relativ zu OrdersTotal dargestellt werden. Sogar die 1st_Position kann als (OrdersTotal - OrdersTotal) dargestellt werden, was 0 ergibt.

 

ubzen,

Was für eine faszinierende Illustration, die Sie mir da präsentieren. Vielen Dank, dass Sie sich die Zeit genommen haben, es so detailliert darzustellen!

Was die Frage angeht, welcher Läufer das Rennen gewinnt, so ist es in der Regel derjenige, der sich auf der innersten Spur einer Bahn befindet, vorausgesetzt, alle Läufer sprinten mit der gleichen Geschwindigkeit. Ich weiß nicht, ob dies mit Ihrer Illustration übereinstimmt, aber wenn ja, könnte es möglicherweise (Index Null oder Index Neun) oder (Läufer Sieben oder Läufer Dreiundzwanzig) sein.

Ich danke Ihnen.

 
Sie sind herzlich willkommen.
 
RaptorUK:
Die erste Position im Pool ... genau wie bei einem Array ist das erste Element an Position 0, das zweite an 1, das dritte an 2 usw.

Was ich seltsam finde, ist, dass Sie versuchen, diese Funktion zu verwenden, aber nicht wissen, wie man sie benutzt ... haben Sie nicht in anderen Code geschaut und eine Schleife gesehen, die von OrdersTotal() - 1 herunterzählt? warum glauben Sie, dass die -1 da ist?

Sie haben diesen Beitrag gelesen ... also wussten Sie, dass die erste Position im Pool 0 war, doch jetzt sagen Sie, dass es 1 ist, ich bin verwirrt, warum würden Sie so etwas sagen?
 

Simon,

Ehrlich Simon, der Tag war so lang und ich fühle mich auch etwas verwirrt in Bezug auf bestimmte Dinge ;) Vielleicht ist es das Beste für mich, eine Mahlzeit, ein gutes Getränk und Schlaf zu mir zu nehmen, um mich für den kommenden Tag zu stärken, damit ich wieder einen klaren Verstand für die Diskussion habe. Ich bin mit den Fortschritten dieses Tages zufrieden.

Ich danke euch.

 
WhooDoo22:

Simon,

Ehrlich Simon, der Tag war so lang und ich fühle mich auch etwas verwirrt in Bezug auf bestimmte Dinge ;) Vielleicht ist es das Beste für mich, eine Mahlzeit, ein gutes Getränk und Schlaf zu mir zu nehmen, um mich für den kommenden Tag zu stärken, damit ich wieder einen klaren Verstand für die Diskussion habe. Ich bin mit den Fortschritten dieses Tages zufrieden.

Ich danke euch.

Gute Idee, dann machen Sie sich an die Arbeit an den Grundlagen.
 

Simon,

Du hast diesen Beitrag gelesen ... also wusstest du, dass die erste Position im Pool 0 ist, doch jetzt sagst du, dass sie 1 ist, ich bin verwirrt, warum sagst du so etwas?

Ich verstehe die Wertedarstellung für einen Auftragspool. Weißt du, was der große Clue ist, um die Wertedarstellung für einen Auftragspool zu verstehen? Ich sage es Ihnen trotzdem :) index . Gilt Index nicht als dasselbe wie...

Array: 0,1,2,3,usw. Jeder Wert ist mit einer einzelnen/einer Kombination von Ziffern zu füllen.

und...

Werte verschieben: 0,1,2,3,etc. Jeder Wert, eine Verschiebung des aktuellen oder vorherigen Zeitrahmens (Beispiel: M5-Zeitrahmen. Der aktuelle Index für den M5-Zeitrahmen ist Null (0). Die allerletzte oder jüngste Verschiebung für den M5-Zeitrahmen ist mit dem Index 1 indiziert oder seine Position ist Index 1).


Es gibt mehrere MQL4-Codes für die Werte 0, 1, 2, 3 usw. Das "magische" Wort, das es zu beachten gilt, ist Index.

Also ;), werfen wir einen Blick in das MetaEditor-Wörterbuch und sehen, was es uns für die Definition der Funktion OrderSelect() bietet?

bool OrderSelect( int index, int select, int pool=MODE_TRADES)

Huh ;), und siehe da, es gibt einen Index, genau wie erwartet. Das sollte alle Unklarheiten aus dem Weg räumen, die sich aus dem Nachdenken über die Wertedarstellung des ersten Wertes in der OrderSelect()-Funktion ergeben :)

Warten Sie, es ist auch wichtig zu verstehen, dass index nur für die Funktion OrderSelect() gilt, NUR wenn die Funktion Aufträge in einem Auftragspool sucht. Das sollte es für diese Funktion sein.


Damit bin ich wieder bei dem Problem, das ich vor nicht allzu langer Zeit hatte.

Fehler bei ungültigem Ticket

Der obige Snapshot-Fehler ist das aktuelle Problem, das behoben werden muss. Was empfehlen Sie, um dieses Problem zu lösen?

Ich danke Ihnen.