Иван Сюськалов
Иван Сюськалов личный блог
24 мая 2023, 07:11

Как сократить "вес" кода mql5, mql4

Есть некий код советника, 100000 строк, «весит» 6 мегабайт. После компиляции, получаем ex-файл 600 килобайт.
Как уменьшить «вес» кода до компиляции?
30 Комментариев
  • T-800
    24 мая 2023, 07:23
    6 Мб код??? Что там внутри? Неужели работает?
  • 100000 строк это явно декомпилированный код.
    лучший способ уменьшить- написать самому.
  • Антон Б
    24 мая 2023, 08:17
    А зачем уменьшать вес кода?
    Не пойму цель и причину.
      • Антон Б
        24 мая 2023, 08:53
        Иван Сюськалов, потому что вопрос зачем важнее вопроса как.
        если станет ясно зачем то можно предложить как.
  • Пафос Респектыч
    24 мая 2023, 12:11
    Попробуйте свернуть циклы обратно? )
  • Кирилл Гудков
    24 мая 2023, 12:41
    Никак не уменьшить, отдыхай.
  • Андрей К
    24 мая 2023, 12:51
    Видимо ваш код требует декомпозиции. То есть многократно повторяющиеся участки кода оформлять в процедуры, функции и если надо, то в классы. 

    И вызывать уже их.
      • Иван Сюськалов, подключать отдельным файлом как вариант или генерировать ваш дата тайм.
      • Андрей К
        24 мая 2023, 16:00
        Иван Сюськалов, задача прям не тривиальная если по чесноку. Если у вас там огромные прям перечисления, то таки да, вы влетели на статические огромные переменные и итоговый файл будет тяжелый.

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

        Но все таки мой коммент не совсем про это. Я имел ввиду, если у вас код 100 000 строк, а в нем к примеру одно и тоже действие по 5000 строк делается 3-4 раза в разных местах, то целесообразней эти 5000 строк оформить в процедуру отдельную и вызывать ее из этих 3-4 мест.
      • Антон Б
        24 мая 2023, 17:48
        Иван Сюськалов, если у вас данные в коде предопределены.
        и ваш код просто проходить бектест по этим записям.
        то можно их записать в отдельный файл данных.

        но нужно понимать что все это просто обман бектеста.
          • Антон Б
            25 мая 2023, 09:56
            Иван Сюськалов, вот это даты сделок. а впереди во времени этих дат нет.
            так что это именно что обман бектестера.
            и обман людей соответственно.
            • Антон Б, 
              +1, также показалось :)
              • Антон Б
                26 мая 2023, 11:02
                Иван Сюськалов, на маркете ВНУТРИ mql5 где продаются индикаторы и стратегии?
                  • Антон Б
                    26 мая 2023, 11:08
                    Иван Сюськалов, прикольно да. продавать предобученную штуку на датах.
                    из-за того что все коррелирует стратегия будет бектестится хорошо везде ЗАДНИМ ЧИСЛОМ даже на том для чего изначально не предполагалось)
              • Антон Б
                26 мая 2023, 11:04
                Иван Сюськалов, кстати да, даты есть и впереди. даты дивидентов. даты раскрытия информации. даты опубликования ставки.

                тогда проще их из файла читать. и обновлять тогда один этот файл.

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн