Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Имеется эксперт с помощью которого пытаюсь разобраться с событиями.
Получаю не соответствующие действиям события.
Точно соответствует клик на графике и нажатие кнопки
Спорное событие id=9 (CHARTEVENT_CUSTOM) которое генерируется например при смещении графика причем потоком примерно 10 одинаковых событий.
Не проверил событие CHARTEVENT_OBJECT_ENDEDIT.
С остальными все не понятно. То ли описание не соответствует номеру события, то ли событие например создания объекта генерируется неправильно при создании объекта в ручную.
В общем прошу помощи.
Лучше вот так:
Наверняка я делаю, что то не так, но попробую более подробно описать почему у меня возникло непонимание.
Вы изначально присваиваете уже назначенным числовым константам CHARTEVENT_XXXXXXXX свои числовые соответствия...
Где посмотреть какое числовое значение имеют константы CHARTEVENT_XXXXXXX ?
Я не нашел, поэтому экспериментируя выяснил, что CHARTEVENT_KEYDOWN = 0, а CHARTEVENT_CLICK = 4, что соответствует очередности описания данных констант в справке.
Остальным событиям я присвоил номера соответственно, так и получился массив event[10].
К сожалению, Ваш вопрос непонятен. Что конкретно работает не так?
Исходя из моей нумерации событий и используя эксперт из моего предыдущего поста:
Например рисую трендовую линию -> событие CHARTEVENT_OBJECT_CHANGE,
перемещаю эту линию -> событие тоже CHARTEVENT_OBJECT_CHANGE,
изменяю свойства через меню -> 2 события CHARTEVENT_CHART_CHANGE и CHARTEVENT_CUSTOM,
удаляю ее нажатием Del -> событие только CHARTEVENT_KEYDOWN, (если нумерация событий неправильная то все равно должно быть 2 события, удаление и нажатие кнопки).
Все это исходя из моей нумерации.
Далее...
Использую эксперт uncleVic:
Рисую трендовую линию -> ChartEvent :id=OBJECT_DRAG, l=0 d=0.000000 s=H1 Trendline 40716
перемещаю эту линию -> ChartEvent :id=OBJECT_DRAG, l=0 d=0.000000 s=H1 Trendline 40716
изменяю свойства через меню -> ChartEvent :id=OBJECT_CHANGE, l=0 d=0.000000 s=H1 Trendline 40716 и ChartEvent :id=CHART_CHANGE, l=0 d=0.000000 s=
Ситуация не прояснилась.
На всякий случай:
МТ5 64х - билд 458.
Система - W7 64x Домашняя расширенная.
Спасибо за отзывчивость ))
Наверняка я делаю, что то не так, но попробую более подробно описать почему у меня возникло непонимание.
Где посмотреть какое числовое значение имеют константы CHARTEVENT_XXXXXXX ?
Я не нашел, поэтому экспериментируя выяснил, что CHARTEVENT_KEYDOWN = 0, а CHARTEVENT_CLICK = 4, что соответствует очередности описания данных констант в справке.
Остальным событиям я присвоил номера соответственно, так и получился массив event[10].
Так нельзя делать ни в коем случае!
Числовые значения присваивает разработчик и может их изменить в любое время.
Можно использовать только символьные константы
--------------
uncleVic привёл Вам пример правильного использования (ну или мой кусок из справки)
--------------
Вы что делаете то? Зачем Вам числовое представление могло понадобится?
Так нельзя делать ни в коем случае!
Числовые значения присваивает разработчик и может их изменить в любое время.
Можно использовать только символьные константы
ОК. Я согласен, что так нельзя делать.
Забудем про мои рукоблудия ).
Идем далее..
uncleVic привёл Вам пример правильного использования (ну или мой кусок из справки)
Как написал выше, используя пример uncleVic получаются также не соответствующие действиям события.
kPVT:
Рисую трендовую линию -> ChartEvent :id=OBJECT_DRAG, l=0 d=0.000000 s=H1 Trendline 40716 Вместо CHARTEVENT_OBJECT_CREATE.
.....
Вы что делаете то? Зачем Вам числовое представление могло понадобится?
Долго объяснять, да это и не важно. Давайте забудем про мою нумерацию.
Главное, что я пытаюсь разобраться с событиями, но даже использую пример uncleVic не понимаю не соответствия генерируемых событий производимым действиям.
ОК. Я согласен, что так нельзя делать.
Забудем про мои рукоблудия ).
Идем далее..
Как написал выше, используя пример uncleVic получаются также не соответствующие действиям события.
kPVT:
Добавьте в инициализацию:
Будет у Вас всё тип-топ:
Алекс спасибо большое разобрался.
Добавьте в инициализацию:
....
Добавил в эксперт блок
все встало на свои места.
Стал смотреть справку нигде не написано, что нужно "проинициализировать" именно эти два события чтобы получить правильные все остальные.
Закомментировал их и тоже все работает.
Оказывается если эксперт/индикатор не имеет блока OnInit даже пустого то с событиями происходит неразбериха.
Наверно так задумано, но тому кто пишет на mql5 надо об этом знать, мало ли.
Сгенерировал в визарде эксперта, при этом тестер выдает ошибку Core 1 tester stopped because OnInit critical error, кто-нибудь сталкивался с таким? как это решается? ведь все-таки визард, ладно бы я там что-то накосячил бы...
Приложите полученный исходник. И параметры тестирования.
Не воспроизвелось.
Я просил ещё параметры тестирования. Нужно:
И версия и битность МТ5.