Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Не знаю, обрадуетесь Вы или нет, но в MQL5 относительно недавно появились ещё и другие "погремушки", как то: final, delete.
Ещё есть такая штука, как шаблоны проектирования. У Мохамеда есть целый цикл статей. Но как по мне, там практически нет примеров, что уменьшает полезность материала. В паттернах также можно найти частое использование полиморфизма...
Коллеги, вы как, дружите с шаблонами проектирования в рамках MQL5? ))
В MQL много чего имеет те же названия, что в плюсах, но отношения к плюсовым концепциям не имеет. Вопиющий пример это указатели, которые надо было назвать дескрипторами, которыми они по сути являются. А множественное убрали, потому что сложно и потенциальный источник ошибок.
Я давно придумал сравнение: С++ это проститутка. Делай с ней, что хочешь, но все риски на тебе. А MQL/C# как строгая жена, секс сильно ограничен, зато и риски минимальны. Кстати, в шарпе многие плюсовые вещи разрешены , но на твой страх и риск и под unsafe. Например:
Я давно придумал сравнение: С++ это проститутка. Делай с ней, что хочешь, но все риски на тебе. А MQL/C# как строгая жена, секс сильно ограничен, зато и риски минимальны. Кстати, в шарпе многие плюсовые вещи разрешены , но на твой страх и риск и под unsafe. Например:
Вспомнилось древнее, FIDO'шное:
... C++: Вы создаете кучу копий себя, и стреляете каждому в ногу. Оказание медпомощи затруднительно по тем причинам, что вы не знаете, где настоящая копия вас, а где стоит указатель, показывает пальцем и говорит: "Вон я там!". ... Pascal: Компилятор не даст вам выстрелить себе в ногу. ...Полностью тут.
Вспомнилось древнее, FIDO'шное:
Полностью тут.
Да ладно, в начале нулевых на работе на компах стояла Windows 98 и Delphi, тот же Паскаль, только более продвинутый. Я из интереса добивался на Дельфи появления в Винде синего экрана смерти. Просто у Windows 98 еще было единое адресное пространство для всех программ. А начиная с хрюши (а может даже с NT) для каждой проги выделяется свое адресное пространство и программа считает, что весь комп принадлежит безраздельно ей. Так что можно завесить программу, но не всю систему. И сказал ОН, что это хорошо )).
Уже не помню подробностей, но в Дельфи точно есть виртуальные функции. И чего мне не хватает в MQL, обработки исключений через try, это есть в конце примера :
Да ладно, в начале нулевых на работе на компах стояла Windows 98 и Delphi, тот же Паскаль, только более продвинутый. Я из интереса добивался на Дельфи появления в Винде синего экрана смерти. Просто у Windows 98 еще было единое адресное пространство для всех программ. А начиная с хрюши (а может даже с NT) для каждой проги выделяется свое адресное пространство и программа считает, что весь комп принадлежит безраздельно ей. Так что можно завесить программу, но не всю систему. И сказал ОН, что это хорошо )).
3.1, 3.11, 95, 98, Millenium и NT 3.5, NT 3.51, NT 4.0, W2000, WXP - совершенно разные семейства.
3.1, 3.11, 95, 98, Millenium и NT 3.5, NT 3.51, NT 4.0, W2000, WXP - совершенно разные семейства.
Начиная с NT 4 кардинально поменялся подход к защите адресного пространства и он сохраняется и в Win 11. А так да, все растет и развивается. Я помню времена около 2007 г., когда редактор МТ4 валиля от банального копи-пасте в коде! А компилятор спокойно пропускал вот такие безобразия, даже без варнингов, условный пример ниже! Прошло время и с версии 600 в 2013 г. ввели структуры, ООП и все работает без особых проблем.
Поставьте мне напрямую задачу, сделать код без классов и сделать тот же код с задействованием классов. Я хочу увидеть полезность этого на живом примере.
Самый простой пример с простой функцией - IsNewBar.
По этой функции определяем что пришла новая свечка. У этой функции один нюанс - повторный вызов всегда возвращаем фальш. А вызвать повторно иногда надо. Это может быть и мультивалютный советник и надо на разных периодах проверить свечки и т.д. Если вместо этой функции использовать класс, то для каждой ситуации можно создать свой экземпляр класса и всё, очень удобно.
Самый простой пример с простой функцией - IsNewBar.
По этой функции определяем что пришла новая свечка. У этой функции один нюанс - повторный вызов всегда возвращаем фальш. А вызвать повторно иногда надо. Это может быть и мультивалютный советник и надо на разных периодах проверить свечки и т.д. Если вместо этой функции использовать класс, то для каждой ситуации можно создать свой экземпляр класса и всё, очень удобно.
Если 2-3 инструмента или 2-3 ТФ то это не проблема. А вот если мультивалютный советник и количество как и список валютных пар на стадии написания программы не известен, то тут без объектов обойтись очень трудно. Да и невозможно наверное.
Если 2-3 инструмента или 2-3 ТФ то это не проблема. А вот если мультивалютный советник и количество как и список валютных пар на стадии написания программы не известен, то тут без объектов обойтись очень трудно. Да и невозможно наверное.
все там легко, массивы и все
массив структур полезен тоже будет
все там легко, массивы и все
массив структур полезен тоже будет
и одного не пойму, для чего используют функцию новый бар? если берется данные с закрытого бара, то и условие сработает на новом, а с функцией есть много неприятностей, типа не открытия позиции с первого тика