
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Дмитрий вы, как мне кажется, образованный программист. Вас не учили правилам хорошего тона в программировании?
А в остальном можно писать и как в старом mql4 с возможностью выхода за пределы массива например и прочими допущениями. В ответ получили ошибку... ну и флаг ей взад... пойдём дальше, нам некогда... А потом нарываемся на проблему, которая и выеденного яйца не стоит, в более строгом языке и начинаем предъявлять претензии разработчикам...
Христос воскрес.
При создании существующего объекта ничего страшного не происходит, не страшного тоже не происходит, просто объект не создается и все.
Думаю я тоже добавлю чуть позже решение, но без применения глобальных переменных терминала и файлов, а также с возможностью применять несколько одинаковых индикаторов в одном окне.
Кстати, интересная задача, написание функции, которая для каждого различного набора входных параметров индикатора выдает свое, отличное от других, значение.
Первое, что пришло в голову - через ChartSaveTemplate.
Отказаться от глобальных - видимо, ресурсы.
Кстати, интересная задача, написание функции, которая для каждого различного набора входных параметров индикатора выдает свое, отличное от других, значение.
Первое, что пришло в голову - через ChartSaveTemplate.
Отказаться от глобальных - видимо, ресурсы.
Конечно ресурсы - мне они кажутся оптимальным решением, т.к. невидимы, в отличии от глоб. переменных терминала и файлов, и быстры. А так же через них можно передавать массивы, как и через файлы, но только быстрее, т.к. все происходит в ОЗУ. А так же они принадлежат окну, а не терминалу, как в случае с глобальными. Тем более можно создавать один ресурс на все одинаковые индикаторы в окне.
Нет, через ChartSaveTemplate мне кажется будет громоздко. Постараюсь обойтись общим ресурсом для всех экземпляров одного индикатора без применения глобальных перемен, шаблонов и файлов.
Мой пример создавался чтобы показать проблему неоднозначной последовательности выполнения Юнита нового ТФ и Деюнита старого ТФ, а не как ее решение.
Ты просто обошел проблему, а не решил ее.
В моем примере как раз важно, чтобы в Деюните старого ТФ удалялся объект в любом случае, в том числе и при смене ТФ, а в Юните нового объекта он был создан вновь.
Если последовательность сначала Деюнит старого ТФ, потом Юнит нового ТФ, как должно быть по логике. Тогда объкт удаляется а потом создается вновь.
Если же последовательность - сначала Юнит нового ТФ, потом Деюнит старого ТФ, тогда объкт при попытке его создать в Юните просто модифицируется, т.к. он еще не удален. А потом удаляется Деюнитом старого ТФ. В этом и есть баг.
В этом смысл был этого примера - показать то, с чем может столкнуться любой программист, не прочитавший данной ветки и не знающий данную "особенность".
Этот пример не рассматривался, как какое-то решение. Как варианты решения представлены здесь и здесь. Думаю я тоже добавлю чуть позже решение, но без применения глобальных переменных терминала и файлов, а также чтобы данное решение работало , если даже в одном окне установлено несколько одинаковых индикаторов. А тебе слабо попробовать решить такую задачку? Или ты только и способен на поиски ошибок в чужом коде, особенно когда их там нет.
Грех сегодня ругаться матом, но так хочется...
Даже прочесть до конца твой бред не смог.
Повторяю ещё раз НЕ ВЫСАСЫВАЙ ПРОБЛЕМУ ОТТУДА ГДЕ ЕЁ НЕТ.
Ответ на все вопросы в твоём коде был здесь
Какой смысл юзать примитивный пример двоечника?
Поюзай лучше пример ПОЧТИ правильного кода
на абсолютность я не рассчитывал.
Всё... изыди сатана, не доводи до греха.
Грех сегодня ругаться матом, но так хочется...
Даже прочесть до конца твой бред не смог.
Повторяю ещё раз НЕ ВЫСАСЫВАЙ ПРОБЛЕМУ ОТТУДА ГДЕ ЕЁ НЕТ.
Ответ на все вопросы в твоём коде был здесь
на абсолютность я не рассчитывал.
Всё... изыди сатана, не доводи до греха.
Ооо...Братан, да тебе на другой форум нужно. Где психотерапевты советы дают. Я понимаю, понимаю. Дефицит любви в детстве, хочется внимания и любви. Сочувствую. Если что обращайся, помогу. Пиши в личку. Я не шучу
А здесь лучше не надо, а то мы и так черезчур народ "позабавили".
ВОИСТИНУ ВОСКРЕСЕ!
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Последовательность выполнение Init() и DeInit()
fxsaber, 2017.04.14 13:52
Небольшой лайфхак почти на тему сабжаБез каких-либо претензий к разработчикам.И переключаем ТФ. Ни одного Deinit не будет! Все индикаторы будут незаметно выполняться, сжирая ресурсы. А всего лишь хотел
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Ошибки, баги, вопросы
fxsaber, 2016.09.22 16:14
Как в индикаторе узнать свой хэндл на чарте? Через ChartIndicatorName не подходит, т.к. он возвращает короткое имя. А с таким же именем может уже быть уже запущен этот же индикатор с другими входными параметрами.
Получается, что если хочется узнать свой хэндл, то надо использовать ChartIndicatorGet, но, как показано в примере выше, будет страшный облом - индикатор станет неудаляемым.
Какой-то бажище.
Нельзя даже это
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Ошибки, баги, вопросы
fxsaber, 2016.09.23 10:20
Как узнать свой INDICATOR_SHORTNAME? IndicatorGet*-функций нет!Нельзя узнать из индикатора, в какое sub_window он попал. Какие-то сплошные обломы.
Нельзя узнать из индикатора, в какое sub_window он попал. Какие-то сплошные обломы.
Прикольный лайфхак! Запускаем
И переключаем ТФ. Ни одного Deinit не будет! Все индикаторы будут незаметно выполняться, сжирая ресурсы. А всего лишь хотел
Получается, что если хочется узнать свой хэндл, то надо использовать ChartIndicatorGet, но, как показано в примере выше, будет страшный облом - индикатор станет неудаляемым.
Какой-то бажище.
Сталкивался с подобным. Разработчики посоветовали внимательнее читать справку, т.к. там есть пример:
Однако, потом добавили, что поведение будет "скорректировано". Но, видимо, все еще корректируют.https://www.mql5.com/ru/docs/chart_operations/chartwindowfind
Спасибо, но тут то же ограничение - без shortname (а как его узнать?) никак.
Сталкивался с подобным. Разработчики посоветовали внимательнее читать справку, т.к. там есть пример:
Однако, потом добавили, что поведение будет "скорректировано". Но, видимо, все еще корректируют.А вот это реально помогло, Спасибо!
Главное, не делать IndicatorRelease в Deinit.