как можно получить значения цвета пикселя с графика в МТ4

 
как можно получить значения цвета пикселя с графика в МТ4? 
 
Denis Naumov:
как можно получить значения цвета пикселя с графика в МТ4? 


Конкретный пиксель - только через WinAPI. Функция GetPixel.

Но, возможно, требуется узнать цвет фона графика. Тогда достаточно использовать свойство графика CHART_COLOR_BACKGROUND. Аналогично действуем, если требуется узнать цвет осей, сетки и шкалы - CHART_COLOR_FOREGROUND. Цвет сетки - CHART_COLOR_GRID и т. д.

GetPixel function (Windows)
  • msdn.microsoft.com
The GetPixel function retrieves the red, green, blue (RGB) color value of the pixel at the specified coordinates. Syntax Parameters hdc [in] A handle to the device context. nXPos [in] The x-coordinate, in logical units, of the pixel to be examined. nYPos [in] The y-coordinate, in logical units, of the pixel to be examined. Return value The...
 

пробую получить цвет пикселя из окна терминала 

для этого прежде всего получаю дискриптор окна 

с помощью функции  

wh=WindowHandle("USDCHF",PERIOD_H1);

значение выдает  


далее пишу вызов к функции 

color cl=GetPixel(wh,low_x,low_y);


саму функцию импортирую вот таким кодом 

#import "gdi32.dll"

int    GetPixel(int x1,int x,int y);

#import   

функция обычно выдает 255;255;255 что не есть правильно. 

в чем может быть проблема?  

 
Denis Naumov:

пробую получить цвет пикселя из окна терминала 

для этого прежде всего получаю дискриптор окна 

с помощью функции  

значение выдает  


далее пишу вызов к функции 


саму функцию импортирую вот таким кодом 

функция обычно выдает 255;255;255 что не есть правильно. 

в чем может быть проблема?  

А не проще получить цвет графика? https://docs.mql4.com/ru/chart_operations/chartsetinteger

CHART_COLOR_BACKGROUND цвет фона графика.


ps: чуть позже увидел что уже говорилось об этом... Ну, да ладно...

ChartSetInteger - Операции с графиками - Справочник MQL4
ChartSetInteger - Операции с графиками - Справочник MQL4
  • docs.mql4.com
ChartSetInteger - Операции с графиками - Справочник MQL4
 
нет мне не цвет фона нужно узнать а элементы некоторые на графике 
 
Denis Naumov:
нет мне не цвет фона нужно узнать а элементы некоторые на графике 

элементы, чаще всего, это объекты, то есть вам нужно знать имя (или префикс) объекта, и по нему находить/определять какого цвета/начертания объект...
 
Taras Slobodyanik:

элементы, чаще всего, это объекты, то есть вам нужно знать имя (или префикс) объекта, и по нему находить/определять какого цвета/начертания объект...


дело в том что у меня индикатор который написан при использовании сторонних dll  и в нем рассчитывается куча данных. на выходе видно только стрелочки. использовать iCustom не получается и за за низкой производительности. и не корректной работы iCustom  для данного задачи.  поэтому нужна функция определения цвета чтоб можно было прокрутить график и скачать данные в csv а дальше уже на истории с данными из CVS строить стратегии. 

 
стрелочки в буфере индикатора. 
 
Denis Naumov:
стрелочки в буфере индикатора. 

Если индикатор куплен - обратитесь к разработчику. Если из интернета - выложите, найдем решение. Или хотя бы скриншот параметров индикатора и запись используемой функции iCustom. Как вы определяете номер требуемого пикселя на экране? Правильно ли это делаете? Отсчет пикселей от верха монитора или окна

При вызове функции iCustom указывайте лишь Инструмент, ТаймФрейм, Имя Индикатора ---Далее пропускаем--- Номер буфера, Номер бара. 

iCustom(NULL,0,"ИмяИндикатора",НомерБуфера,НомерБара);
Остальные параметры будут взяты по умолчанию со вкладки Параметры