Форум трейдеров » Торговые роботы, советники, индикаторы » Подскажите как создать графический объект ?
+ Подписаться
  1. 4
    Комментарии
    1
    Темы
    4
    Репутация Pro
     
    Новичок

    2 Медалей

    Подскажите как создать графический объект ?

    Подскажите как в Mql-4 написать такой скрипт: создать графический объект на графике, например отрезок зеленого цвета а потом при помощи мыши перемещать его по графику ?
    Недоступно! Pro 0
    Поделиться
    Просмотров: 3,186
  2. 531
    Комментарии
    10
    Темы
    531
    Репутация Pro
     
    В начале пути

    4 Медалей
    мммм.... а ObjectCreate чем вам не нравится?
  3. 1,401
    Комментарии
    13
    Темы
    1409
    Репутация Pro
    Аватар для Karakurt  
    Мастер форумных наук

    5 Медалей
    Цитата Сообщение от Teoretik Посмотреть сообщение
    ...а потом при помощи мыши перемещать его по графику ?
    Средствами MQL нельзя - нет там обработчика событий. Люди обычно делают внешние функции, например, на С. Пошарьте по интернету.
  4. 4
    Комментарии
    1
    Темы
    4
    Репутация Pro
     
    Новичок

    2 Медалей
    Хорошо, объект создал, а как теперь при каждом перемещении объекта мышью заставить скрипт запускаться заново и пересчитывать параметры в зависимости от новых свойств объекта ? Как, например, по типу индикатора "Линейная регрессия" ?
  5. 531
    Комментарии
    10
    Темы
    531
    Репутация Pro
     
    В начале пути

    4 Медалей
    Цитата Сообщение от Teoretik Посмотреть сообщение
    Хорошо, объект создал, а как теперь при каждом перемещении объекта мышью заставить скрипт запускаться заново и пересчитывать параметры в зависимости от новых свойств объекта ? Как, например, по типу индикатора "Линейная регрессия" ?
    Как совершенно справедливо замечает Каракурт, событий в мкл нет, так что "при каждом перемещении" не получится. Вам поможет зацикленный скрипт, запоминающий предыдущие координаты объекта и сравнивающий с текущими:

    double cur_x1 = ObjectGet(name,OBJPROP_TIME1);
    if (cur_x1 != prev_x1 || cur_x2 != prev_x2 .... ) {
    // just do it!
    prev_x1 = cur_x1;
    prev_x2 = ...
    }
    Sleep(1000);
  6. 4
    Комментарии
    1
    Темы
    4
    Репутация Pro
     
    Новичок

    2 Медалей
    Цитата Сообщение от Quod Licet Посмотреть сообщение
    Как совершенно справедливо замечает Каракурт, событий в мкл нет, так что "при каждом перемещении" не получится. Вам поможет зацикленный скрипт, запоминающий предыдущие координаты объекта и сравнивающий с текущими:

    double cur_x1 = ObjectGet(name,OBJPROP_TIME1);
    if (cur_x1 != prev_x1 || cur_x2 != prev_x2 .... ) {
    // just do it!
    prev_x1 = cur_x1;
    prev_x2 = ...
    }
    Sleep(1000);
    Есть, получилось ! Я заключил все это дело в бесконечный цикл - ( ; ; ) и все заработало как надо, спасибо за подсказку !

Вверх
РегистрацияX

чтобы писать, читать, комментировать