MetaTrader 4 MT4 Libraries GetPaneHeights – library MetaTrader 4

GetPaneHeights – library MetaTrader 4

This function calculates the height in pixel of each pane in a window.


With the use of the built-in functions “WindowPriceMin/Max()” together, you can calculate appropriate spacing/margin to text/arrow objects (OBJ_TEXT/OBJ_ARROW), whatever size the window is. See the EXAMPLE section below.


#import "GetPaneHeights.ex4"
int GetPaneHeights(int &height[]);

height[i] = the height in pixel of pane “i”
i = 0: main chart
i = 1: indicator #1
i = 2: indicator #2
… (in top-to-bottom order)

The size of “height[]” must be large enough to contain all panes.

This function returns the number of panes. If it fails, the return value is zero.

To the window image below, you will get a return value of 4, and height[0] = 172, height[1] = 55, height[2] = 63, height[3] = 53.


This function scans the device context (DC) of a window, so if (the leftmost piece of) the window is covered by another window, then this function will fail.


#import "GetPaneHeights.ex4"
int GetPaneHeights(int &height[]);
int i, panes, height[10];
double spacing;
string sign;
panes = GetPaneHeights(height);
for (i = 0; i < panes; i++)
Print("height[", i, "] = ", height[i], " pixels");
// Analyzing the chart... Hmm... it's time to sell.
if (panes == 0) {
Alert("WARNING: cannot get the pane height!");
height[0] = 500;
sign = "sell sign";
spacing = 5 * (WindowPriceMax(0) - WindowPriceMin(0)) / height[0];
ObjectCreate(sign, OBJ_ARROW, 0, Time[0], High[0] + spacing);
ObjectSet(sign, OBJPROP_ARROWCODE, ...);
ObjectSet(sign, OBJPROP_COLOR, ...);
// The sell sign will be located 5 pixels above the highest price
// of the latest bar, whatever size the window is.
📈 ROBOTFX MetaTrader Expert Advisors and Indicators to maximize profits and minimize the risks