Хранение и работа с часто используемыми блоками кода

 

Здравствуйте.

На протяжении нескольких лет программирую в MQL4. Зачастую использую одни и те же функции в нескольких индикаторах. По началу эти функции логически были размещены в разных библиотеках (работа с файлами, со строками и т.д.). В результате тестирования продуктов в разных терминалах (для адаптации под разные ДЦ), столкнулся со следующей необходимостью, а именно весь код должен находиться внутри одного исполняемого файла. Кроме того выставляя продукт на всеобщее обозрение нет необходимости "тащить" с ним комплект библиотек.

Проблема в следующем. Как в таком случае хранить часто используемые функции?

Есть ли смысл организовывать библиотеку сниппетов, например в виде отдельных файлов с именем функций, или использование существующие в сети онлайн сервисы?

 

Посмотри как мэтры оформляют библиотеки

http://www.kimiv.ru/index.php?option=com_remository&Itemid=13&func=select&id=5

 
Roger:

Посмотри как мэтры оформляют библиотеки

http://www.kimiv.ru/index.php?option=com_remository&Itemid=13&func=select&id=5

Однако в момент создания мэтром легендарной ветки https://www.mql5.com/ru/forum/107476, его "пребиблиотеки" представляли собой просто тематический набор функций, собранных вместе. Игорь тогда считал, что экономичнее брать оттуда функции и вставлять их в новый код. В ветке где-то мелькнула даже дискуссия по поводу целесообразности использования библиотек в собранном виде.
 

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

 
granit77:
Однако в момент создания мэтром легендарной ветки https://www.mql5.com/ru/forum/107476, его "пребиблиотеки" представляли собой просто тематический набор функций, собранных вместе. Игорь тогда считал, что экономичнее брать оттуда функции и вставлять их в новый код. В ветке где-то мелькнула даже дискуссия по поводу целесообразности использования библиотек в собранном виде.


Именно по этому поводу и открыл ветку. Есть ли смысл и на сколько практично хранить функции по отдельным файлам? А их дальнейшее использование по средствам обычного копирования в разрабатываемый инструмент.

Если есть возможно дайте ссылочку на упомянутую дискуссию. Спасибо.

 
Сходу не нашел. Там 120 страниц. Поищите, или спросите у Игоря Викторовича, что он думал тогда и думает сейчас.
 
Перепробовав работать с полным ворохом функций, кстати, тормозящих работу эксперта, пошёл иным путём. Завёл один цикл в старте, который всё проверяет и считает, оставив функции, предназначенные только для конечных действий. Скорость оптимизации возросла в разы! Небо и земля! И без библиотек!
 
AdvisorTC:

Здравствуйте.

На протяжении нескольких лет программирую в MQL4. Зачастую использую одни и те же функции в нескольких индикаторах. По началу эти функции логически были размещены в разных библиотеках (работа с файлами, со строками и т.д.). В результате тестирования продуктов в разных терминалах (для адаптации под разные ДЦ), столкнулся со следующей необходимостью, а именно весь код должен находиться внутри одного исполняемого файла. Кроме того выставляя продукт на всеобщее обозрение нет необходимости "тащить" с ним комплект библиотек.

Проблема в следующем. Как в таком случае хранить часто используемые функции?

Есть ли смысл организовывать библиотеку сниппетов, например в виде отдельных файлов с именем функций, или использование существующие в сети онлайн сервисы?


тоже такая засада была, неудобно раздавать кучу файлов при написании только одного (советника/скрипта/индикатора), поэтому написал на java приблуду, которая в один файл сливает все функции, переменные, импорты и т.д., ну чтоб ничего лишнего не оставалось (комменты также удаляются).. приблуда простая без всякой зауми типа лексем, ну и конечно, возможно не все возможные стилистики написания кода учитывает, одно слово под себя делал, да с java шапочное знакомство..


 
borilunad:
Перепробовав работать с полным ворохом функций, кстати, тормозящих работу эксперта, пошёл иным путём. Завёл один цикл в старте, который всё проверяет и считает, оставив функции, предназначенные только для конечных действий. Скорость оптимизации возросла в разы! Небо и земля! И без библиотек!

об этом вроде не раз уже писали, что подключаемые функции тормозят при выполнении..
 
borilunad:
Перепробовав работать с полным ворохом функций, кстати, тормозящих работу эксперта, пошёл иным путём. Завёл один цикл в старте, который всё проверяет и считает, оставив функции, предназначенные только для конечных действий. Скорость оптимизации возросла в разы! Небо и земля! И без библиотек!
Ага, примерно так же делаю.
 
borilunad:
Перепробовав работать с полным ворохом функций, кстати, тормозящих работу эксперта, пошёл иным путём. Завёл один цикл в старте, который всё проверяет и считает, оставив функции, предназначенные только для конечных действий. Скорость оптимизации возросла в разы! Небо и земля! И без библиотек!
borilunad, понимаю о чем Вы, но вопрос в другом, как хранить часто используемый код (куски кода, функции) чтоб при написании нового инструмента не возникало проблемы типа: "Так я это уже где-то делал... А наверно здеся, или тама." И начинается судорожная ревизия по всем исходникам. :)
Причина обращения: