- Ошибки, баги, вопросы
- Кто использовал аналог функции mql4 FileWrite из WinAPI подскажите.
- Сырые идеи
Частично сталкивался писать одно и то же, что в MQL, что в PHP, что в ASP и прочее, ну в PHP многим известно есть include, require.. для результата разницы не имеют(почти)... в MQL встретил include, в отличии от library(в Library только описания функций), мне кажется в include больше возможностей, можно использовать глобальные переменные, предопределенные. Но в Library идет все независимо только от входящих переменых в функцию, вобщем хочу услышать мнение... Поясню готовлю крупный проект, функции и "части" проги кладу конечно в инклуд, но может стоит независимым в либ?? короче, че лучше??
Если рассматривать вопрос с точки зрения универсальности и масштабирования, то лучше использовать *.ex4 - библиотеку. В неё можно впихнуть любую универсальность, т.е работу как с единичными ордерами, с сетью, так и с набором сетей (если это вообще в Вашем проекте актуально), в то время, как с включаемыми файлами приходится делать несколько вариантов одних и тех же библиотек в зависимости от "нужд" конкретного советника.
Я тоже считаю, что использование библиотек предпочтительнее.
Во-первых, библиотека - это отдельный независимый код с собственными глобальными переменными и функциями с ограниченной видимостью (за исключением экспортирумых). Поэтому при её использовании отсутствуют конфликты, связанные с совпадением имён функций или глобальных переменных, в отличие от инклюдников. Кстати, использование общих глобальных переменных во включаемых файлах, о чём упомянул автор, на мой взгляд не очень хорошая идея. Потом будет сложно отслеживать взаимосвязи и выявлять ошибки. Лучше взаимодействовать с помощью функций и статических переменных.
Во-вторых, библиотека - это уже скомпилированная программа, поэтому сокращается время на компиляцию основного проекта.
В-третьих, динамическая библиотека даёт гибкость в работе. После её модификации не потребуется потом перекомпилировать все проекты, использующие данную библиотеку.
Однако есть и минус. В функциях библиотеки ex4 в качестве параметров почему-то нельзя передавать переменные по ссылке (это касается даже string). Приходится использовать массивы. А это далеко не всегда удобно. Непонятно, зачем разработчики устроили такой гемор. Причём в документации ни слова не сказано об этом.
Библиотека используется в том случае, когда предполагается ее распространение. То есть у конечного пользователя кода библиотеки не будет, будут только описания функций.
Для своего проекта логичнее использовать включаемые файлы.
Проект для ограниченого круга(не знающих основ программирования). Расростронение тут исключено.
Я тоже так думал... Документация:
Параметры по ссылке можно передавать только в пределах одного модуля, для библиотечных функций такая возможность не предусмотрена.
Но с мнением "про гемор" полностью солидарен.
Параметры по умолчанию нельзя передавать. У меня, например, все торговые функции заменяются на @Order...(...) - довольно удобно: подсветка, подсказки сохраняются, но, к сожалению, при вызове из библиотеки пришлось бы заполнять все аргументы. А через инклюд код вставлять - вызывает когнитивный диссонанс :)
Параметры по умолчанию нельзя передавать. У меня, например, все торговые функции заменяются на @Order...(...) - довольно удобно: подсветка, подсказки сохраняются, но, к сожалению, при вызове из библиотеки пришлось бы заполнять все аргументы. А через инклюд код вставлять - вызывает когнитивный диссонанс :)
Однажды я столкнулся с написанием своих инклуд и либрари!) Написал и то и то! Прошло пару месяцев и понадобилось внести небольшие изменения! Начался гемор от начавшегося забывания алгоритма работы! От инклуд отказался! Оставил только либрари! Вобщем мне показалось так удобнее! Т. к. либрари необходимо для работы основых экспертов и разных скриптов!
Где - то читал (в том числе и в доке), что через библу МЕДЛЕННЕЕ тестируется эксп, чем с инклюдами.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования