Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Так сделай фабрику. Проблема решится.
Да там щас всё и так просто работает. Объект достаточно жёстко структурирован. Он вызывает виртуальный метод Load каждого своего члена, они в свою очередь поступают так же. В начале каждого блока данных (объекта) в файле пишется идентификатор типа (для контроля при загрузке). Собсно и всё. Типа сам-себе фабрика.
Фабрику имеет смысл делать, если неизвестный заранее тип может быть в файле. Тогда и фабрика и регистрационная таблица типов потребуется. Пока задача так не вставала, обошёлся скрепками и скотчем. :)
Веер Ганна.
Если вторая точка привязки находится в будущем, меняется угол.
Еще, у этого объекта какие-то проблемы с копированием (через зажатый Ctrl). Очень часто не копирует, а перетаскивает оригинал, скопировать удаётся с третьей-пятой попыток.
ОК, отлично.
Слава, а можно поинтересоваться (для общего развития) почему нельзя таблицу виртуальных методов инициализировать в начале конструктора (после инициализации предков) ?
Я уже рассказывал. Конструкторы отрабатывают по иерархии. Пока конструируется предок, нет никакой информации о потомках.
Я уже читал. И прекрасно понял. И задал вопрос на базе понимания прочитанного. Попробую выразиться понятнее, с картинками.
Я всё понимаю, так сложнее сделать, есть всякие тонкости. Куда проще и универсальнее (для вас) прописывать всю неявную инициализацию в конец. И я даже верю заранее, что "так никто не делает", и что "в С++, например, так не принято" и т.п.
Однако для нас ( юзеров ), куда проще, универсальнее, разумнее и логичнее считать конструктор MySecond() территорией класса MySecond, а никак не MyFirst. Подумайте, что проще : сделать виртуальные функции работоспособными в конструкторах, или отражать в документации в нескольких местах важные и серьёзные ограничения на код конструктора, да ещё не смотря на это, регулярно получать в сервисдеск и на форум важные и серьёзные сообщения новичков "о виртуальных заморочках в конструкторах". Это тоже серьёзный фактор - новичков скоро ожидается много..
Тенарный оператор со структурами приводит к Code Generation Error (хотя, если его заменить на if, то всё работает)
У меня регулярно появляется ошибка 4401
ERR_HISTORY_NOT_FOUND
Следующий код индикатора
выдаст ошибку сразу при старте (если кинуть не на D1). Вернее, один раз после запуска терминала и открытия графика - нацепить индикатор, получим ошибку. Если терминал не закрывать, то больше ошибки такой на старте не происходит.
Но через некоторое время (пару часов - мне хватило 2 часа) увидим, что и на уже давно открытом графике получаем ошибку. (запускал на m30)
Здравствуйте господа разработчики!
А можно ли внести изменения в компилятор MQL5, чтоб хотя бы предупреждение выдавал,
на такого рода косяки в коде.
if(Flag_Exitl=true) {break;}
Тут не верно написано условие сравнения (должно быть == ) и поэтому всегда будет выполнятся break.
Как то эту ситуацию в компиляторе обозначить (если это возможно вообще), чтоб меньше шишек набивать при написании кода?
(подумал не получится, похоже разделить присваивание и сравнение в if, тогда вопрос снят).
Здравствуйте господа разработчики!
А можно ли внести изменения в компилятор MQL5, чтоб хотя бы предупреждение выдавал,
на такого рода косяки в коде.
if(Flag_Exitl=true) {break;}
Тут не верно написано условие сравнения (должно быть == ) и поэтому всегда будет выполнятся break.
Как то эту ситуацию в компиляторе обозначить (если это возможно вообще), чтоб меньше шишек набивать при написании кода?
(подумал не получится, похоже разделить присваивание и сравнение в if, тогда вопрос снят).
Условие может написано и неверно, но позволительно в конструкциях MQL5.
Перевожу то что вы закодировали, присвоить переменной Flag_Exitl значение true, после этого проверить если Flag_Exitl истинно то брейк.
Последовательность действий именно такая.
Не совсем понимаю как работать с буферами, которые не нужно показывать на экране.
По коду ниже почему-то
1) ничего не рисует
2) оба буфера называются Label1
хотя данные в них "лежат" нужные
Здравствуйте. Я может немного не туда пишу, но надеюсь вы меня направите тогда в правильном направлении. А куда обратиться с вопросом по Web API для мт5? )
На всякий случай попробую объяснить ситуацию. Имеется МТ менеджер и WEB API с php... Счет на русском языке создается, данные уходят и даже отображаются в МТ менеджере, однако отмечена проблема - данные в МТ менеджере отображаются в виде юникода ("04440430043c0438043b0438044f" - вот так выглядит имя пользователя). При отправке данных ничего не кодируется или декодируется, из МТ клиента все создается нормально... Хотя бы в какую сторону смотреть? (