Die Sprache MQL5 von Grund auf selbst erlernen - Seite 39

 
MrBrooklin:

Ja, die öffnenden und schließenden Klammern laufen nach "Styling" vertikal zusammen, aber die Hintergrundbeleuchtung versteht entweder nicht, was das ist, oder ich kann es nicht sehen. Das Niveau der Programmierkenntnisse ist im Moment nahezu gleich Null.

Mit freundlichen Grüßen, Vladimir.

die Hervorhebung ist eine leuchtende Klammer zuerst nach dem Titel der Funktion, sie sollte im Paar mit der unteren Klammer leuchten, d.h. jede Klammer sollte ein Paar haben, sie sind leuchtend, wenn nicht, bedeutet das, dass eine schließende Klammer fehlt

 
Fast235:

die Hervorhebung ist die erste beleuchtete Klammer nach dem Funktionskopf, sie sollte mit der unteren Klammer gepaart sein, d.h. jede Klammer sollte ein Paar haben, sie sind beleuchtet, wenn nicht, dann fehlt die schließende Klammer

Danke für den Hinweis. Es stellt sich heraus, dass sie auf meinem Bildschirm nicht hervorgehoben sind, sondern durch die Dicke hervorgehoben werden. Ja, alle Klammern sind vorhanden. Jetzt habe ich den Funktionsblock einfach hinter die untere OnStart-Klammer verschoben und die Fehler sind verschwunden. Vielen Dank für Ihre Hilfe!

Mit freundlichen Grüßen, Vladimir.

 
MrBrooklin:

Danke für den Hinweis. Auf meinem Bildschirm sind sie nicht hervorgehoben, sondern heben sich durch ihre Dicke ab. Ja, alle Klammern sind vorhanden. Jetzt habe ich den Funktionsblock einfach hinter die untere OnStart-Klammer verschoben und die Fehler sind verschwunden. Vielen Dank für Ihre Hilfe!

Mit freundlichen Grüßen, Vladimir.

Alle Funktionen werden im globalen Bereich deklariert, d.h. außerhalb des Bereichs anderer Funktionen, der durch ihre Klammern begrenzt ist.
 
Реter Konow:
Alle Funktionen werden im globalen Bereich deklariert, d.h. außerhalb des Bereichs anderer Funktionen, der durch ihre Klammern begrenzt ist.

Lieber Peter, erzähl uns, wie du es geschafft hast, deine so genannte Auszeichnungssprache zu entwickeln (), das wird für Neulinge nützlich sein, und ich brauche es, um logisches Denken zu entwickeln, was hier sehr wichtig ist

vielleicht hat etwas viel gegessen, ist auf einen Baum geklettert
 
MrBrooklin:

Guten Abend zusammen!

Liebe Programmierungsexperten, könnten Sie mir bitte sagen, was die Fehlermeldung des Compilers bedeutet:" Funktionsdeklarationen sind nur im Global-, Namespace- oder Klassenbereich erlaubt", oder um genauer zu sein, was ist ein Namespace und wo sollte er im Skript zu finden sein?

Die Frage bezieht sich auf das Schreiben von Funktionscode für "Enough_time" und "Enough_patience".

Mit freundlichen Grüßen, Vladimir.

Globaler Bereich, der Bereich außerhalb von Funktionen. Es macht keinen Unterschied, wo, Sie können zwischen Funktionen, ich hoffe, Sie verstehen, wo sie beginnen und enden, Sie können alles tun, was Sie im globalen Bereich tun können, globale Variablen, Eigenschaften oder was auch immer deklarieren. Im globalen Bereich deklarierte Variablen sind buchstäblich überall sichtbar. Der lokale Geltungsbereich ist der Bereich vom Anfang bis zum Ende der Funktion (geschweifte Klammern schließen). Die im lokalen Bereich deklarierten Variablen sind nur in diesem Bereich sichtbar.

Bitte beachten Sie, dass der Code von oben nach unten und von links nach rechts gelesen wird. Der Compiler ordnet Zeichenketten nicht neu an. Die Regel lautet also, dass eine Variable immer über oder links von der Referenz auf sie deklariert wird. Und zwar nur in ihrem eigenen Bereich. In verschiedenen lokalen Bereichen können Variablen die gleichen Namen haben. Und nebenbei Schleifen und wenn es Funktionen mit eigenen Bereichen sind auch)

 
Valeriy Yastremskiy:

Der globale Bereich, der Bereich außerhalb von Funktionen. und es macht keinen Unterschied, wo, Sie können zwischen Funktionen, ich hoffe, Sie verstehen, wo sie beginnen und enden, Sie können alles im globalen Bereich am Ende tun, deklarieren globale Variablen, Eigenschaften oder was auch immer. Im globalen Bereich deklarierte Variablen sind buchstäblich überall sichtbar. Der lokale Geltungsbereich ist der Bereich vom Anfang bis zum Ende der Funktion (geschweifte Klammern schließen). Die im lokalen Bereich deklarierten Variablen sind nur in diesem Bereich sichtbar.

Bitte beachten Sie, dass der Code von oben nach unten und von links nach rechts gelesen wird. Der Compiler ordnet Zeichenketten nicht neu an. Die Regel lautet also, dass eine Variable immer über oder links von der Referenz auf sie deklariert wird. Und zwar nur in ihrem eigenen Bereich. In verschiedenen lokalen Bereichen können Variablen die gleichen Namen haben. (Übrigens sind auch Schleifen und if Funktionen mit eigenem Geltungsbereich)

wir sollten ein buch schreiben. wir alle zusammen

 
Реter Konow:
Alle Funktionen werden im globalen Bereich deklariert, d.h. außerhalb des Bereichs anderer Funktionen, der durch ihre Klammern begrenzt ist.

Vielen Dank, Peter! Mir wurde bereits geholfen, dieses Problem zu verstehen.

Ich setze mein Studium der Programmiersprache MQL5 fort und füge heute den Code eines Skripts ein, das eine Fortsetzung einer der Aufgaben der Teilnehmer dieses Threads ist. Ich habe das Skript in allen Modi getestet. Alles funktioniert, wie es sollte. Für den Anfang habe ich die Eingabeparameter auf ein Minimum reduziert.

Mit freundlichen Grüßen, Vladimir.

//+------------------------------------------------------------------+
//|                                                Learning_MQL5.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"
//---
#property script_show_inputs
//--- Зададим входные параметры скрипта 
input ushort Период_обучения=500; //Полный период обучения в днях
input ushort Прошло_дней=10;      //Сколько дней прошло с начала обучения
input bool   Терпение=true;       //Терпение (true - достаточно; false - не достаточно)
//--- Зададим глобальные переменные
ushort Достаточность_времени;
bool Достаточность_терпения;
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   if(Достаточно_времени()==0 && Достаточно_терпения()==true)
     {
      Print("Я выучу язык MQL5!");
     }
   else
     {
      Print("Я не выучу язык MQL5!");
     }
  }
//--- Создадим функцию Достаточно_времени
ushort Достаточно_времени()
  {
   Достаточность_времени=(Период_обучения-Прошло_дней);
   return(Достаточность_времени);
  }
//--- Создадим функцию Достаточно_терпения
bool Достаточно_терпения()
  {
   Достаточность_терпения=Терпение;
   return(Достаточность_терпения);
  }
//+------------------------------------------------------------------+
 
MrBrooklin:

Vielen Dank, Peter! Mir wurde bereits geholfen, dieses Problem zu verstehen.

Ich studiere weiterhin die Programmiersprache MQL5 und heute füge ich den Code eines Skripts ein, das eine Fortsetzung einer der Aufgaben der Teilnehmer dieses Threads ist. Ich habe das Skript in allen Modi getestet. Alles funktioniert so, wie es sollte. Für den Anfang habe ich die Eingabeparameter auf ein Minimum reduziert.

Mit freundlichen Grüßen, Vladimir.

Strukturell sind die Funktionen korrekt geschrieben, aber die Logik ist lahm. Sehen Sie sich den gesamten Code genau an.

Das Ergebnis der Funktion Sufficient_time() sollte größer als Null sein, was eine logische Bedingung war.
 
MrBrooklin:

Vielen Dank, Peter! Mir wurde bereits geholfen, dieses Problem zu verstehen.

Ich setze mein Studium der Programmiersprache MQL5 fort und füge heute den Code eines Skripts ein, das eine Fortsetzung einer der Aufgaben der Teilnehmer dieses Threads ist. Ich habe das Skript in allen Modi getestet. Alles funktioniert so, wie es sollte. Für den Anfang habe ich die Eingabeparameter auf ein Minimum reduziert.

Mit freundlichen Grüßen, Vladimir.

Beschreiben Sie, was Ihr Skript macht. Und es ist immer besser, dies am Anfang zu tun. Das Ziel, warum. Mit welchen Aufgaben kann das Ziel erreicht werden. Wie die Aufgaben gelöst werden können, die Algorithmen zu ihrer Lösung und dann der Code. Übrigens, die Aufgabenteilung ist die Zersetzung)

 
Fast235:

Wir sollten ein Buch schreiben und alle zusammen

Diese Frage ist längst überfällig. Sergey Kovalev hat ein Handbuch für die Programmiersprache MQL4 geschrieben. Nun muss ein anderer Experte inspiriert werden, diese edle Tat für MQL5 zu vollbringen.

Mit freundlichen Grüßen, Vladimir.

Grund der Beschwerde: