Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Во обще то вы не правы ... StringSplit(EnumToString(timeframe), '_', results); строка разбивается на 2 части так как '_' символ в строке один (PERIOD_M1), затем эти две строки засовываются в массив, и ретурном возвращается ячейка массива под номером 1 то бишь М1 , М5 , М15 , логически ошибки нет ...
int k=StringSplit(to_split,u_sep,result);
//--- выведем комментарий
PrintFormat("Получено строк: %d. Использован разделитель '%s' с кодом %d",k,sep,u_sep);
//--- теперь выведем все полученные строки
Посмотрите в этом примере куда возвращается значение StringSplit в переменную K
switch был жеж в MQL4
Я и не спорю. C4 говорил что switch не нужен
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Нужна ли независимая проверка продуктов Фриланса?
C-4, 2015.01.27 20:21
Не нужен здесь switch. Да и вообще функция явно избыточна, т.к. достаточно ее заменить на EnumToString. Но если уж она нужна, я бы написал что-то типа такого:
Первый (уже третий) вызвался к расстрельной стенке, кхе-кхе:)))
, а enum ов не было. Я и предложил им предоставить решение без этих двух компонент.
Просто у вашего варианта нет никаких преимуществ перед кондовым свичем, а в простоте он сильно проигрывает. Это как раз в тему о хорошем стиле
Неужели else и return в тех реалиях тоже отсутствовали?
//--- разобьем строку на подстроки
int k=StringSplit(to_split,u_sep,result);
//--- выведем комментарий
PrintFormat("Получено строк: %d. Использован разделитель '%s' с кодом %d",k,sep,u_sep);
//--- теперь выведем все полученные строки
Посмотрите в этом примере куда возвращается значение StringSplit в переменную K
Да ну ?
Массив строк, в который помещаются полученные подстроки.
Тема окупает свой попкорн :)
Оператор switch быстрее варианта массивами в 10 раз, но при этом по размеру кода больше ... Массивы в топку...
Во обще то вы не правы ... StringSplit(EnumToString(timeframe), '_', results); строка разбивается на 2 части так как '_' символ в строке один (PERIOD_M1), затем эти две строки засовываются в массив, и ретурном возвращается ячейка массива под номером 1 то бишь М1 , М5 , М15 , логически ошибки нет ...
Вы наверно забыли что первая ячейка массива является 0 а не 1
Придется повториться.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Нужна ли независимая проверка продуктов Фриланса?
Wahoo, 2015.01.27 21:55
Если Вы не поняли код, это не значит что он не работает...
Вы наверно забыли что первая ячейка массива является 0 а не 1
В 0 принимается PERIOD в 1 принимается M1, размер массива 2, поэтому что бы получить то что находится в массиве под 1 делаем
иначе 2-1=1
Можно так:
Какая разница. Код все равно будет работать.