Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
))) Да. Ручками оно конечно.
При загрузке терминала - согласен, не канает. Но, во-первых, я его и не выключаю почти никогда (низачтоникода))), а во-вторых, для тех, кто все-таки иногда перезагружает комп, можно очень просто доработать методу:
Первый загружаемый индикатор создает гл.т.переменную со своим именем и кладет в нее свое время подсоединения, каждая следующая копия проверяет наличие переменной, если есть, то берет имеющееся время, прибавляет 1 (да хоть тыщу!), делает своим временем и заносит уже свое время обратно в эту переменную. И так далее.
Тут тогда и время ни причем. Остается лишь один из приколов метода - подмена и восстановление шортнейма. Что тоже неплохо...)))
Дописать что ли с гл.терм.переменной, чтоб без уж совсем без багов?
??? Вы, вообще-то, первый пост читали? В подокнах все копии индикатора выводятся под ОДНИМ именем и все корректно рисуют у себя в окнах, не мешая друг дружке. Если нужно получать свойства гр. объектов конкретного индикатора, то и тогда можно обойтись без его уникального шортнейма - все имена граф.объектов привязаны к конкретному индикатору временем его прикрепления. Можно это время добавить к шортнейму. А можно и не - совсем необязательно.
Я и говорю (см. выше) - мы о разных задачах.
Я про визуализацию данных индикаторами, когда нужно много эксперементировать (при разработке стратегий), вы - про работу из эксперта. В вашем случае, если не ставить задержку, то время подключения м.б. у всех одинаковым...
Ну, тем не менее, спасибо за общение. Успехов.
Я, наверно, понял смысл темы буквально. Это, ведь, "Способ определения номера подокна".
С одинаковым именем индикатора это MQL4 не позволяет сделать.
А графические объекты, действительно, можно называть, как угодно с некоторым ограничением длины имени.
Тут тогда и время ни причем. Остается лишь один из приколов метода - подмена и восстановление шортнейма. Что тоже неплохо...)))
Дописать что ли с гл.терм.переменной, чтоб без уж совсем без багов?
Теперь это выглядит так. Вместо времени прикрепления как идентификатора копии индикатора используется гл.терм.переменная, что сняло проблему с одновременным запуском копий при открытии MT4.
Необходимые переменные в головной части программы:
В ф-ии init() с помощью ф-ии Identity() присваивается идентификатор (номер) копии индюка:
Сама ф-я Identity():
Перед созданием объекта выясняется номер подокна с помощью функции WinNumber():
-----------------------------------
Пример для наглядности в прикрепленном файле. Он рисует с помощью граф. объектов в своем окне EMA с текущими и пиковыми значениями внутри бара. Не путать с EMA по High/Low! Пиковые значения - это максимальные/минимальные значения индикатора внутри бара. Т.е. вся предыстория считается по Close, а текущий 0-й бар по High/Low.
Можете запускать сколько угодно копий - мешать они друг другу не будут, несмотря на то, что у всех копий одинаковый шортнейм. Можно стирать, добавлять копии в любом порядке - пофигу - все будет корректно рисоваться там, где надо.
Необходимые переменные в головной части программы:
Прикольно.
Есть проблемы.
1. Есть маленькая вероятность получения одинакового ID в виду отсутствия локов. Просто пофиксить не получится. Вероятность мизерная.
2. Защиту бы от дураков бы. Например так:
Прикольно.
Есть проблемы.
1. Есть маленькая вероятность получения одинакового ID в виду отсутствия локов. Просто пофиксить не получится. Вероятность мизерная.
2. Защиту бы от дураков бы. Например так:
2. Видимо, я глупее (умнее?))) дурака, но что этот талантливый дурак может сделать, чтоб защиту ставить?
2. Видимо, я глупее (умнее?))) дурака, но что этот талантливый дурак может сделать, чтоб защиту ставить?
Два раза вызвать функцию. Теперь функция будет возвращать одно и то же в течение одной сессии.
Два раза вызвать функцию. Теперь функция будет возвращать одно и то же в течение одной сессии.
Не понял. Эта ф-я и вызывается каждый раз за одну сессию в секции ф-ии init() при добавлении копии. Или при изменении параметров. Или при перекомпиляции. Просто номер копии увеличивается.