Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 1186

 
Vladimir Karputov :

Wo ist die Frage? Was genau sind die Fehler? Tut mir leid, alle Telepathen sind im Urlaub.

Das ist die Frage. Ich verstehe auch nicht, was der Fehler ist. Glauben Sie, ich hätte es hier hineingeschrieben, wenn ich gewusst hätte, was der Fehler war? Ich bekomme nicht einmal die Fehlermeldung. Nur diese Nachricht und sonst nichts.

 
jaffer wilson:

Das ist die Frage. Ich verstehe auch nicht, was der Fehler war. Glauben Sie, ich hätte es hier hineingeschrieben, wenn ich gewusst hätte, was der Fehler war? Ich bekomme nicht einmal die Fehlermeldung. Nur diese Nachricht und sonst nichts.

Klicken Sie auf

 
Vladimir Karputov :

Wo ist die Frage? Was genau sind die Fehler? Tut mir leid, alle Telepathen sind im Urlaub.


OK, ich hab's.

Test auf EURUSD, H1 (Netting) Tradestatisticspanel (EURUSD, H1) OnInit Rückgabecode ist -1 kann Indikator nicht inkonsistent initialisieren

 

Bitte geben Sie mir einen Hinweis!

Die Hilfe sagt, dass eine Instanz einer Struktur eine Variable ist. Wir haben zum Beispiel eine Struktur

struct STRUCT_POSITION {
   double            volume;                 
   double            lot_coefficient;        
   bool              waiting_transaction;    
   ulong             waiting_order_ticket;   
   bool              transaction_confirmed;  
   }

Dann erstellen wir eine Instanz der Struktur, indem wir eine Variable des entsprechenden Typs deklarieren:

STRUCT_POSITION SPosition;

Aber ich bin im Code auf Folgendes gestoßen

STRUCT_POSITION SPosition[];

Und das verwirrte mich. Ich habe nirgendwo gesehen, dass man ein Array eines Strukturtyps deklarieren kann. Welche Eigenschaften wird dieses Feld jetzt haben? Vielleicht wissen Sie, wo man mehr darüber lesen kann?

 
odyn:

Bitte geben Sie mir einen Hinweis!

Die Hilfe sagt, dass eine Instanz einer Struktur eine Variable ist. Wir haben zum Beispiel eine Struktur

Dann erstellen wir eine Instanz der Struktur, indem wir eine Variable des entsprechenden Typs deklarieren:

Aber ich bin im Code auf Folgendes gestoßen

Und das verwirrte mich. Ich habe nirgendwo gesehen, dass man ein Array eines Strukturtyps deklarieren kann. Welche Eigenschaften wird dieses Feld jetzt haben? Kann man sie als "Strukturinstanz" bezeichnen? Können Sie mir sagen, wo ich mehr darüber lesen kann?

Forum über Handel, automatisierte Handelssysteme und Strategietests

FAQ von Anfängern MQL5 MT5 MetaTrader 5

Alexey Viktorov, 2020.02.23 08:29

Mit der Deklaration von struct STRUCT_POSITION {\...\} wird ein benutzerdefinierter Datentyp erstellt. Und STRUCT_POSITION SPosition[]; ist die Deklaration einer Variablen des Benutzertyps. Eckige Klammern [] zeigen an, dass es sich bei der Variablen um ein Array handelt. Sie können mehrere Variablen des Benutzertyps deklarieren, wie jeden anderen Typ auch.

double a, b[];

STRUCT_POSITION Pos, SPosition[];// при условии, что структура уже создана.
In diesem Eintrag Typ, Variable, Array

Oh... Ich habe nicht sofort bemerkt, dass Sie genau diese Antwort gegeben haben.

Genauer gesagt: Ein Array ist einfach eine Menge von indizierten Variablen. In diesem Fall spielt es keine Rolle, ob wir den Wert in der Variablen p1 oder in einer Zelle des Arrays p[0], in der Variablen p2 oder im Array p[1] speichern.

Wenn Sie 2-3 oder maximal 5 Variablen benötigen, können Sie mit Variablen arbeiten, aber wenn Sie 100 oder sogar eine unbekannte Anzahl von Variablen benötigen... Hier kommt die Schönheit von Arrays ins Spiel.

 
Alexey Viktorov:

Oh... Ich habe nicht sofort bemerkt, dass Sie die Antwort gegeben haben.

Genauer gesagt: Ein Array ist einfach eine Menge von indizierten Variablen. In diesem Fall spielt es keine Rolle, ob der Wert in der Variablen p1 oder in einer Zelle des Arrays p[0], in der Variablen p2 oder im Array p[1] gespeichert ist.

Wenn Sie 2-3 oder maximal 5 Variablen benötigen, werden Sie mit Variablen auskommen, aber wenn Sie 100 oder sogar eine unbekannte Anzahl von benötigten Variablen haben... Hier kommt die Schönheit von Arrays ins Spiel.

Alexey, verstehe ich richtig, dass ein Array, im Gegensatz zu einer Variable, wird nicht Felder der Struktur, sondern Instanzen der Struktur, in der Anzahl von Null bis mehrere enthalten?

P.S.: Der Code war nichtSTRUCT_POSITION Pos,SPosition[]

aberSTRUCT_POSITION SPosition[];

keine Variable.

 
odyn:

Alexey, verstehe ich richtig, dass ein Array, im Gegensatz zu einer Variable, wird nicht Felder der Struktur, sondern Instanzen der Struktur, in der Anzahl von Null bis mehrere enthalten?

Ein Bus (Variable mit Strukturtyp Bus) hat drei Felder:
1. Treiber
2. Dirigent
3. Passagiere[].
Eine Busflotte (eine Anordnung von Busstrukturen) besteht aus 120 Bussen, die alle die gleichen Felder haben:
1. Treiber
2. Dirigent
3. Passagiere[].
Aber jeder Bus hat diese Felder, die sich von denen anderer Busse unterscheiden.
Fazit: Eine Busflotte besteht aus einer Reihe von Bustyp-Strings.
 
Artyom Trishkin:
Ein Bus (Variable mit Strukturtyp Bus) hat drei Felder:
1. Treiber
2. Dirigent
3. Passagiere[].
Eine Busflotte (eine Anordnung von Busstrukturen) besteht aus 120 Bussen, die alle die gleichen Felder haben:
1. Treiber
2. Dirigent
3. Passagiere[].
Aber jeder Bus hat andere Felder als andere Busse.
Fazit: Eine Busflotte besteht aus einer Reihe von Bustyp-Strings.

Vielen Dank, das ist sehr klar. :) Es ist also ein Array von Streben, ich verstehe.

 
odyn:

Vielen Dank, das ist sehr klar. :) Es ist eine MASSIVE STRUKTUR, ich verstehe.

Artem hat es in meiner Abwesenheit sehr gut erklärt. Ich möchte nur zu Ihrem Verständnis beitragen: Sie erhalten eine Reihe von Strukturen, die eine Reihe von Passagieren enthalten.

Jede Zelle des Arrays hat einen Treiber, einen Leiter und viele Passagiere (Array).

 
Artyom Trishkin:

Hier

Sie erstellen ein Objekt der Basisklasse. Dementsprechend haben Sie überall eine Basisklasse.

aber ist es möglich, eine Klasse als Basisklasse zu deklarieren und sie dann, abhängig von den Bedingungen, als eine der geerbten Klassen zu überschreiben?

Die Aufgabe besteht darin, den Klassennamen im Code gleich zu lassen.

Bitte geben Sie auch an, welche Richtlinie zur Definition des Testers zu verwenden ist.

#ifdef MQL_TESTER || MQL_VISUAL_MODE

Ist es möglich, dies auf diese Weise zu tun?

Grund der Beschwerde: