У кого-нибудь есть метод для автоматического вычисления и извлечения символьного суффикса для символов с добавленными символами?
Пример:
Вставленный код string ecn_suffix = AutoSuffixFinder ();
У кого-нибудь есть метод для автоматического вычисления и извлечения символьного суффикса для символов с добавленными символами?
Пример:
Вставленный код string ecn_suffix = AutoSuffixFinder ();
С помощью приведенного ниже вы извлекаете все после символа пары ... Пример EURUSDecn ... ecn - извлеченная часть. Вставленный код строки sub = StringSubstr (_Symbol, 6,0)
Это работает, если вы знаете, что вы отбрасываете правильный символ, но моя проблема в том, что я работаю с несколькими символами, включенными в одну и ту же программу, и мой брокер показывает 3 разных символа для одной и той же пары, например. GBPUSD, GBPUSD_ и GBPUSDx. Когда я смотрю на обзор рынка, я знаю, что GBPUSD_ - это символ, который я хочу использовать, потому что суффикс (_) представлен более чем в 50% доступных символов. И я также хочу оценить только седьмой символ символов валюты, а не CFD. Вот что я придумал: вставленный код #property copyright nicholishen #property link www.reddit.com/u/nicholishenFX #property version 1.00 #property strict #include lrays \ ArrayObj.mqhgt; Суффикс класса: public CObject {public: строковый суффикс; int count; Суффикс (суффикс строки): суффикс (суффикс), count (1) {} int Сравнить (узел const CObject *, const int mode = 0) const {Суффикс * that = (Суффикс *) узел; if (this.count gt; that.count) return -1; иначе if (this.count lt; that.count) вернет 1; иначе вернуть 0; }}; class SuffixList: public CArrayObj {public: Suffix * operator # 91; # 93; (const int i) const {return (Suffix *) At (i);} void Add (строковый суффикс) {for (int i = 0; ilt) ; Total (); i ) {if (это # 91; i # 93; .suffix == суффикс) {this # 91; i # 93; .count ; вернуть; }} CArrayObj :: Add (новый суффикс (суффикс)); }};/ ----------------------------------------------- ------------------- /| Функция запуска скриптовой программы |/ ----------------------------------------------- ------------------- void OnStart () {//--- string res = AssumedSuffix (); res = res == NULL? NULL: res; Print (Предполагаемый суффикс - (, res,)); }/ ---------------------------------------------- -------------------- string AssumedSuffix () {Список суффиксов; int total = SymbolsTotal (false); for (int i = 0; ilt; total; i ) {string chart_name = SymbolName (i, false); if (StringLen (chart_name) == 7) {bool con = true; for (int j = 0; jlt; 6; j ) {if (! IsChar (StringSubstr (имя_карты, j, 1))) {con = false; перерыв; }} if (con) {string sub_string = StringSubstr (имя_карты, 6,1); list.Add (sub_string); }}} if (list.Total () gt; 0) {list.Sort (); список возврата # 91; 0 # 93; .suffix; } return NULL; } bool IsChar (строка c) {строка позволена = ABCDEFGHIJKLMNOPQRSTUVWXYZ; return StringFind (разрешено, c) gt; = 0; }Originally Posted by ;
почему комплион? одно решение: я думаю, что вам лучше с самого начала изменить символ диаграммы сначала принудительно, а затем применить, expertscriptindic, чтобы быть с желаемым суффиксом ChartSetSymbolPeriod function
1 Вложений, например, если это было GBPUSDx, оно будет принудительно изменено на GBPUSD_ Теперь, даже если вы не опускаетесь на правильный символ, ваша программа изменит символ графика на правильный символ. Приношу свои извинения, если я не понимаю твою точку зрения.
Да, вы упустили момент. Я не хочу объявлять постоянный символ, я хочу, чтобы алгоритм автоматически выяснил, какой символ использовать.Originally Posted by ;
Является ли критерий для поиска суффикса, который более повторяется в MarketWatch? в этом случае программа должна получить имя пары из MarketWATCH и проверять одну за другой. твой код, выше, решит проблему?Originally Posted by ;
Да, это критерии. Это уже делает это, но я не хочу только символы из обзора рынка, я хочу оценить все символы, предоставленные брокером. Сценарий работает именно так, как мне нужно. Вы можете использовать или модифицировать его так, как считаете нужным.Originally Posted by ;
ArrayObj.mqh, где можно найти этот код? Вы программируете это или это встроенный код?
Это часть стандартной библиотеки. Вы можете найти его в папке include \ arrays.Originally Posted by ;