Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 1415
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Добавил квадратные скобки void PrintArray(double &eArray[]) Компилятор ни показал ни одной ошибки и ни одного предупреждения.
НО..... функция Print() почему то не напечаталась ни одного раза.
Вашу лень понимаю, потому что сам такой. Если лень пройдет и на ее место придет энтузиазм , буду Вам признателен , если подскажете что еще не правильно в пользовательской функции.
Спасибо за помощь и извините за беспокойство.
Может массив пустой? Проверьте изменив чуток функцию
Если напечатает 0, то ищите проблему в заполнении массива.Нашел ошибку. В последнюю строку Print(str); вместо estr Вы передали str. Я исправил и все стало ОК.
Теперь как мне кажется , благодаря Вам , я усвоил эту тему не только в общих чертах, но во всех деталях. Единственным вопросом без ответа остался вопрос о плюсах из моего поста #14142
Спасибо за помощь и поддержку.
на форуме и в публикациях про С#, Delphi и всё прочее...
Нашел ошибку. В последнюю строку Print(str); вместо estr Вы передали str. Я исправил и все стало ОК.
Теперь как мне кажется , благодаря Вам , я усвоил эту тему не только в общих чертах, но во всех деталях. Единственным вопросом без ответа остался вопрос о плюсах из моего поста #14142
Спасибо за помощь и поддержку.
Это не я передал,
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам
Aleksei Stepanenko, 2021.03.13 09:04
или сделать отдельную функцию печати массива:
И вызывайте её из любого места
я просто не обратил внимания на это. Только не понятно как прошла компиляция без ошибки, непонятно…
А что отвечать если вы всё поняли и расписали всю последовательность
Как мне кажется, до меня наконец то дошло ( я слегка тугодум)......
На первой итерации строковая переменная str пустая. Символы =+ предписывают str присвоить себе саму себя пустую(без значений) и к самой себе пустой прибавить строку со значениями, а именно "--LoY["+IntegerToString(r)+"]--, "+DoubleToString(LoY[r],4)+", ";. Значением этой строки будет " --LoY[0]--, --1.6104-- ". После этих операций str на первой итерации получает значение " --LoY[0]--, --1.6104-- ". Как я понял в Вашей терминологии это называется первый элемент.
На второй итерации str уже имеет первый элемент со значением " --LoY[0]--, --1.6104-- " Символы =+ предписывают str присвоить себе саму себя со значением первого элемента и к самой себе со значением первого элемента прибавить строку с другими значениями, а именно "--LoY["+IntegerToString(r)+"]--, "+DoubleToString(LoY[r],4)+", ";. Значением этой строки уже будет " --LoY[1]--, --1.6105-- ". После этих операций str на второй итерации получает значение " --LoY[0]-- --1.6104-- --LoY[1]-- --1.6105-- ". То есть в str появился(приплюсовался) второй элемент. И на тридцатой итерации в str будет 30 элементов с разными значениями элементов массива.
А после окончания цикла, за его пределами будет один раз напечатана строковая переменная str с 30 элементами.
Я долго не мог понять этот алгоритм, потому что когда Вы говорили о сложении я обращал внимание исключительно на красные плюсы. "--LoY["+IntegerToString(r)+"]--, "+DoubleToString(LoY[r],4)+", а не на str+=
И поэтому для меня до сих пор остается загадкой какую же роль в этом алгоритме играют эти красные плюсы "--LoY["+IntegerToString(r)+"]--, "+DoubleToString(LoY[r],4)+"
Спасибо за помощь.
Я никогда этого не делал, можно какую-то ссылку для "чайников?"
Если вы до этого на C#, Delphi и прочих подобных не писали, то не поможет..Окна создаются как везде, но сначала надо узнать как это "везде"
Сначала краткий курс C#, WinForms (к примеру). В интернете их куча должно быть. Это немного выходит за рамку форума.
Alexey Viktorov
И какой загадкой осталось, если всё расписано правильно…Я долго не мог понять этот алгоритм, потому что когда Вы говорили о сложении я обращал внимание исключительно на красные плюсы. "--LoY["+IntegerToString(r)+"]--, "+DoubleToString(LoY[r],4)+", а не на str+=
И поэтому для меня до сих пор остается загадкой какую же роль в этом алгоритме играют эти красные плюсы "--LoY["+IntegerToString(r)+"]--, "+DoubleToString(LoY[r],4)+"
Ведь из того как я описал свое понимание однозначно следует что коннектация строк на каждой итерации происходит в одном месте и 1 раз вместе с операцией присвоения str+=
То есть при помощи символа + значение одного элемента в строковой переменной str соединяется (плюсуется) со значение другого элемента той же самой строковой переменной str
А что означают вот эти красные + я так и не понял str +="--LoY["+IntegerToString(r)+"]--, "+DoubleToString(LoY[r],4)+", ";. Ведь над значениями которые находятся между этими красными плюсами не производится никаких операция суммирования .....как мне кажется. Если я прав, тогда какую функцию выполняют эти красные плюсы. А если я не прав, тогда я что - то НЕДОпонял.
Кстати в Вашем посте #14109 в желтой строке , такой красны плюс только один и стоит перед +DoubleToString(LoY[r],4). А после его почему то нет.
Спасибо за помощь.
Только не понятно как прошла компиляция без ошибки, непонятно…
А я сам инициализировал str внутри тела пользовательской функции, когда увидел что компилятор указывал на то что str была не определена. Но забыл Вам об этом сказать.
Потом str из пользовательской функции я везде удалил , а в последней строке пользовательской функции в скобки поместил вместо str - eStr.
Если вы до этого на C#, Delphi и прочих подобных не писали, то не поможет..Окна создаются как везде, но сначала надо узнать как это "везде"
Сначала краткий курс C#, WinForms (к примеру). В интернете их куча должно быть. Это немного выходит за рамку форума.
Ну форму создать получилось.
Больше интересует как обмен данными прописать между моим окном и советником.
Aleksei Stepanenko:
Спасибо за уточнение.
Кстати желтые плюсы я удалял и компилятор выдавал ошибку. Значит они играют какую то роль во всей этой конструкции. А вот какую....я до сих пор и не понимаю. Зачем они нужны, если сложение строк осуществляется исключительно при помощи голубых плюсов. А больше в этой конструкции судя по Вашим объяснениям , ничего не складывается ..... если я не ошибаюсь.
И по поводу string(i)... По поводу приведения типов .... мне более менее понятно. Не понятно вот что..... string - это название типа переменной. i - переменная счетчик обозначающая индекс элемента массива. А почему i в круглых скобках () ? Я до сих пор считал что круглые скобки это признак функции. Например Print( ). И внутрь круглых скобок в некоторых функциях вводят различные данные. А что обозначают, или какую функцию исполняют круглые скобки применительно к i и ко всей этой конструкции - string(i). На первый взгляд кажется что раньше у переменной i был тип int ( целое число) , а потом Вы изменили тип переменной i с int на string (строковый). Но думать так не позволяют круглые скобки внутри которых стоит i
Спасибо за объяснения.