Особенности языка mql5, тонкости и приёмы работы - страница 182
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Например я на VDS удаляю все объекты. Просто что лишним не нагружать график. Да и ни к чему они там. Я глобалками пользуюсь. Так что все зависит от ситуаций.
Смотри, я ведь не просто так их не люблю:
Смотри, я ведь не просто так их не люблю:
Ну а зачем считывать. Можно просто проверять через GlobalVariableCheck есть или нет переменная. С объектами вы ведь то-же самое делаете.
То есть понадобиться только создать/проверить/удалить переменную.
Vladimir Simakov:
2. Доступность переменных за пределами программы.
с этим нет проблем, у всех функции работы с глобальными переменными терминала есть возвращаемое значение - результат операции
есть и средство для синхронизации https://www.mql5.com/ru/docs/globals/globalvariablesetoncondition , не фонтан, но что предложили тем и пользуйтесь
но большое неудобство это тип данных - только double , я не люблю double , был бы хоть ulong - еще можно применение найти, да и организация имя / значение ---> string / double вызывает желание поменять местами - писать данные в string , а ключ в double - больше за одну операцию можно записать/прочитать
а оценив вот это все "хозяйство" , берешь и пишешь в бинарные файлы - свобода полная, и никаких неопределенностей - у меня так было при оценке целесообразности
наверное с ними нужно уметь работать
вот @fxsaber показывал примеры работы с любыми типами https://www.mql5.com/ru/forum/320395/page6#comment_12910394
Ну а зачем считывать. Можно просто проверять через GlobalVariableCheck есть или нет переменная. С объектами вы ведь то-же самое делаете.
То есть понадобиться только создать/проверить/удалить переменную.
Да банальнейшая коллизия с именами и в другом роботе строка
GlobalVariableDel(yourValueName);
сливает Вам депозит)))
Скажете, что имя будет уникальное, что другого робота там никогда не будет, что ребенок/жена/друг/сам пьяный, никогда к боевому терминалу не подойдут))) Согласен, но вероятность не равна нулю, а значит код становится ненадежный.
Да банальнейшая коллизия с именами и в другом роботе строка
сливает Вам депозит)))
Скажете, что имя будет уникальное, что другого робота там никогда не будет, что ребенок/жена/друг/сам пьяный, никогда к боевому терминалу не подойдут))) Согласен, но вероятность не равна нулю, а значит код становится ненадежный.
Бред и фантазии
советник на деньгах ВСЕГДА работает из отдельного терминала, на своей VDS (или даже сервере) и никто никогда с ним не путается.
Бред и фантазии
советник на деньгах ВСЕГДА работает из отдельного терминала, на своей VDS (или даже сервере) и никто никогда с ним не путается.
В смысле ВСЕГДА? Сегодня - всегда, завтра Вы же сами можете посчитать иначе. Да и не все, как я посмотрю, с Вами согласны.
Я указал на реальную опасность использования глобальных переменных терминала. Это не хорошо и не плохо - это данность, которую нам дали разработчики, о ней нужно просто знать и учитывать.
Та же строка
GlobalVariablesDeleteAll();
, выполненная в любом скрипте и упс...
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Особенности языка mql5, тонкости и приёмы работы
Vladimir Simakov, 2020.05.24 17:02
Та же строка
GlobalVariablesDeleteAll();
, выполненная в любом скрипте и упс...
Аналогично и с графическими объектами.
ObjectsDeleteAll(...
Только ресурсы советника нельзя изменить другими программами.
Коллеги, прошу помочь составить макрос, если это вообще возможно.
Нужно динамически объявлять двумерный массив. Причём второе измерение тоже нужно менять. Вот примерно в таком цикле:
Ест-но, что в таком варианте компилятор ругается:
Хотелось бы видеть макрос похожий на:
Вместо строчки:
double d_array[][would_be_size2];
Спасибо.
Коллеги, прошу помочь составить макрос, если это вообще возможно.
Нужно динамически объявлять двумерный массив. Причём второе измерение тоже нужно менять. Вот примерно в таком цикле:
Ест-но, что в таком варианте компилятор ругается:
Хотелось бы видеть макрос похожий на:
Вместо строчки:
Спасибо.
а создать массив достаточного (максимального) размера снаружи цикла мешают политические взгляды ? :-)
приведённый подход (каждый раз пересоздавать массив в цикле) ничего не выигрывает ни по скорости ни по потреблению памяти.
Хотелось бы видеть макрос похожий на:
Не получится.