Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 1961
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Переформулирую свой вопрос , что бы он стал более понятен.
ВОПРОС Можно ли в mql4 элементу массива присвоить не значение константы, не значение переменной( без самой переменной), а выражение , или переменную вместе с ее значением ?
Например LoS[0]= х+у ; Где , например изначально эти переменные инициализированы х = 10, а у = 20 и переменная LoS[0] после присвоения ей выражения х+у содержала бы значение 30. То, есть в LoS[0] должна попадать не только сумма значений Х и У, но в LoS[0] должны попадать и сами переменные Х и У вместе со своими значениями.
А потом, после изменения в программе значения переменной х с 10 на 30 , значение элемента массива LoS[0] автоматически стало бы 50 поскольку значение х в коде изменилось на 30.
То есть в этом случае для каждого изменения значения LoS[0] не нужно было бы делать стандартную операцию присвоения LoS[0]= х+у ; А поскольку Х и У(как переменные) уже находятся внутри LoS[0], то изменение значения LoS[0] происходило бы автоматически , без операции присвоения , после того как в программе изменялось бы значение Х и(или) У
Если в LoS[0] попадают только значения Х и У , то для изменения значения LoS[0] каждый раз нужно делать операция присвоения. Если в LoS[0] попадают НЕ только значения Х и У ,но и сами переменные Х и У , то для изменения значения LoS[0] каждый раз НЕ нужно делать операция присвоения, но достаточно изменить в коде значение переменных Х и(или) У.
Переформулирую свой вопрос , что бы он стал более понятен.
ВОПРОС Можно ли в mql4 элементу массива присвоить не значение константы, не значение переменной( без самой переменной), а выражение , или переменную вместе с ее значением ?
Например LoS[0]= х+у ; Где , например изначально эти переменные инициализированы х = 10, а у = 20 и переменная LoS[0] после присвоения ей выражения х+у содержала бы значение 30. То, есть в LoS[0] должна попадать не только сумма значений Х и У, но в LoS[0] должны попадать и сами переменные Х и У вместе со своими значениями.
А потом, после изменения в программе значения переменной х с 10 на 30 , значение элемента массива LoS[0] автоматически стало бы 50 поскольку значение х в коде изменилось на 30.
То есть в этом случае для каждого изменения значения LoS[0] не нужно было бы делать стандартную операцию присвоения LoS[0]= х+у ; А поскольку Х и У(как переменные) уже находятся внутри LoS[0], то изменение значения LoS[0] происходило бы автоматически , без операции присвоения , после того как в программе изменялось бы значение Х и(или) У
Если в LoS[0] попадают только значения Х и У , то для изменения значения LoS[0] каждый раз нужно делать операция присвоения. Если в LoS[0] попадают НЕ только значения Х и У ,но и сами переменные Х и У , то для изменения значения LoS[0] каждый раз НЕ нужно делать операция присвоения, но достаточно изменить в коде значение переменных Х и(или) У.
Нет, это свойство массива, размерность задается числом, не переменной. Индекс это инт число или переменная инт, которая меньше размерности. А элемент массива может хранить у себя переменные различных типов, которые туда можно записать, и потом перезаписать. Функцию в нашем случае записать в элемент массива нельзя, только результат. Это в других языках тока массивы функций, операций...))) И то это надстройка записи, а в реале сперва вычисляются результаты и потом записываются в массив по адресу.
Нет. Так, как хотите Вы не получится. Так или иначе придется выполнять некий код, который будет менять элементы массива.
Спасибо за ответ. Но в моем предполагаемом массивы значения всех элементов должны меняться постоянно. Но я хотел их менять не традиционным способом, а так как описал в своем посте и так как к сожалению , по вашему мнению, поменять не получится.
Нет, это свойство массива, размерность задается числом, не переменной. Индекс это инт число или переменная инт, которая меньше размерности. А элемент массива может хранить у себя переменные различных типов, которые туда можно записать, и потом перезаписать. Функцию в нашем случае записать в элемент массива нельзя, только результат. Это в других языках тока массивы функций, операций...))) И то это надстройка записи, а в реале сперва вычисляются результаты и потом записываются в массив по адресу.
Понял. Спасибо за помощь. Тогда в связи с этим вопросом хотел бы для себя усвоить такое понятие как ССЫЛКА на . То есть можно ли в переменную поместить не значение переменной, а ссылку на эту переменную в которой находится значение ? И вообще ... есть ли в mql 4 такое понятие как ССЫЛКА НА . Если есть, то что это такое и на что может быть ССЫЛКА.
Спасибо.
Понял. Спасибо за помощь. Тогда в связи с этим вопросом хотел бы для себя усвоить такое понятие как ССЫЛКА на . То есть можно ли в переменную поместить не значение переменной, а ссылку на эту переменную в которой находится значение ? И вообще ... есть ли в mql 4 такое понятие как ССЫЛКА НА . Если есть, то что это такое и на что может быть ССЫЛКА.
Спасибо.
Только на объекты классов. На переменные базовых типов не получится хранить ссылки.
Спасибо. А я правильно понимаю, что в mql 4 нет объектов классов и что обычную переменную в mql 4 нельзя преобразовать в объект класса?
Спасибо. А я правильно понимаю, что в mql 4 нет объектов классов и что обычную переменную в mql 4 нельзя преобразовать в объект класса?
1) В MQL4 есть классы и, соответственно, объекты классов.
Спасибо за ценную информацию. Как я понял в MQL4 я могу создать класс объектов и поместить в этот класс одну обычную переменную , после чего эта обычная переменная станет объектом этого класса.
ВОПРОС А после этого ссылку на данный объект (переменную со значением) я смогу присвоить элементу массива?
Спасибо за ценную информацию. Как я понял в MQL4 я могу создать класс объектов и поместить в этот класс одну обычную переменную , после чего эта обычная переменная станет объектом этого класса.
ВОПРОС А после этого ссылку на данный объект (переменную со значением) я смогу присвоить элементу массива?
Амперсанд, ссылка, это ссылка на переменную. Используется, когда в функции вычисляются, именно вычисляются различные переменные, и результат запишется в эти переменные. Без ссылки переменные в функции используются ДЛЯ вычислений.
Хендл файла вычисляется и записывается в переменную, которая по ссылке входит в аргументы функции.
Без амперсанда запись для 2х разный файлов была бы такая
У вас наоборот понимание, по ссылке происходит запись в переменную, а не получение значения переменной.
Про классы лучше почитать сначала. Не все там просто.
Амперсанд, ссылка, это ссылка на переменную. Используется, когда в функции вычисляются, именно вычисляются различные переменные, и результат запишется в эти переменные. Без ссылки переменные в функции используются ДЛЯ вычислений.
Хендл файла вычисляется и записывается в переменную, которая по ссылке входит в аргументы функции.
Без амперсанда запись для 2х разный файлов была бы такая
У вас наоборот понимание, по ссылке происходит запись в переменную, а не получение значения переменной.
Про классы лучше почитать сначала. Не все там просто.
Спасибо большое за развернутое объяснение. Теперь я все понял по своему вопросу.