Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Ну не стану я доказывать что это истинная правда. Для человека который не знаком с программированием на С++ и вообще ООП это достаточно сложно и совсем не для красного словца или рождения мифа. Как ни странно, я за неделю в этом разобрался и написал то что было надо. И это совсем другой миф, это говорит о том, что освоение mql5 доступно даже не профессионалам, таким как я.
В любом ООП можно программить алгоритмически, а сам ООП использовать только как обёртку. Я когда начинал кодить на Java, тоже с ООП сначала не разобрался, но особых проблем не увидел. Проблемы возникают позже, т.к. читать сырцы на алгоритмических языках очень сложно. Использовать библиотеки в алгоритмике в разы сложнее, т.к. их нужно прикручивать, перед тем как использовать.
Нисколько не отличается. Это два одинаковых языка с единым компилятором.
В таком ключе и C++ от JavaScript ничем не отличается. И это правда!
Что только у нас на форуме не увидишь.
А что, ответственности то никакой. Можно ляпнуть что угодно.
Юрий, а зачем ты мне объясняешь как это просто? Одному просто, другому очень просто, а кому-то недоступно.
Сложно разобраться, если нет документации, примеров, статей. Но когда это всё есть, да ещё и в проблемном случае можно задавать вопросы на форуме, то говорить о недоступности - это уже гнилая отмазка.
Изыди. Лично я освою и этот язык без проблем и вопросов. А кому-то это недоступно по складу характера, что угодно ему напиши.
Так и не могу понять с какой целью ты ввязался в диалог и высказываешь мнение совершенно по другой теме.
Что только у нас на форуме не увидишь.
А что, ответственности то никакой. Можно ляпнуть что угодно.
Точно. Особенно пользуясь авторитетом начальственного положения.
Все языки одинаковые, за небольшим исключением особо экстравагантных. Все они изучаются за 21 день любым чайником. У всех for, while, if, switch, может быть форма записи отличается, но принципиально от этого ничего не меняется. Значение имеет не форма записи операторов, а инфраструктура с которой язык взаимодействует. В этом отношении МТ4 и МТ5 - два разных мира.
Разница во всем. Начиная с незначительного - с нумерации баров в индикаторе, в МТ4 справа налево, в МТ5 слева направо. Продолжая более существенным - совокупной позицией и организацией данных истории торговли. Самая большая разница, в том, что чаще всего требуется - в способе доступа к данным котировок и индикаторов, копирование данных требует проверки, индексация то слева направо то справа налево, время бара то входит в диапазон, то не входит. Чего стоит только одно обсуждение аналога функции iBarShift() в CodeBase.
В МТ4 для обеспечения устойчивой работы советника достаточно было проверять возвращаемое значение OrderSelect(), а МТ5 надо на каждом шагу делать проверки, даже при получении данных последнего тика. Еще есть некоторые тонкости, программирования для МТ5, которые познаешь только набив себе много шишок, потому-что разложено много граблей.
Целиком и полностью поддерживаю Ваше мнение!
Расширение функционала это конечно хорошо, но под капотом МТ5 необходимо было оставить функции МТ4 для совместимости. Разумеется только те что вписываются в рамки торговой модели МТ5.
Чтобы исходники от четверки портировались с минимальными изменениями.
Я хоть и пользуюсь МТ5, в качестве мультивалютного тестера, но неоправданно усложнённые вызовы функций отталкивают.
Те же функции для перехода на МТ5 (https://www.mql5.com/ru/articles/81), почему же их не реализовать в самом ядре?
Зачем понадобилось переименовывать функции по преобразованию типов, например
казалось бы элементарщина, но... реформы ради реформ?
Или например, функции работы со временем
int Hour()
Функция получения данных с графика
И таких примеров сотня!
Безусловно МТ5 функциональней, но МТ4 удобнее! А это иногда гораздо важнее!
Точно. Особенно пользуясь авторитетом начальственного положения.
Заявление "В таком ключе и C++ от JavaScript ничем не отличается" - это глупость в ключе обсуждения разницы MQL4 и MQL5. И ее кто-то ляпнул.
Авторитет зарабатывается долго и большим объемом работы. Я этот объем выполнил и слежу за тем, что говорю.
Разница во всем. Начиная с незначительного - с нумерации баров в индикаторе, в МТ4 справа налево, в МТ5 слева направо. Продолжая более существенным - совокупной позицией и организацией данных истории торговли. Самая большая разница, в том, что чаще всего требуется - в способе доступа к данным котировок и индикаторов, копирование данных требует проверки, индексация то слева направо то справа налево, время бара то входит в диапазон, то не входит. Чего стоит только одно обсуждение аналога функции iBarShift() в CodeBase.
Странная получается ситуация. Любые языки чайником за 21 день учатся, но нумерация баров и доступ к данным становятся проблемой.
Еще раз повторю - языки практически одинаковы, отличаются небольшим набором функций и компилятор у них единый. У MQL4 устаревший подход к работе с данными, который неприемлем для систем с глубокой и детализированной историей. Используйте новые CopyXXX функции в MQL4 и будет как в MQL5.
В МТ4 для обеспечения устойчивой работы советника достаточно было проверять возвращаемое значение OrderSelect(), а МТ5 надо на каждом шагу делать проверки, даже при получении данных последнего тика. Еще есть некоторые тонкости, программирования для МТ5, которые познаешь только набив себе много шишок, потому-что разложено много граблей.
И в MQL4 и в MQL5 везде надо проверять результаты функций.
Многие в MQL4 просто не обращали внимания на проверки и брали данные как есть. И в MQL5 так же пишут, а потом их форекс программы падают при запуске на CFD, фьючерсах или акциях просто из-за того, что авторам было лень проверить параметры инструментов или наличие данных.
Я хоть и пользуюсь МТ5, в качестве мультивалютного тестера, но неоправданно усложнённые вызовы функций отталкивают.
Задумайтесь над тем, что дают новые функции доступа к данным и почему так сделано.
В MetaTrader 4 лимитированная глубина истории, отдельные таймфремы и прямой доступ к барам своего символа через Open/High/Low/Close/Time[xxx]. Такой прямой доступ очень дорог в реализации с точки зрения ресурсов и затрат CPU. Задумайтесь о том, что каждый эксперт имеет свою локальную копию этих данных, чтобы не конфликтовать с другими экспертами и самим терминалом.
При росте количества символов (например, в МТ5 можно иметь 5 000-10 000 инструментов) и использовании глубокой минутной истории как основы всех таймфреймов, уже в принципе невозможно использовать методы работы MT4. Банально не хватит оперативной памяти, да еще копирование больших кусков убивает производительность. Поэтому в МТ5 уже нет автоматического ведения скрытой и дорогой копии чарта для каждого экперта.
Вместо этого мы перешли на очень экономные CopyXXX функции, где разработчик точно запрашивает в локальный массив столько данных, сколько ему нужно, а не весь доступный график. Дальше идет максимально быстрая работа с локальными данными (вместо старого достаточно дорого Open/High/Low/Close/Time[xxx]), плюс автор может кешировать эти данные и экономно использовать их при следующем вызове. Экономия по памяти и CPU получается огромная. Кроме того, у самой платформы развязываются руки по управлению огромными базами - доступ к ним всегда по запросу(вместо неконтролируемого прямого) и это позволяет гибко управлять кешами.
Еще важно отметить, что простота обращения Open/High/Low/Close/Time[xxx] в MQL4 касалась только текущего символа и таймфрейма, а все остальные данные других символов и таймфреймов доставались через iClose/iLow(...) функции, что давало серьезнейшие тормоза. Переход в MQL5 на единую модель CopyXXX функций в корне улучшил ситуацию, дав возможность разработчикам одним запросом получать нужные куски данных и не делать многократные блокируемые вызовы (задумайтесь о блокировках в каждом одиночном вызове iClose).
Те же функции для перехода на МТ5 (https://www.mql5.com/ru/articles/81), почему же их не реализовать в самом ядре?
Это не наши функции как и статья. Эта статья являет собой набор чудовищных костылей, но выпущена была для показа разницы.
Я сам многократно объяснял как раз по вопросам перехода на MQL5 и конкретно этой статьи, что нужно использовать новые возможности MQL5, а не лепить умопомрачительные костыли.
Зачем понадобилось переименовывать функции по преобразованию типов, например
казалось бы элементарщина, но... реформы ради реформ?
Это правильный подход построения качественной архитектуры языка. Имена функций должны быть понятными, а не быть набором сокращений.
Новый язык и удобные функции автозаполнения позволили нам провести ревизию языка и сделать его чище.
Или например, функции работы со временем Функция получения данных с графика И таких примеров сотня!
Эти примеры костылей (обычно про такое говорят "сделать операцию на гландах черех ж") нельзя использовать для сравнения.
Теоретический материал уже устарел, так как MQL4 был прямо сведен к совместимости с MQL5 и теперь в MQL4 добавлено множество совместимых функций.
Безусловно МТ5 функциональней, но МТ4 удобнее! А это иногда гораздо важнее!
Не могу согласиться.
MetaTrader 5 гораздо удобнее как в пользовании программой, так и в языке.