Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 1358
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Здравствуйте!
Может быть, есть «кто в теме»… Ищу решение, каким способом можно полученную с помощью WebRequest байтовую последовательность ZIP-файла преобразовать в ZIP-архив и распаковать на диск средствами MQL5.
Поиск решения привел меня к статье «Работаем с ZIP-архивами средствами MQL5 без использования сторонних библиотек» от 2015 ( https://www.mql5.com/ru/articles/1971 ). Здесь автор показал решение и опубликовал класс CZip для работы с ZIP-архивами. Однако, применить это решение не удается – при компиляции, MetaEditor не может собрать исполняемый файл ссылаясь на ошибки в библиотеке класса CZip.
Суть моего вопроса, может быть сведена к следующему: - как можно отдельно использовать методы класса CZip, в частности CreateFromCharArray() и UnpackZipArchive(), включив их непосредственно в код скрипта?
Есть сервис который периодически создает файлы (закрываю все корректно через FileClose).
После запуска обычно первый фаил создается нармально, потом FileOpen начинает возвращать ошибку 5001.
Но все это рандомно - то работает то нет. При этом когда этот же код запускаю в скрипте или эксперте проблему не замечал.
Как обойти этот запрет?
Повторю вопрос.
Есть сервис который периодически создает файлы (закрываю все корректно через FileClose).
После запуска обычно первый фаил создается нармально, потом FileOpen начинает возвращать ошибку 5001.
Но все это рандомно - то работает то нет. При этом когда этот же код запускаю в скрипте или эксперте проблему не замечал.
Как обойти этот запрет?
Вы хотите чтобы кто-то написал аналогичный сервис с теми-же ошибками как у вас и рассказал вам что надо исправить?
Вы хотите чтобы кто-то написал аналогичный сервис с теми-же ошибками как у вас и рассказал вам что надо исправить?
В функии поиска файла не закрывался поиск через FileFindClose().
В любом случае, спасибо за ответ.
Начал вырезать лишее что бы код выложить и все заработало ))
В функии поиска файла не закрывался поиск через FileFindClose().
В любом случае, спасибо за ответ.
Да, все что пользует файл, его открывает (открывает доступ к файлу) ))) И требуется закрытие файла (доступа).
Лишнее закрытие вернет -1 без последствий, а забытый открытый файл может создать кучу проблем)
Напомните в input блоке можно комментарий не выводить в параметры робота?
чтобы в параметрах все же вылазил MagicNumber вместо - Магический номер (это как пример)
Напомните в input блоке можно комментарий не выводить в параметры робота?
чтобы в параметрах все же вылазил MagicNumber вместо - Магический номер (это как пример)
'sinput' выводит параметр, но Вы его не можете включить в оптимизацию.
Переменные с модификатором sinput #
Переменные с модификатором input позволяют не только задавать значения внешних параметров при запуске программ, но также играют большую роль при оптимизации торговых стратегий в тестере. Каждая объявленная в эксперте input-переменная, за исключением типа string, может участвовать в оптимизации.
В некоторых случаях бывает необходимо исключить некоторые внешние параметры программы из формирования области всех возможных проходов в тестере. Специально для таких случаев существует модификатор памяти sinput. sinput - это сокращенное написание объявления статической внешней переменной: sinput = static input. То есть такое объявление в коде советника
будет эквивалентно полному объявлению
Переменная, объявленная с модификатором sinput, является входным параметром MQL5-программы, значение этого параметра можно изменять при её запуске. Но при этом данная переменная не участвует в процессе оптимизации входных параметров, то есть не производится перебор её значений при поиске наилучшего набора параметров по заданному критерию.
На рисунке показано, что эксперт имеет 5 внешних параметров, из них параметр "Количество слоев" объявлен как sinput и равен 6. Этот параметр не может изменяться в процедуре оптимизации торговой стратегии, для него возможно установить нужное значение, которое и будет использоваться. Поля Старт, Шаг и Стоп для такой переменной не доступны для установки значений.
Таким образом, задав для переменной модификатор sinput, мы запрещаем пользователю оптимизировать данный параметр. Это значит, что в тестере стратегий пользователю терминала становится недоступным задавать для неё начальное и конечное значения для автоматического перебора в указанном диапазоне в процессе оптимизации.
Но при этом есть одно исключение из данного правила – sinput-переменные можно варьировать в задачах оптимизации с помощью функции ParameterSetRange(). Данная функция создана специально для программного управления пространством доступных значений для любых input-переменных, в том числе и объявленных как static input (sinput). Другая функция ParameterGetRange() позволяет при запуске оптимизации (в обработчике OnTesterInit()) получить значения input-переменных и в случае необходимости переопределить шаг изменения и диапазон, в пределах которого будет перебираться значение оптимизируемого параметра.
Таким образом, сочетание модификатора sinput и двух функций по работе с input-параметрами позволяет создавать гибкие правила для задания интервалов оптимизации одних input-переменных в зависимости от значения других input-переменных.
sinput я помню, вопрос в отображении комментария, можно ли отображать вместо комментария название переменной, в параметрах советника?
ps строка с sinput случайно попалась для примера)
sinput я помню, вопрос в отображении комментария, можно ли отображать вместо комментария название переменной, в параметрах советника?
ps строка с sinput случайно попалась для примера)
Просто ничего не пишите после ';'
Пример - описание есть:
а теперь уберём описание:
и увидим имя переменной
Просто ничего не пишите после ';'
в этом и вопрос был, комментарий есть, а выводить в параметрах нужно имя переменной,
может есть какая-то фишка для этого....