Получение вертикального и горизонтального размера текущего графика в пикселах на данный момент является неразрешимой задачей ? Renat, я правильно Вас понял ?
Получение вертикального и горизонтального размера текущего графика в пикселах на данный момент является неразрешимой задачей ? Renat, я правильно Вас понял ?
Мой ответ был общего плана на общий вопрос "некоторые откровенно игнорируются в течение длительного времени. Почему ?"
А размеры экрана определить элементарно - Вы же сами почти до всего дошли?
#import "user32.dll"
int GetClientRect(int hWnd,int lpRect[]);
//+------------------------------------------------------------------+
//| script program start function |
//+------------------------------------------------------------------+
int start()
{
int rect[4];
//----
int hwnd=WindowHandle(Symbol(),Period());
if(hwnd>0)
{
GetClientRect(hwnd,rect);
Print("Left: ",rect[0]," Top: ",rect[1]," Right: ",rect[2]," Bottom: ",rect[3]);
}
//----
return(0);
}
Грешен, каюсь, простите. Разрешил импорт dll и все заработало.
Для меня это первый скрипт такого рода. Думал, что у меня глюки на машине, старая операционка, копировал библиотеку user32.dll в папку libraries, пробовал void GetClientRect, bool GetClientRect. А ларчик просто открывался ...
Больше не буду повторять эту ошибку, торжественно клянусь.
При решении задачи прямого и обратного преобразования
пиксел_Y -> котировка, котировка -> пиксел_Y
возникает следующий вопрос:
Как определить величины максимальной и минимальной котировок, видимых на вертикальной оси ( обозначены на рисунке ??? вверху и внизу ), если известны High 1.8600, Low 1.8400 и вертикальный размер графика в пикселах 500 ? Масштаб графика автоматический.
Мой ответ был общего плана на общий вопрос "некоторые откровенно игнорируются в течение длительного времени. Почему ?"
А размеры экрана определить элементарно - Вы же сами почти до всего дошли?
#import "user32.dll" int GetClientRect(int hWnd,int lpRect[]); //+------------------------------------------------------------------+ //| script program start function | //+------------------------------------------------------------------+ int start() { int rect[4]; //---- int hwnd=WindowHandle(Symbol(),Period()); if(hwnd>0) { GetClientRect(hwnd,rect); Print("Left: ",rect[0]," Top: ",rect[1]," Right: ",rect[2]," Bottom: ",rect[3]); } //---- return(0); }Приведенный Вами код успешно компилируется, но при выполнении выдает следующее сообщение в логах:
2006.08.28 07:51:05 ____pixel EURUSD,M1: removed
2006.08.28 07:51:05 ____pixel EURUSD,M1: expert stopped
2006.08.28 07:51:05 ____pixel EURUSD,M1: dll calls are not allowed; 'user32.dll'-'GetClientRect'
2006.08.28 07:51:05 ____pixel EURUSD,M1: loaded successfully
Проверял на Windows XP и Win98, результат одинаковый. Build 195.
Для меня это первый скрипт такого рода. Думал, что у меня глюки на машине, старая операционка, копировал библиотеку user32.dll в папку libraries, пробовал void GetClientRect, bool GetClientRect. А ларчик просто открывался ...
Больше не буду повторять эту ошибку, торжественно клянусь.
Огромнейшее Вам спасибо !!!
При решении задачи прямого и обратного преобразования
пиксел_Y -> котировка, котировка -> пиксел_Y
возникает следующий вопрос:
Как определить величины максимальной и минимальной котировок, видимых на вертикальной оси ( обозначены на рисунке ??? вверху и внизу ), если известны High 1.8600, Low 1.8400 и вертикальный размер графика в пикселах 500 ? Масштаб графика автоматический.
|------------------------------------------------| <- ???
|................................................|
|................................................|
|...........High 1.8600....................|
|................................................|
|................................................|
|................................................|
|................................................|
|................................................|
|................................................|
|............ Low 1.8400...................|
|................................................|
|................................................|
|------------------------------------------------| <- ???
Цитаты из ваших предыдущих ответов:
Кстати, 5% не от цены, а от количества пикселей между максимальной и минимальной ценой.
Расстояния от Low до нижней границы графика и от High до верхней границы графика зачастую не совпадают, особенно на малых периодах.
Как же это возможно, если сверху к High и снизу к Low прибавляется одинаковое количество пикселей ( 5 % ) ?
чтобы не беспокоить попусту разработчиков, отвечу:
как так?? а можно картинку? с мт4 работаю уж год, но ни разу такого не видел..
High 1.2729 Макс. видимое значение 1.2730 delta 0.0001
Low 1.2695 Мин. видимое значение 1.2690 delta 0.0005