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

 
Valeriy Yastremskiy #:

Darum ging es in der Frage nicht. Die Funktion von Dimitri gibt kein Argument als Referenz zurück. Warum ein Referenzargument verwenden? Ja, lokale Bereiche können selbst eine Variable deklarieren und eine Antwort auf die Variable erhalten, nachdem die Funktion aufgerufen wurde.

Und das war's?

Wenn eine Variable global deklariert ist, sollte es keine Variablen mit demselben Namen geben. Wenn eine Funktion von mehreren Funktionen aus aufgerufen wird, wie in Ihrem Beispiel, können Sie sie vergessen und in jeder Funktion eine Variable mit demselben Namen deklarieren. Das ist praktisch...

 
Valeriy Yastremskiy #:

Darum ging es in der Frage nicht. Die Funktion von Dimitri gibt kein Argument als Referenz zurück. Warum ein Referenzargument verwenden? Ja, lokale Bereiche können selbst eine Variable deklarieren und eine Antwort auf die Variable erhalten, nachdem die Funktion aufgerufen wurde.

Und das war's?

1. Die Funktion kann also intern jede Variable ändern und zurückgeben, die ihr übergeben wird, und nicht eine bestimmte globale Variable.

2. Damit die Funktion keine große Variable in die Funktion kopiert - ein Array, eine Struktur, einen Textstring...

 
Alexey Viktorov #:

Wenn eine Variable global deklariert ist, sollte es keine Variablen mit demselben Namen geben. Wenn Sie eine Funktion von mehreren Funktionen aus aufrufen, wie in Ihrem Beispiel, können Sie sie in Ruhe lassen und in jeder Funktion eine Variable mit demselben Namen deklarieren. Es ist praktisch...

D.h. es ist nur eine Frage der Lokalisierung der Verwendung für lokale Bereiche mit den gleichen Namen der Argumente durch Referenz. Nun, nicht viel, aber doch etwas. Ich dachte, da wäre mehr drin.

 
JRandomTrader #:

1. Damit die Funktion intern jede Variable, die ihr übergeben wird, ändern und zurückgeben kann, nicht eine bestimmte globale Variable.

2. Nicht in eine Funktion eine große Variable zu kopieren - ein Array, eine Struktur, einen Textstring...

Die Frage bezog sich auf etwas anderes. Im dritten Beispiel, Ihrer 1. Antwort. 2й. Ich glaube nicht, dass es darum geht, dass man Felder oder Entitätselemente ändern kann. In den meisten Fällen sind sie nicht konstant, so dass das Referenzargument für die meisten Fälle offensichtlich ist. ABER wenn die Entität konstant ist, dann... aber die Entwickler beschlossen, sich nicht darum zu kümmern.

 
Valeriy Yastremskiy #:

D.h. es geht nur darum, die Verwendung für lokale Bereiche mit denselben Argumenten per Verweis zu lokalisieren. Nun ja, nicht viel, aber etwas ist da. Ich dachte, da wäre mehr drin.

Das sind nur die Dinge, von denen ich weiß, dass ich mich damit wohlfühle. Sicherlich gibt es noch andere Vorteile, wie z. B. die Redundanz des Speichers oder etwas anderes. Warum fragen Sie Fedoseev nicht direkt?
 
Alexey Viktorov #:
Das ist nur das, was ich weiß, was für mich bequem ist. Sicherlich gibt es noch andere Vorteile, wie z. B. die Redundanz des Speichers oder ähnliches. Warum fragen Sie Fedoseev nicht direkt?

Unterschiedliche Wahrnehmungsebenen))) Vielleicht versündige ich mich, offensichtliche Dinge sind anderen sehr schwer zu vermitteln))))

 
Valeriy Yastremskiy #:

Es ist möglich, mit einem Argument x zu arbeiten, indem r im globalen Bereich deklariert wird.

Man kann ganz ohne Argumente auskommen, indem man x im globalen Bereich deklariert. Außerdem ist es möglich, das Ergebnis nicht zurückzugeben, sondern es in eine globale Variable zu schreiben. Aber es wird zu Code-Verwirrungen führen, zu der Notwendigkeit, sich zu merken, was und wo gespeichert wird, und mit zunehmendem Programmcode wird es das Leben des Programmierers zur Hölle machen.
 
Guten Tag. Können Sie mir bitte sagen, was fehlt? Mein Ziel ist es, die allerersten Geschäfte mit minimalem Volumen abzuschließen. Ich wähle derzeit nur Aufträge mit einem Volumen von 0,01 aus.
     for(int i=0; i<OrdersTotal(); i++){
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
       if(OrderLots()==0.01){ 
     OrderClose(OrderTicket(),0.01,OrderType()==OP_BUY?Bid:Ask,3,clrWhite);return;}}}    }

Wenn nicht ab 0,01, dann muss ich Aufträge ab 0,02 auswählen und so weiter. Wie schreibe ich diesen Punkt?

 
Rustam Bikbulatov minimalem Volumen abzuschließen. Mein EA wählt derzeit nur Aufträge mit einem Volumen von 0,01 aus.

Wenn nicht ab 0,01, dann muss ich Aufträge ab 0,02 auswählen und so weiter. Wie schreibe ich diesen Punkt?

if(OrderLots()==0.01)

Sehen Sie es wirklich nicht selbst?

"Wie kann man diesen Punkt überprüfen?" - Sie müssen den Mindestwert des Loses 0,01 berechnen.

Vielleicht sollte der Schlupf in Punkten angegeben werden, d. h. 3*Punkt() und nicht 3

 
Rustam Bikbulatov minimalem Volumen abzuschließen. Mein Roboter wählt derzeit nur Aufträge mit einem Volumen von 0,01 aus.

Wenn nicht ab 0,01, dann muss ich Aufträge ab 0,02 auswählen und so weiter. Wie sollte dieser Punkt formuliert werden?

Sie brauchen 2 Zyklen: Im ersten sollten Sie das Mindestvolumen erreichen, im zweiten schließen Sie es. Außerdem sollten Sie berücksichtigen, dass die Aufträge beim Schließen um 1 Position verschoben werden, so dass Sie einen Zyklus von der maximalen Position bis 0 durchführen sollten.