请给予更多的自由来管理图形窗口

 

目前,如果不使用WinAPI,你无法使用MQL5工具管理图表窗口。

  • 你不能以编程方式改变图表窗口的大小
  • 你不能使任何图表窗口处于活动状态
  • 你不能将图表窗口作为级联、马赛克、水平等方式放置。

我们是否可以期待在未来引入处理图表窗口尺寸的属性和方法?

作为一个例子,标签切换,但使用WinAPI实现。

在实现窗口管理的 "需求 "过程中,解决方案开始出现。

  1. 将模板应用于OBJ_CHART
  2. 在OBJ_CHART中设置状态栏(OHLC)。
 
只有一个问题--为什么?
 
TheXpert:
一个问题是为什么?

例如,在半自动交易 中切换图表窗口以显示工具的当前情况--专家顾问将使有入市信号的图表活跃起来。一个人留下来分析并确认或拒绝该操作。

但是,访问图表窗口的大小将允许将几个(例如两个)图表放在彼此旁边。

两个并排的图表

两张并排的图表

这种图表的组合将使我们有可能以更方便的界面来实现实用程序和分析器。在上图中,右边的图表窗口没有与左边的窗口重叠,你可以在左边的窗口显示额外的信息或不同的时间框架。

 

下面是一个如何定位两个窗口的例子。

 

一个OBJ_CHART对象 用于此。

主图表应该是一个容器,它不应该以编程方式改变。

否则,就会出现将MT窗口转移到另一个显示器的情况)。

 
komposter:

一个OBJ_CHART对象 用于此。

主图表应该是一个容器,它不应该以编程方式改变。

否则,就会出现将MT窗口转移到另一个显示器 的情况)。

这将是件好事。我已经厌倦了在另一台显示器空闲时挤在一起。
 
komposter:

一个OBJ_CHART对象 用于此。

主图表应该是一个容器,它不应该以编程方式改变。

否则就会到将МТ窗口转移到另一个显示器的地步)。

OBJ_CHART对象可以完美地放在一个额外的子窗口中--但这个子窗口不能垂直放置。
到目前为止,子窗口不能被垂直定位,我们必须使用WinAPI进行窗口定位。
而且,如果子窗口可以垂直放置,对主图表区域的使用将更加有效。
 
事实证明,标签切换可以用CHART_BRING_TO_TOP 来实现。但转换是不平衡的,有延迟。我有一种感觉,这与蜱虫来袭有关。我在此附上图表切换的脚本。
附加的文件:
 
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);
  }
 
komposter:

否则就会走到将MT窗口转移到另一个显示器的地步)。

现在是时候了,他们不把汽车上的仪器放在一个窗口里,可以随手翻阅,一个显示器上有六个图表,太多。

人们早就注意到,交易员的成功与工具窗口的大小有直接的关系

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

CORRELATION[相关]是一个描述两个随机变量X和Y的相互依存关系的量,无论它是由某种因果关系决定的,还是仅仅是一种随机巧合(假C。)

slovari.yandex.ru

我不相信随机的巧合

 
Kos:

为了解决延迟问题,使用ChartRedraw()。

谢谢你。现在可以用了。