Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
И что такое "cout << ..." ?
Мне, как пользователю cout <<, не интересно как она устроена, мне важен конечный результат, тем более, что разговор идет не про cout <<, а про передачу строкового параметра равного NULL в функцию. И различия между С++ и MQL здесь очевидны.
Одно хочу сказать - не нужно делать утверждений не разобравшись предварительно.
Если вернуться к первому посту.
Никакой ошибки передачи параметра тут нет.
Первый параметр функции func - это строка, NULL - это число 0.
В MQL (как и в JavaScript к примеру, и многих других языках) если на месте строки стоит цисло, то оно автоматически преобразуется в строку. Тут все правильно.
Есть другая ошибка.
Нельзя было в языке разрешать такую запись:
1. Если у встроенной функции первый параметр строковый, то там должны писаться только строки.
2. Если написано на этом месте число, то оно всегда должно преобразовываться в строку.
3. Если NULL это просто константа 0, то она всегда и везде должна интерпретироваться как 0. Т.е. у NULL недолжно быть никаких других тайных смыслов.
4. Запись вида iAC(NULL, timeframe, shift) всегда должна быть эквивалентна iAC(0, timeframe, shift) и iAC("0", timeframe, shift).
Как проще всего разрешить эту проблему.
Во всех встроенных индикаторах для этих строковых параметров (символ), значения NULL и "0" считать эквивалентными - как отсутствие значения и использование Symbol(). Это как заплатка на то, что уже сделано. А если бы сначала правильно делать, то для обозначения текущего символа нужно было использовать пустую строку - "".
Все таки MQL наверное ближе к JavaScript, чем С.