Die Sprache MQL5 von Grund auf selbst erlernen - Seite 31

 
Valeriy Yastremskiy:

Genau logisch, keine Zeichenkette, da ein I.)))) dazwischen liegt.

Ich habe Ihre Frage also nicht ganz verstanden. Ich habe nicht verstanden, worum es geht, als Sie fragten: "... was für eine Art von Variable ist das...". Ich lerne noch. Vielen Dank für den Tipp!

Mit freundlichen Grüßen, Vladimir.

 
Igor Makanu:

dies ist ein völlig anderer Zustand als der oben beschriebene, und es geht nicht um den optischen Unterschied

Es geht um die gleichzeitige Ausführung des linken Teils des "UND" und des rechten Teils des "UND".

Hallo Igor, ich habe schon verstanden, wo der Fehler liegt. Danke für den Tipp!

Mit freundlichen Grüßen, Vladimir.

 
MrBrooklin:

Hallo, Igor! Ich habe schon herausgefunden, was der Fehler war. Vielen Dank für den Tipp!

Mit freundlichen Grüßen, Vladimir.

Gestern gab Vasily Sokolov Empfehlungen zum Erlernen der Sprache, wobei der Schwerpunkt auf dem Verständnis der Funktionen lag

Dies ist richtig und praktisch - es beschleunigt die Entwicklung, ermöglicht die Aufteilung der Aufgabe in Blöcke und die Wiederverwendung von Code....

Aber, imho, müssen Sie lernen, wie man logische Bedingungen zuerst verarbeiten, es ist nur eine Frage der Zeit, um eine fertige benutzerdefinierte Funktionen zu finden oder verwenden Sie die Standard-Funktionen von MQL

Wichtiger ist es jedoch, die logischen Bedingungen richtig zu schaffen und das Problem zu formalisieren, was ein und dasselbe ist.


Logische Fehler sind das Schlimmste - alles wird funktionieren, aber wann und wo wird es schief gehen... Sie werden es nicht finden ))))


gut und auf Sabotage, wenn über Bedingungen, schreiben Sie die Bedingung der Schnittpunkt von 2 MAs, obwohl alle thematischen Foren mit dieser Frage und Antwort gefüllt sind, aber es passiert oft, dass eine solche einfache Frage für einen Mann, kann nicht so einfach in Form von logischen Bedingungen formalisiert werden ;)


UPD: Hallo!

 

Ich möchte mich noch einmal bei Valery und Igor dafür bedanken, dass sie mir anhand eines so einfachen Beispiels gezeigt haben, wie der Datentyp bool funktioniert.

Mit freundlichen Grüßen, Vladimir.

 
Igor Makanu:
... Nun und zum Thema, wenn über Bedingungen, schreiben Sie die Bedingung der Schnittpunkt von 2 MAs, obwohl alle thematischen Foren sind voll von dieser Frage und Antwort, aber es passiert oft, dass eine solche einfache Frage für eine Person kann nicht so einfach in Form von logischen Bedingungen formalisiert werden ;)...

Ich werde es auf jeden Fall ausprobieren, aber etwas später. Ich liege mit der Grippe in Quarantäne und habe das Gefühl, dass mein Kopf neue Informationen nicht besonders gut verdauen kann.

Mit freundlichen Grüßen, Vladimir.

 
Aliaksandr Hryshyn:
Testfrage:
"enough time" - welche Art von Variable kann das sein, damit es keine Compiler-Warnungen gibt?

Leute, macht keinen Blödsinn. Nehmen Sie Brooklyn nicht beiseite. Konzentrieren Sie sich nicht auf die Typen.

//+------------------------------------------------------------------+
//|                                                            1.mq5 |
//|                        Copyright 2020, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
string a="достаточно времени";
string b="достаточно терпения";
//---
   if(a!=b)
     {
      Print("я выучу язык MQL 5");
     }
  }

Der Code funktioniert einwandfrei. Denn Auf der Kernel-Ebene wird eine String-Vergleichsfunktion definiert die true zurückgibt, wenn die Zeichenketten gleich sind, und andernfalls false. Wenn wir a != b schreiben, wird die Funktion zum Vergleich der beiden Zeichenketten über das Literal != aufgerufen. Übrigens kann der Benutzer eine Vergleichsfunktion für seine eigenen Benutzertypen definieren, die dann auf ähnliche Weise funktionieren. Es geht also nicht um Typen, sondern wieder um Funktionen.

Doch obwohl der Code korrekt ausgeführt wird, ist er intern inkonsistent. In Wirklichkeit wollte der Autor zum Ausdruck bringen, dass "wenn ich genug Zeit" und "genug Geduld" habe, das Ergebnis sein wird "ich werde MQL5 lernen". Das Ergebnis ist, dass ein Wert nicht gleich einem anderen sein muss, um die Sprache zu lernen.

 
Vasiliy Sokolov:

Leute, macht keinen Blödsinn. Nimm Brooklyn nicht beiseite. Konzentrieren Sie sich nicht auf Typen.

Der Code funktioniert sehr gut. Denn Auf der Kernel-Ebene wird eine String-Vergleichsfunktion definiert die true zurückgibt, wenn die Zeichenketten gleich sind, und andernfalls false. Wenn wir a != b schreiben, wird die Funktion zum Vergleich zweier Zeichenketten über das Literal != aufgerufen. Übrigens kann der Benutzer eine Vergleichsfunktion für seine eigenen Benutzertypen definieren, die dann auf ähnliche Weise funktionieren. Es geht also nicht um Typen, sondern wieder um Funktionen.

Doch obwohl der Code korrekt ausgeführt wird, ist er intern inkonsistent. In Wirklichkeit wollte der Autor zum Ausdruck bringen, dass "wenn ich genug Zeit" und "genug Geduld" habe, das Ergebnis sein wird "ich werde MQL5 lernen". Das Ergebnis ist, dass ein Wert nicht unbedingt gleich dem anderen sein muss, um die Sprache zu lernen.

Hallo Wassili! Vielen Dank für Ihre Unterstützung und Ihre Klarstellung! Jedenfalls danke ich Ihnen allen, dass Sie Ihr Wissen mit mir teilen. Sie sind für mich sehr wichtig, besonders in dieser Phase!

Mit freundlichen Grüßen, Vladimir.

 
MrBrooklin:

Hallo Wassili! Vielen Dank für Ihre Unterstützung und für die Aufklärung! Trotzdem vielen Dank an alle, die ihr Wissen mit mir geteilt haben. Sie sind für mich sehr wichtig, besonders in dieser Phase!

Fühlen Sie sich jetzt besser. Wir werden danach weitermachen.

 
Vasiliy Sokolov:

Werde gesund. Wir werden danach weitermachen.

Ich danke Ihnen!

Mit freundlichen Grüßen, Vladimir.

 
Vasiliy Sokolov:
"... Der Code wird zwar korrekt ausgeführt, ist aber intern inkonsistent. In Wirklichkeit wollte der Autor zum Ausdruck bringen, dass "wenn ich genug Zeit" und "genug Geduld" habe, das Ergebnis "ich werde MQL5 lernen" sein wird. Das Ergebnis ist nämlich, dass ein Wert nicht gleich einem anderen sein muss, um die Sprache zu lernen.

Zunächst gab es diese Version des Drehbuchs:

//+------------------------------------------------------------------+
//|                                                            1.mq5 |
//|                        Copyright 2020, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
string a="достаточно времени";
string b="достаточно терпения";
//---
   if(a!=b && b!=a)
     {
      Print("я выучу язык MQL 5");
     }
  }
//+------------------------------------------------------------------+

in dem ich ein logisches "UND" verwendet habe. Dann sah ich, dass in der Bedingung wäre genug, um zu drucken "I'll learn MQL5" Ausdruck a!=b. Kurzum, ich bin nicht zum Kern der Sache vorgedrungen, die mir von Valery und Igor vorgeschlagen wurde.

Mit freundlichen Grüßen, Vladimir.