Предположим вы решили написать очень объемную программу. Например есть у меня задумка написать на MQL5 реализацию волн Эллиота по методу Нилли. Сразу же возникает множество вопросов, так как задача очень объемная. С чего начать? Как разбить программу на классы? Если я ее разобью на классы, где гарантия что это будет наилучшие разбиение. Вот в этом случае на помощь приходит проектирование программ. Существуют методы которые позволяют успешно справиться с определением структуры большой программы. Эти методы базируются на графическом языке UML, предназначеным для проектирования программ. В нем есть все необходимое для разработки и написания документации для программы. Для того чтобы воспользоваться UML нужен специальный редактор. Я рекомендую
Software Ideas Modeler. Этот редактор бесплатен для не коммерческого использования. В бесплатной версии он не умеет генерировать код, но это не особо критично. Перевести диаграммы клаcсов в код MQL5 можно в ручную. К тому же я сомневаюсь что существуют редакторы, которые могут генерировать код MQL5. Хотя можно воспользоваться генерацией кода C++ и затем внести в него небольшие изменения. Генератор кода генерирует только шаблоны программы, а наполнять его содержанием необходимо самостоятельно. Впрочем эти шаблоны могут быть полезны. Однако одного редактора UML мало. Необходимы знания UML и прицепов проектирования. Без знания и умения проектировать программы UML редактор будет бесполезен. В программирование давно уже разработаны эффективные методы проектирования программ. Изучить этот вопрос можно в книге "UML 2 и Унифицированный процесс. Практический объектно-ориентированный анализ и проектирование." В ней помимо собственно проектирования описан язык UML. Эти знания вам пригодятся не только при разработке программ на MQL5, но и вообще при программировании любой серьезной программы. Вдруг вы решите связать свою судьбу с программированием.