Блог им. IvanSyuskalov

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

Есть некий код советника, 100000 строк, «весит» 6 мегабайт. После компиляции, получаем ex-файл 600 килобайт.
Как уменьшить «вес» кода до компиляции?
  • обсудить на форуме:
  • MQL5
30 комментариев
6 Мб код??? Что там внутри? Неужели работает?
avatar
100000 строк это явно декомпилированный код.
лучший способ уменьшить- написать самому.
Дмитрий Овчинников, я про это спрашивал? 
Все работает. Вопрос же был другой
Иван Сюськалов, удали половину 
avatar
А зачем уменьшать вес кода?
Не пойму цель и причину.
avatar
Антон Б, а зачем задавать вопросы не ответив на мой вопрос
Иван Сюськалов, потому что вопрос зачем важнее вопроса как.
если станет ясно зачем то можно предложить как.
avatar
Антон Б, ты и так и так не знаешь, отдыхай
Попробуйте свернуть циклы обратно? )
Пафос Респектыч, отдыхай
Иван Сюськалов, да ты просто лентяй похоже, Ваня ) сам и отдыхай )
Никак не уменьшить, отдыхай.
Видимо ваш код требует декомпозиции. То есть многократно повторяющиеся участки кода оформлять в процедуры, функции и если надо, то в классы. 

И вызывать уже их.
avatar
Андрей К, да, все верно. У меня идёт перечисление datetime
{
D'2020....,
D'2020....,

}

Вот как бы сократить этот список
Иван Сюськалов, подключать отдельным файлом как вариант или генерировать ваш дата тайм.
Иван Сюськалов, задача прям не тривиальная если по чесноку. Если у вас там огромные прям перечисления, то таки да, вы влетели на статические огромные переменные и итоговый файл будет тяжелый.

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

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

но нужно понимать что все это просто обман бектеста.
avatar
Антон Б, нет, эти данные выдают сам тестер в процессе оптимизации
Иван Сюськалов, вот это даты сделок. а впереди во времени этих дат нет.
так что это именно что обман бектестера.
и обман людей соответственно.
avatar
Антон Б, каких людей Вася? Это тестер, встроенная функция оптимизации. Тебя обманули? Кого обманули? Жесть тупизм, отдыхай
Антон Б, 
+1, также показалось :)
Дмитрий Овчинников, второй Вася
Антон Б, нет Вася, даты есть и впереди. Благодаря им я и заработал в Маркете mql5 более 20000 $
Иван Сюськалов, на маркете ВНУТРИ mql5 где продаются индикаторы и стратегии?
avatar
Антон Б, естественно 
Иван Сюськалов, прикольно да. продавать предобученную штуку на датах.
из-за того что все коррелирует стратегия будет бектестится хорошо везде ЗАДНИМ ЧИСЛОМ даже на том для чего изначально не предполагалось)
avatar
Иван Сюськалов, кстати да, даты есть и впереди. даты дивидентов. даты раскрытия информации. даты опубликования ставки.

тогда проще их из файла читать. и обновлять тогда один этот файл.
avatar
Антон Б, нет, даты входа в рынок, можно прописать наперед
Антон Б, на каждый символ я делаю свой набор дат

теги блога Иван Сюськалов

....все тэги



UPDONW
Новый дизайн