Die Sprache MQL5 von Grund auf selbst erlernen - Seite 77

 
MrBrooklin:

Hallo Alexey, um ehrlich zu sein, bin ich nicht sehr gut im Programmieren. Bedeutet dies, dass der von Konstantin zur Verfügung gestellte Code fertiggestellt werden sollte?

Mit freundlichen Grüßen, Vladimir.

Sie muss überarbeitet und verworfen werden.

 
Alexey Viktorov:

Es muss überarbeitet und weggeworfen werden.

Warum so grausam!

Danke, Alexey!!! Ihr Code funktioniert perfekt.

Mit freundlichen Grüßen, Vladimir.

 

Alexey, alles ist klar über die Suche, weil StringFind ist eine Suche nach einem Teilstring in einer Zeichenfolge:

int  StringFind( 
   string  string_value,        // строка, в которой ищем 
   string  match_substring,     // что ищем 
   int     start_pos=0          // с какой позиции начинать поиск 
   );

Das Einzige, was ich nicht herausfinden kann, ist, warum wir die Funktion auf Gleichheit mit Null prüfen, wenn wir nach einer Teilzeichenkette in einer Zeichenkette suchen.

if(StringFind(_Symbol, Symbol_Main, 0) == 0)

Mit freundlichen Grüßen, Vladimir.

 
MrBrooklin:

Alexey, alles ist klar über die Suche, weil StringFind ist eine Suche nach einem Teilstring in einer Zeichenfolge:

Das Einzige, was ich nicht herausfinden kann, ist, warum wir die Funktion auf Gleichheit mit Null überprüfen, wenn wir nach einer Teilzeichenkette in einer Zeichenkette suchen.

Mit freundlichen Grüßen, Vladimir.

Aus der Dokumentation

Zurückgegebener Wert

Die Funktion gibt die Nummer der Teilzeichenkette in der Zeichenkette zurück, an der die gesuchte Teilzeichenkette beginnt. Wenn keine Teilzeichenkette gefunden wird, gibt die Funktion -1 zurück.

D.h. das Chart-Symbol beginnt mit "GBPUSD" und es spielt keine Rolle, welches Suffix angehängt wird.

Ich war allerdings auch ein bisschen voreilig. Wenn Sie z. B. nur "GBP" eingeben, dann ist jede Grafik gültig, wenn die Basiswährung "GBP" ist. Außerdem sollten wir die Länge des Textes in der Eingabezeile überprüfen.
 
Alexey Viktorov:

Aus der Dokumentation

d.h. das Chart-Symbol beginnt mit "GBPUSD" und es spielt keine Rolle, welches Suffix angehängt wird.

Allerdings war ich auch ein bisschen voreilig. Wenn Sie z.B. nur "GBP" eingeben, ist jedes Diagramm gültig, wenn die Basiswährung "GBP" ist. Außerdem sollten wir die Länge des Textes in der Eingabezeile überprüfen.

aber einfach vergleichen? und die Eingabe auf kleine Buchstaben beschränken. oder enum, das ist für foolproof))))

 
Alexey Viktorov:

Aus der Dokumentation

d.h. das Chart-Symbol beginnt mit "GBPUSD" und es spielt keine Rolle, welches Suffix angehängt wird.

Allerdings war ich auch ein bisschen voreilig. Wenn Sie z.B. nur "GBP" eingeben, dann ist jedes Diagramm gültig, wenn die Basiswährung "GBP" ist. Außerdem sollten wir die Länge des Textes in der Eingabezeile überprüfen.

Ich verstehe!

Mit freundlichen Grüßen, Vladimir.

 
Valeriy Yastremskiy:

aber nur vergleichen? und die Eingabe auf Kleinbuchstaben beschränken. oder enum, um des Narren willen))))

Hallo Valery! Ich habe von Anfang an mit ENUM_SYMBOL_INFO_STRING begonnen, aber aus irgendeinem Grund hat nichts funktioniert. Sie können es aber noch einmal versuchen.

Mit freundlichen Grüßen, Vladimir.

 
Valeriy Yastremskiy:

aber nur vergleichen? und die Eingabe auf kleine Buchstaben beschränken. oder enum, was ist foolproof))))

Sie können auch nur vergleichen, aber wenn die Zeichen ein Suffix haben, müssen Sie sie so eingeben, wie sie sind. Im Allgemeinen gibt es viele Möglichkeiten, und über den Geschmack der Flomaster lässt sich nicht streiten.

Wenn Sie jedoch eine Aufzählung haben, ist eine Suche in der Zeichenkette erforderlich. Denn die Aufzählung enthält reine Symbolnamen und das Diagramm kann beliebige Anhänge enthalten.

 
Alexey Viktorov:

Warum sollte man sich über einen unreifen Geist lustig machen? Ihr Code erfüllt die Anforderung überhaupt nicht. Wird in den Eingabeparametern nur "eu" oder "eur" eingegeben, wird dieser Teil der Bedingung

wird unabhängig davon erfüllt, welches Währungspaar "EU" in seinem Namen enthält, und es spielt keine Rolle, ob EUR die Basiswährung oder die notierte Währung ist. Und warum sollte man den Symbolnamen von MarketWatch durchgehen , um das richtige Symbol zu finden?

Alexej, das ist ein ganz normaler Code. Es ist nicht normal, dass man mehrere Symbole in einen Parameter eingeben muss, was wohl kaum jemand macht.

Ich habe in etwa die gleiche Umsetzung in meinem Arbeitsprodukt.

Diese Implementierung funktioniert erfolgreich in einer Lösung mit mehreren Währungen, was man von anderen Codes nicht behaupten kann, d.h. der Code ist universell.

 
Alexey Viktorov:

Sie könnten sie auch einfach vergleichen, aber wenn die Zeichen ein Suffix haben, müssen Sie sie so eingeben, wie sie sind. Im Allgemeinen gibt es eine ganze Reihe von Möglichkeiten, und es ist müßig, über den Geschmack der Flomaster zu streiten.

Wenn Sie jedoch eine Aufzählung haben, ist eine Suche in der Zeichenkette erforderlich. Die Aufzählung wird verwendet, um Namen von reinen Symbolen zu speichern, während die Tabelle beliebige Anhänge enthalten kann.

Alexey, danke für den Hinweis in Fettdruck. Ich werde versuchen, die allererste Version des Codes, den ich früher geschrieben habe, zu überarbeiten, um das Interesse zu wecken.

Mit freundlichen Grüßen, Vladimir.