Вопросы по MQL

Тема в разделе "В помощь трейдеру", создана пользователем ddos1, 20 Декабрь 2014.

  1. Trader 007

    Trader 007 Новичок

    Регистрация:
    4 Декабрь 2015
    Сообщения:
    3
    Симпатии:
    0
    Баллы:
    1
    Пол:
    Мужской
    Я на Forex с:
    2005
    Никто вообще ничего не сказал, в том числе что и не выполнит.
    Меня скорее интересовал момент практического использования приводимых кодов, чем реальный продукт для применения в трейдинге.
    В чём с вами согласен, так это в том, что если хочешь что-то сделать, то проще и легче сделать это самому. ))
     
  2. loopsider

    loopsider Бывалый Команда форума Модератор

    Регистрация:
    13 Ноябрь 2013
    Сообщения:
    4.363
    Симпатии:
    3.972
    Баллы:
    435
    Пол:
    Мужской
    Именно так. А еще, гораздо интересней и полезней :)
    Программирование - экспериментальное занятие. Надо пробовать и смотреть, что получается.
    Ваша просьба - тривиальна с одной стороны, и не имеет особого смысла с другой (вы меняете нажатие двух клавиш на один клик мышкой, т.е. шило на мыло). Годится только в качестве упражнения. Упражняйтесь, и все получится.
     
    Klaus Lebentz нравится это.
  3. Klaus Lebentz

    Klaus Lebentz Постоялец Аргонавт

    Регистрация:
    18 Январь 2015
    Сообщения:
    106
    Симпатии:
    91
    Баллы:
    50
    Пол:
    Мужской
    Я на Forex с:
    2011
    Есть ли какая-нибудь недокументированная альтернатива Sleep в тестере стратегий? Понимаю, что тестирование затянется, но очень нужно.
     
  4. loopsider

    loopsider Бывалый Команда форума Модератор

    Регистрация:
    13 Ноябрь 2013
    Сообщения:
    4.363
    Симпатии:
    3.972
    Баллы:
    435
    Пол:
    Мужской
    Sleep тоже в тестере не работает. Делайте все программно - в чем проблемы? Засечка времени, потом проверка - если прошло меньше секунд чем нужно, курим бамбук.
     
    Dmitri и Klaus Lebentz нравится это.
  5. Klaus Lebentz

    Klaus Lebentz Постоялец Аргонавт

    Регистрация:
    18 Январь 2015
    Сообщения:
    106
    Симпатии:
    91
    Баллы:
    50
    Пол:
    Мужской
    Я на Forex с:
    2011
    Про то, что в тестере можно засечь время и не подумал?! Спасибо за наводку.
     
    loopsider и Dmitri нравится это.
  6. esa_vn

    esa_vn Новичок - ARGOLab.net -

    Регистрация:
    19 Декабрь 2016
    Сообщения:
    8
    Симпатии:
    4
    Баллы:
    3
    Пол:
    Мужской
    Я на Forex с:
    2013
    У меня на рабочем чарте присутствует информер, выводящий данные в несколько строк о некоторых параметрах текущего инструмента. Информер докручивал сам, переделывая готовую разработку на схожую тему. Строки формируются операторами вида
    ObjectCreate(BlockName,OBJ_LABEL,.....
    ObjectSetText("BlockName",BlockInfo,...
    в место экрана, задаваемое входными параметрами информера. И бывает так, что на этот информер наезжает график и инфу становится неудобно читать. Есть идея привязать положение последующих строк к положению первой строки, а её ведь по мере необходимости можно через двойной клик мышью переместить в любое место экрана. Как реализовать эту привязку средствами MQL4 ? Заранее благодарен, если сможете ответить !
     
  7. loopsider

    loopsider Бывалый Команда форума Модератор

    Регистрация:
    13 Ноябрь 2013
    Сообщения:
    4.363
    Симпатии:
    3.972
    Баллы:
    435
    Пол:
    Мужской
    Это обычно делается так.
    1. Если объекта на графике нет, создаем его с какими-то начальными координатами X,Y. Разрешаем его перетаскивать по графику. Обычно делают подложку, на которую выводят текст и которую можно перетаскивать.
    2. Если объект уже существует, считываем его координаты X,Y.
    Код:
       if (ObjectFind(name)==0)   { // если объект есть, считываем его координаты
          ObjectGetInteger(0,name,OBJPROP_XDISTANCE,0,X);
          ObjectGetInteger(0,name,OBJPROP_YDISTANCE,0,Y);
       }   else   { // если объекта нет, создаем его
          RectLabelCreate(....);
       }
    
    Все остальные объекты перетаскивать не разрешаем, их координаты отсчитываем от X,Y.
     
  8. esa_vn

    esa_vn Новичок - ARGOLab.net -

    Регистрация:
    19 Декабрь 2016
    Сообщения:
    8
    Симпатии:
    4
    Баллы:
    3
    Пол:
    Мужской
    Я на Forex с:
    2013
    Спасибо ! А как это делается ?
     
    Dmitri нравится это.
  9. loopsider

    loopsider Бывалый Команда форума Модератор

    Регистрация:
    13 Ноябрь 2013
    Сообщения:
    4.363
    Симпатии:
    3.972
    Баллы:
    435
    Пол:
    Мужской
    Код:
          ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
    
     
  10. esa_vn

    esa_vn Новичок - ARGOLab.net -

    Регистрация:
    19 Декабрь 2016
    Сообщения:
    8
    Симпатии:
    4
    Баллы:
    3
    Пол:
    Мужской
    Я на Forex с:
    2013
    А эту функцию надо создавать ?
    У меня ее в редакторе вроде бы нет ... upload_2016-12-19_11-55-1.png
     
  11. loopsider

    loopsider Бывалый Команда форума Модератор

    Регистрация:
    13 Ноябрь 2013
    Сообщения:
    4.363
    Симпатии:
    3.972
    Баллы:
    435
    Пол:
    Мужской
    Да, тут вы создаете тот объект который вам нужен.
    Код:
    //--------------------------------------------------------------------
    bool RectLabelCreate(const long             chart_ID=0,               // ID графика
                         const string           name="RectLabel",         // имя метки
                         const int              sub_window=0,             // номер подокна
                         const long              x=0,                     // координата по оси X
                         const long              y=0,                     // координата по оси y
                         const int              width=50,                 // ширина
                         const int              height=18,                // высота
                         const color            back_clr=clrNONE,         // цвет фона
                         const color            clr=clrNONE,              //цвет плоской границы (Flat)
                         const ENUM_LINE_STYLE  style=STYLE_SOLID,        // стиль плоской границы
                         const int              line_width=1,             // толщина плоской границы
                         const bool             back=false,               // на заднем плане
                         const bool             selection=false,          // выделить для перемещений
                         const bool             hidden=true,              // скрыт в списке объектов
                         const long             z_order=0,                // приоритет на нажатие мышью
                         const bool             selected=false)           // выделен
      {
       ResetLastError();
       if (ObjectFind(chart_ID,name)==-1)
       {
          ObjectCreate(chart_ID,name,OBJ_RECTANGLE_LABEL,sub_window,0,0);
          ObjectSetInteger(chart_ID,name,OBJPROP_BORDER_TYPE,BORDER_FLAT);
          ObjectSetInteger(chart_ID,name,OBJPROP_CORNER,CORNER_LEFT_UPPER);
          ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
          ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,line_width);
          ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
          ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
          ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selected);
          ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
          ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
       }
       ObjectSetInteger(chart_ID,name,OBJPROP_BGCOLOR,back_clr);
       ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
       ObjectSetInteger(chart_ID,name,OBJPROP_XSIZE,width);
       ObjectSetInteger(chart_ID,name,OBJPROP_YSIZE,height);
       ObjectSetInteger(chart_ID,name,OBJPROP_XDISTANCE,x);
       ObjectSetInteger(chart_ID,name,OBJPROP_YDISTANCE,y);
       return(true);
    }
     
  12. esa_vn

    esa_vn Новичок - ARGOLab.net -

    Регистрация:
    19 Декабрь 2016
    Сообщения:
    8
    Симпатии:
    4
    Баллы:
    3
    Пол:
    Мужской
    Я на Forex с:
    2013
    А вот ещё хочу спросить - нет ли решения в MQL4 для быстрого доступа к свойствам одного из установленных на чарте индикаторов, типа создания нужной кнопки ? Не очень удобно клацать Ctrl-I , затем ещё выбрать нужный индикатор из списка ... А если их многовато ? Вобщем, хочется слегка облегчить себе трейдерские будни
     
  13. loopsider

    loopsider Бывалый Команда форума Модератор

    Регистрация:
    13 Ноябрь 2013
    Сообщения:
    4.363
    Симпатии:
    3.972
    Баллы:
    435
    Пол:
    Мужской
    В индикаторе вы можете прописать создание любых объектов и какие угодно кнопки.
    Вот тут еще хорошая тема на эту тему Пожалуйста, войдите или зарегистрируйтесь для просмотра ссылок.
     
    Последнее редактирование: 19 Декабрь 2016
    esa_vn нравится это.

.

Поделиться этой страницей

translate