Hat jemand eine Methode zum automatischen Berechnen und Extrahieren des Symbolsuffixes für Symbole mit angehängten Zeichen?
Beispiel:
Eingefügter Code string ecn_suffix = AutoSuffixFinder ();
Hat jemand eine Methode zum automatischen Berechnen und Extrahieren des Symbolsuffixes für Symbole mit angehängten Zeichen?
Beispiel:
Eingefügter Code string ecn_suffix = AutoSuffixFinder ();
Mit dem folgenden Befehl extrahieren Sie alles nach dem Paarsymbol. Eingefügter Code string sub = StringSubstr (_Symbol, 6,0)
Dies funktioniert, wenn Sie wissen, dass Sie auf das richtige Symbol fallen. Mein Problem ist jedoch, dass ich mit mehreren Symbolen arbeite, die in dasselbe Programm gezogen werden, und mein Broker 3 verschiedene Symbole für dasselbe Paar anzeigt, z. GBPUSD, GBPUSD_ und GBPUSDx. Wenn ich mir die Market Watch anschaue, weiß ich, dass GBPUSD_ das Symbol ist, das ich verwenden möchte, da das Suffix (_) in über 50% der verfügbaren Symbole dargestellt wird. Und ich möchte auch nur das siebte Zeichen von Währungssymbolen und nicht von CFDs auswerten. Folgendes habe ich mit Inserted Code #property copyright nicholishen #property link www.reddit.com/u/nicholishenFX #property version 1.00 #property strict #include lt; Arrays \ ArrayObj.mqhgt; Klasse Suffix: public CObject {public: String-Suffix; int count; Suffix (Zeichenfolge): Suffix (Suffix), count (1) {} int Compare (const CObject * -Knoten, const Int-Modus = 0) const {Suffix * that = (Suffix *) - Knoten; if (this.count gt; that.count) return -1; else if (this.count lt; that.count) 1 zurückgeben; sonst 0 zurückgeben; }}; class SuffixList: public CArrayObj {public: Suffix * operator # 91; # 93; (const int i) const {return (Suffix *) At (i);} void Add (Zeichenfolgen-Suffix) {für (int i = 0; ilt) ; Total (); i ) {if (dieses # 91; i # 93; .suffix ==-Suffix) {dieses # 91; i # 93; .count ; Rückkehr; }} CArrayObj :: Add (neues Suffix (Suffix)); }};/ ------------------------------------------- ------------------- /| Skriptprogramm-Startfunktion |/ ------------------------------------------- ------------------- void OnStart () {//--- string res = AssumedSuffix (); res = res == NULL? NULL: res; Print (Angenommenes Suffix ist (, res,)); }/ ---------------------------------------------- -------------------- string AssumedSuffix () {SuffixList-Liste; int total = SymbolsTotal (false); for (int i = 0; ilt; total; i ) {Zeichenfolgenname = SymbolName (i, false); if (StringLen (chart_name) == 7) {bool con = true; for (int j = 0; jlt; 6; j ) {if (! IsChar (StringSubstr (chart_name, j, 1))) {con = false; brechen; }} if (con) {string sub_string = StringSubstr (chart_name, 6,1); list.Add (sub_string); }}} if (list.Total () gt; 0) {list.Sort (); Rückkehrliste # 91; 0 # 93; .suffix; } NULL zurückgeben; } bool IsChar (Zeichenfolge c) {Zeichenfolge zulässig = ABCDEFGHIJKLMNOPQRSTUVWXYZ; return StringFind (erlaubt, c) gt; = 0; }Zitat von ;
Warum Komplimente? Eine Lösung: Ich denke, es war besser, das Diagrammsymbol von Anfang an zwangsweise zu ändern und dann die Funktion ExperteSkriptIndikator mit der gewünschten Suffixfunktion ChartSetSymbolPeriod anzuwenden
1 Anhang (s) Wenn es sich zum Beispiel um GBPUSDx handelte, wird es zwangsweise in GBPUSD_ geändert. Obwohl das rechte Symbol nicht angezeigt wird, ändert unser Programm das Diagrammsymbol in das rechte Symbol. Ich entschuldige mich, wenn ich keinen Punkt bekomme.
Ja, du hast den Punkt verpasst. Ich möchte kein konstantes Zeichen deklarieren, ich möchte, dass der Algorithmus automatisch herausfindet, welches Symbol verwendet werden soll.Zitat von ;
Ist das Kriterium, das Suffix zu finden, das in MarketWatch mehr wiederholt wird? In diesem Fall sollte das Programm den Namen der Paare von MarketWATCH erhalten und einen nach dem anderen überprüfen. Dein Code oben löst das Problem?Zitat von ;
Ja, das ist das Kriterium. Das macht es bereits, aber ich möchte nicht nur Symbole von Market Watch, ich möchte alle vom Broker gelieferten Symbole bewerten. Das Skript funktioniert genau so, wie ich es brauche. Sie können es gerne verwenden oder ändern, wenn Sie möchten.Zitat von ;
ArrayObj.mqh wo könnte man diesen Code finden? programmieren Sie es oder ist es ein integrierter Code?
Es ist Teil der Standardbibliothek. Sie finden es im Ordner include \ arrays.Zitat von ;