Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Вот упрощенное объяснение -> https://www.mql5.com/en/forum/117210. Массивы всегда передаются по ссылке в MQL4.
Да, спасибо. Но, как я уже спрашивал, подразумевает ли это, что на других языках это не так? Если бы это был единственный способ донести это, используя MQ/MT4 или другую языковую конструкцию, тогда, я полагаю, им не пришлось бы утруждать себя заявлением об этом.
Наверное, я спрашиваю о "технических деталях", как вы сказали в том сообщении. Просто из любопытства, а не по необходимости.
Что касается синтаксиса, то язык MQL5 для программирования торговых стратегий очень похож на язык программирования C++, за исключением некоторых особенностей:
Таким образом, я могу предположить, что на C++ все будет наоборот... В любом случае, спасибо, Гордон.
Извините, но это не "технический" ответ :) Не могли бы вы сказать, почему лучше передавать переменную по ссылке, а не глобальную переменную?
Много причин, которые я предпочитаю не повторять, вместо этого я отсылаю вас сюда -> https://en.wikipedia.org/wiki/Global_variable и сюда -> http://www.c2.com/cgi/wiki?GlobalVariablesAreBad (вы можете погуглить для большего... Это общепринятая концепция и в сети есть много информации).
[...] подразумевает ли это, что на другом языке это не так? [...]
Много причин, которые я предпочитаю не повторять, вместо этого я отсылаю вас сюда -> https://en.wikipedia.org/wiki/Global_variable и сюда -> https://www.mql5.com/go?link=http://www.c2.com/cgi/wiki?GlobalVariablesAreBad (вы можете погуглить для большего...). Это общепринятая концепция, и в сети есть много информации).
Очень интересно! К сожалению, советнику нужны параметры, и иногда много, так что мы не можем избежать их и должны заботиться обо всех причинах, упомянутых в https://www.mql5.com/go?link=http://www.c2.com/cgi/wiki?GlobalVariablesAreBad.
Я использую правила именования для GlobalVariable : гораздо проще управлять и избежать некоторых ошибок.
Спасибо, Гордон.
Очень интересно! К сожалению, EA нужны параметры, и иногда много, так что мы не можем избежать их [...].
Экстерны действительно неизбежны. Хотя они глобальны по области видимости, это не то же самое, что глобальные переменные (не путать с GV); в частности - не рекомендуется изменять их значение через код, следовательно, они не должны использоваться для передачи информации между функциями (см. здесь -> https://www.mql5.com/en/forum/123535).
Я использую правила именования для GlobalVariable: гораздо проще управлять и избежать некоторых ошибок.
Просто любопытно: существуют ли ЛЮБЫЕ языки программирования, в которых есть функции, возвращающие несколько результатов?
возможно, вы могли бы обмануть функцию, чтобы она возвращала два значения, объединив их таким образом, чтобы их можно было снова рассоединить в вызывающей функции.
что-то вроде этого
a = 10;
b = 20;
a = a*1000
c = a+b // 10020
return(c);
затем в вызывающей функции
b = c%1000 // 20
a = c-b/1000 // 10
возможно, вы могли бы обмануть функцию, чтобы она возвращала два значения, объединив их таким образом, чтобы их можно было снова рассоединить в вызывающей функции.
что-то вроде этого
[...]Почему бы и нет?
Почему бы и нет?