Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Не поставляешь сигналы и не продаешь приложения? Не проблема, заработать могут все!
ERROR-404
23
ERROR-404 2013.07.15 11:02 
Частично сталкивался писать одно и то же, что в MQL, что в PHP, что в ASP и прочее, ну в PHP многим известно есть include, require.. для результата разницы не имеют(почти)... в MQL встретил include, в отличии от library(в Library только описания функций), мне кажется в include больше возможностей, можно использовать глобальные переменные, предопределенные. Но в Library идет все независимо только от входящих переменых в функцию, вобщем хочу услышать мнение... Поясню готовлю крупный проект, функции и "части" проги кладу конечно в инклуд, но может стоит независимым в либ?? короче, че лучше??
Ihor Herasko
8453
Ihor Herasko 2013.07.15 11:14  

Библиотека используется в том случае, когда предполагается ее распространение. То есть у конечного пользователя кода библиотеки не будет, будут только описания функций.

Для своего проекта логичнее использовать включаемые файлы.

TarasBY
1743
TarasBY 2013.07.15 11:24  
ERROR-404 :
Частично сталкивался писать одно и то же, что в MQL, что в PHP, что в ASP и прочее, ну в PHP многим известно есть include, require.. для результата разницы не имеют(почти)... в MQL встретил include, в отличии от library(в Library только описания функций), мне кажется в include больше возможностей, можно использовать глобальные переменные, предопределенные. Но в Library идет все независимо только от входящих переменых в функцию, вобщем хочу услышать мнение... Поясню готовлю крупный проект, функции и "части" проги кладу конечно в инклуд, но может стоит независимым в либ?? короче, че лучше??

Если рассматривать вопрос с точки зрения универсальности и масштабирования, то лучше использовать *.ex4 - библиотеку. В неё можно впихнуть любую универсальность, т.е работу как с единичными ордерами, с сетью, так и с набором сетей (если это вообще в Вашем проекте актуально), в то время, как с включаемыми файлами приходится делать несколько вариантов одних и тех же библиотек в зависимости от "нужд" конкретного советника.

Alexey Navoykov
3957
Alexey Navoykov 2013.07.16 03:58  

Я тоже считаю, что использование библиотек предпочтительнее.

Во-первых, библиотека - это отдельный независимый код с собственными глобальными переменными и функциями с ограниченной видимостью (за исключением экспортирумых). Поэтому при её использовании отсутствуют конфликты, связанные с совпадением имён функций или глобальных переменных, в отличие от инклюдников. Кстати, использование общих глобальных переменных во включаемых файлах, о чём упомянул автор, на мой взгляд не очень хорошая идея. Потом будет сложно отслеживать взаимосвязи и выявлять ошибки. Лучше взаимодействовать с помощью функций и статических переменных.

Во-вторых, библиотека - это уже скомпилированная программа, поэтому сокращается время на компиляцию основного проекта.

В-третьих, динамическая библиотека даёт гибкость в работе. После её модификации не потребуется потом перекомпилировать все проекты, использующие данную библиотеку.

Однако есть и минус. В функциях библиотеки ex4 в качестве параметров почему-то нельзя передавать переменные по ссылке (это касается даже string). Приходится использовать массивы. А это далеко не всегда удобно. Непонятно, зачем разработчики устроили такой гемор. Причём в документации ни слова не сказано об этом.



ERROR-404
23
ERROR-404 2013.07.16 06:50  
Scriptong :

Библиотека используется в том случае, когда предполагается ее распространение. То есть у конечного пользователя кода библиотеки не будет, будут только описания функций.

Для своего проекта логичнее использовать включаемые файлы.


Проект для ограниченого круга(не знающих основ программирования). Расростронение тут исключено.
TarasBY
1743
TarasBY 2013.07.16 09:43  
Meat : Однако есть и минус. В функциях библиотеки ex4 в качестве параметров почему-то нельзя передавать переменные по ссылке (это касается даже string). Приходится использовать массивы. А это далеко не всегда удобно. Непонятно, зачем разработчики устроили такой гемор. Причём в документации ни слова не сказано об этом.

Я тоже так думал... Документация:

Параметры по ссылке можно передавать только в пределах одного модуля, для библиотечных функций такая возможность не предусмотрена.

Но с мнением "про гемор" полностью солидарен.

ERROR-404
23
ERROR-404 2013.07.16 18:42  
Понимаете по ссылки передаются параметры, их у меня бывает до 50, естественно они не указываются, они в глобальные заключены
Vladimir Kazakov
5032
Vladimir Kazakov 2013.07.17 11:48  

Параметры по умолчанию нельзя передавать. У меня, например, все торговые функции заменяются на @Order...(...) - довольно удобно: подсветка, подсказки сохраняются, но, к сожалению, при вызове из библиотеки пришлось бы заполнять все аргументы. А через инклюд код вставлять - вызывает когнитивный диссонанс :)

Alexey Navoykov
3957
Alexey Navoykov 2013.07.17 12:08  
kazakov.v :

Параметры по умолчанию нельзя передавать. У меня, например, все торговые функции заменяются на @Order...(...) - довольно удобно: подсветка, подсказки сохраняются, но, к сожалению, при вызове из библиотеки пришлось бы заполнять все аргументы. А через инклюд код вставлять - вызывает когнитивный диссонанс :)

Ну для таких целей можно функцию @Order... оформить просто как промужуточную прокладку, из которой уже вызывать конечную функцию с полным числом параметров.
Evgeniy Myznikov
441
Evgeniy Myznikov 2013.07.17 18:20  
Однажды я столкнулся с написанием своих инклуд и либрари!) Написал и то и то! Прошло пару месяцев и понадобилось внести небольшие изменения! Начался гемор от начавшегося забывания алгоритма работы! От инклуд отказался! Оставил только либрари! Вобщем мне показалось так удобнее! Т. к. либрари необходимо для работы основых экспертов и разных скриптов!
Роман
7939
Роман 2013.07.17 18:25  
festival :
Однажды я столкнулся с написанием своих инклуд и либрари!) Написал и то и то! Прошло пару месяцев и понадобилось внести небольшие изменения! Начался гемор от начавшегося забывания алгоритма работы! От инклуд отказался! Оставил только либрари! Вобщем мне показалось так удобнее! Т. к. либрари необходимо для работы основых экспертов и разных скриптов!

Где - то читал (в том числе и в доке), что через библу МЕДЛЕННЕЕ тестируется эксп, чем с инклюдами.
/ /12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий