Скачать MetaTrader 5

Дайте, пожалуйста, больше свободы по управлению окнами графиков

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Язык MQL5 поддерживает технологию OpenCL. Попробуй сам!
Vladimir Karputov
Модератор
45543
Vladimir Karputov 2014.05.02 15:35 

На данный момент средствами MQL5, без применения WinAPI, нельзя управлять окнами графиков:

  • нельзя изменять размер окна графика программно
  • нельзя делать любое окно графика активным
  • нельзя программно размещать окна графиков каскадом, мозаикой, горизонтально и т.д.

Можно-ли ожидать в дальнейшем появление свойств и методом для работы с размерами окон графиков?

Как пример - переключение вкладок, но реализация при помощи WinAPI:

 

В процессе реализации "хотелки" по управлению окнами стали появляться решения: 

  1. Применение шаблонов к OBJ_CHART 
  2. Установка статусной строки (OHLC) в OBJ_CHART
Комбинатор
15919
Комбинатор 2014.05.02 15:58  
Сосбно один вопрос -- зачем?
Vladimir Karputov
Модератор
45543
Vladimir Karputov 2014.05.02 16:22  
TheXpert:
Сосбно один вопрос -- зачем?

Например переключение окон графика для показа текущей ситуации по инструменту при полуавтоматической торговле - эксперт будет делать активным график на котором появился сигнал по входу в рынок. Человеку остается проанализировать и подтвердить или отвергнуть операцию. 

А вот доступ к размерам окон графиков позволит размещать рядом несколько (например два) графиков:

Два графика рядом 

Два графика рядом

Такое сочетание графиков даст возможность реализовать утилиты и анализаторы с более удобным интерфейсом. На рисунке выше, окно правого графика не перекрывает левое окно и в левом окне можно выводить дополнительную информацию или другой таймфрейм. 

Vladimir Karputov
Модератор
45543
Vladimir Karputov 2014.05.02 16:54  

Вот пример как можно располагать два окна:

 

Andrey Khatimlianskii
56145
Andrey Khatimlianskii 2014.05.05 00:05  

Для этого есть объект OBJ_CHART

А основной график должен быть контейнером, и менять его программно не надо.

А то дойдет до переноса окна МТ на другой монитор )

Artyom Trishkin
Модератор
75566
Artyom Trishkin 2014.05.05 01:44  
komposter:

Для этого есть объект OBJ_CHART

А основной график должен быть контейнером, и менять его программно не надо.

А то дойдет до переноса окна МТ на другой монитор )

Было бы не плохо. Надоело ютиться на одном мониторе когда второй свободен.
Vladimir Karputov
Модератор
45543
Vladimir Karputov 2014.05.05 06:22  
komposter:

Для этого есть объект OBJ_CHART

А основной график должен быть контейнером, и менять его программно не надо.

А то дойдет до переноса окна МТ на другой монитор )

   Объект OBJ_CHART можно отлично разместить в дополнительном подокне - но это подокно нельзя разместить вертикально.
   И пока подокно нельзя разместить вертикально, приходится изворачиваться применяя WinAPI для размещения окон.
   А если бы подокно можно было разместить вертикально, то площадь основного графика использовалась бы намного эффективнее.
Vladimir Karputov
Модератор
45543
Vladimir Karputov 2014.05.05 17:18  
Переключение вкладок оказалось можно реализовать с помощью CHART_BRING_TO_TOP. Вот только переключения идут неравномерно, с задержками. Такое ощущение, что это связанно с поступлением тиков. Скрипт переключения графиков прилагаю.
Файлы:
Ruslan Khasanov
3035
Ruslan Khasanov 2014.05.05 22:15  
barabashkakvn:
Переключение вкладок оказалось можно реализовать с помощью CHART_BRING_TO_TOP. Вот только переключения идут неравномерно, с задержками. Такое ощущение, что это связанно с поступлением тиков

Для решения проблемы задержек используй ChartRedraw();

bool ChartBringToTop(const long chart_ID=0)
  {
//--- сбросим значение ошибки
   ResetLastError();
//--- покажем график поверх всех других
   if(!ChartSetInteger(chart_ID,CHART_BRING_TO_TOP,0,true))
     {
      //--- выведем сообщение об ошибке в журнал "Эксперты"
      Print(__FUNCTION__+", Error Code = ",GetLastError());
      return(false);
     }
   ChartRedraw(chart_ID);
//--- успешное выполнение
   return(true);
  }
Ivan Vagin
8888
Ivan Vagin 2014.05.06 00:00  
komposter:

А то дойдет до переноса окна МТ на другой монитор )

Давно пора, вот приборы на автомобиле же не делают в одном окне, чтоб перелистывать на ходу, а шесть графиков на одном мониторе - это перебор.

Давно замечена прямая корреляция между успешностью трейдера и размером окон инструментов 

 

https://www.mql5.com/ru/forum/9156

 

КОРРЕЛЯЦИЯ [correlation] — величина, характеризующая взаимную зависимость двух случайных величин, X и Y, безразлично, определяется ли она некоторой причинной связью или просто случайным совпадением (ложной К.).

slovari.yandex.ru 

 

Не верю я в случайные совпадения

Vladimir Karputov
Модератор
45543
Vladimir Karputov 2014.05.06 04:10  
Kos:

Для решения проблемы задержек используй ChartRedraw();

Спасибо. Теперь работает.
1234567
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий