Fragen von einem "Dummy" - Seite 59

 
Yedelkin:
Zweidimensionale Arrays wie array[][] werden nicht funktionieren?
Theoretisch sollten sie das, und ich habe sogar versucht... Ich habe es nicht gemeistert. Ich würde gerne eine fertige Implementierung sehen, wenn dies prinzipiell möglich ist. Es gab sofort eine Reihe von Problemen... Wenn wir über ein zweidimensionales Array sprechen, war das erste, was mich verwirrte, dass die Puffer anfangs undefiniert, also dynamisch sind. Wie können sie in das übergeordnete Array geladen werden? Und dann... Wenn jeder Puffer seine eigene individuelle Länge hat, wenn er gefüllt wird, haben wir am Ende ein kubisches Array statt eines zweidimensionalen, und es wird nicht einmal ein Würfel sein, sondern eine Art 3D-Tetris.
 
x100intraday:
Theoretisch sollten sie das, ich habe es sogar versucht... Ich konnte es nicht tun. Ich würde gerne eine fertige Implementierung sehen, wenn das prinzipiell möglich ist. Es gab sofort eine Reihe von Problemen... Wenn wir über ein zweidimensionales Array sprechen, war das erste, was mich verwirrte, dass die Puffer anfangs undefiniert, also dynamisch sind. Wie können sie in das übergeordnete Array geladen werden? Und dann... Wenn jeder Puffer seine eigene individuelle Länge hat, wenn er gefüllt wird, haben wir am Ende ein kubisches Array statt eines 2D-Arrays, aber es wird nicht einmal ein Würfel sein, sondern eine Art 3D-Tetris.
Verwenden Sie die Struktur als Umhüllung für einen dynamischen Puffer. Es ist getestet worden - es funktioniert.
 

Können Sie mir sagen, wie ich den Zeitpunkt des Abschlusses einer Transaktion herausfinden kann?

Ich kann sie in den Geschäftseigenschaften nicht finden.

 
masharov:

Können Sie mir sagen, wie ich den Zeitpunkt des Abschlusses einer Transaktion herausfinden kann?

Ich kann sie in den Geschäftseigenschaften nicht finden.

Das Geschäft (der Auftrag) hat keine Schlusszeit, wie es in MT4 der Fall war. Um die Lebensdauer eines "Einzelgeschäfts" zu bestimmen, wie es in MT4 der Fall war, müssen wir die "Eröffnungsgeschäfte" (IN) und die "Schlussgeschäfte" (OUT/INOUT) analysieren.

Das Gleiche gilt für die Position.

 
Im Referenzhandbuch heißt es, dass für die FunktionPositionGetSymbol() "wenn keine Position gefunden wird, ein leerer String zurückgegeben wird". Und wenn die Rückgabe von leeren Zeichenketten verfolgt werden soll, womit soll der von der Funktion zurückgegebene Wert verglichen werden: mit NULL oder mit "" (zwei Anführungszeichen)?
 
Yedelkin:
Im Referenzhandbuch heißt es, dass für die Funktion PositionGetSymbol() "wenn keine Position gefunden wird, ein leerer String zurückgegeben wird". Und wenn es notwendig ist, die Rückgabe von leeren Zeichenfolgen zu überwachen, womit sollte der Rückgabewert der Funktion verglichen werden: NULL oder "" (zwei Anführungszeichen)?
Sie müssen eine andere Funktion verwenden, um zu prüfen, ob es eine Position gibt.
 
Renat:
Sie müssen eine andere Funktion verwenden, um zu prüfen, ob es eine Position gibt.
Nein, der Zweck ist nicht, zu prüfen, ob es eine Position gibt, sondern den continue-Operator anzuwenden, wenn in der Schleife eine leere Zeichenkette zurückgegeben wird. Ich schrieb in einem früheren Beitrag:"Es ist notwendig, die Rückgabe von leeren Zeichenfolgen zu überwachen", wer kann mir also sagen, was zu vergleichen?
Документация по MQL5: Основы языка / Операторы / Оператор продолжения continue
Документация по MQL5: Основы языка / Операторы / Оператор продолжения continue
  • www.mql5.com
Основы языка / Операторы / Оператор продолжения continue - Документация по MQL5
 
Yedelkin:
Nein, der Zweck ist nicht zu prüfen, ob es eine Position gibt, sondern den Operator continue zu verwenden, wenn in der Schleife ein leerer String zurückgegeben wird. Ich schrieb in einer früheren Nachricht:"Es ist notwendig, um die Rückkehr von leeren Zeichenfolgen zu verfolgen" Also, was zu vergleichen, wer wird sagen?

Der Hilfeabschnitt hat den Typ void und eine NULL-Konstante. Im Allgemeinen hätten Sie das schon vor langer Zeit überprüfen können:

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   string a=NULL;
   string b="";
   if(a==b)
      Print("Пустая строка и NULL - одно и то же");
   else
      Print("Пустая строка не равна NULL");
  }
//+--
 
Rosh:

In der Hilfe gibt es einen Abschnitt über den Typ void und die NULL-Konstante.

Nun, ja, es gibt einen Abschnitt. Nur wird in diesem Abschnitt nicht genau gesagt, wie eine leere Zeichenfolge bezeichnet wird. Das Beispiel in diesem Abschnitt verwendet die NULL-Variable nur, um eine nicht initialisierte Zeichenkette zu erkennen.

Was die Selbstkontrolle betrifft, so stellte sich die Frage, nachdem der Compiler den Satz aussprach

switch(PositionGetSymbol(i)!=(NULL || ""))

wie folgt:"implizite Konvertierung von 'Zahl' nach 'String'", aber der separate Vergleich der angegebenen String-Werte hat dem Compiler keine Probleme bereitet. Deshalb habe ich die Frage gestellt, anstatt mich über nahezu theoretische Überlegungen zu "cast to an older type" aufzuregen und zu versuchen, den Code zu vereinfachen.

Aus Ihrem Beispiel können Sie ersehen, dass zumindest Sprachentwickler doppelte Anführungszeichen ohne Leerzeichen verwenden, um eine leere Zeichenfolge zu kennzeichnen. Das wollte ich wissen. Ich danke Ihnen.

 
Yedelkin:

Nun, ja, es gibt einen Abschnitt. Nur wird in diesem Abschnitt nicht genau gesagt, wie eine leere Zeichenfolge erkannt wird. Das Beispiel in diesem Abschnitt verwendet die NULL-Variable nur, um eine nicht initialisierte Zeichenkette zu erkennen.

Was den Selbsttest betrifft, so stellt sich die Frage, nachdem der Compiler den folgenden Satz herausgeschmettert hat

Was haben Sie sich von diesem Ausdruck erhofft?

(NULL || "")
Boolesche Operationen lesen