Что можно сделать с чартом терминала? Поджарить! - страница 2

 
kPVT:

Спасибо!

Лично меня интересовал типа хак EvenSetTimer(1) от разработчика.

Раз такие дела, может убрать ограничение в 1 секунду? 

 Стандартными фигурами нет (пока?) . Вам ведь нужна привязка фигур к барам.

А с помощью ресурсов, как в flame, будет непросто. Придется отслеживать скрол чарта и динамически создавать, удалять, двигать объекты.


1) Почему же ХАК? Весь код в пределах документации.

2) А как же объект OBJ_BITMAP? Он ведь привязан к барам и может использовать ресурсы.

Хотя я бы все равно сделал при помощи OBJ_BITMAP_LABEL, получится экономнее по ресурсам, а пересчитать координаты из точек в бары не трудно - ChartTimePriceToXY

 
FinGeR:

Открытость

Можно ли создать прозрачные прямоугольники?

 

можно.  рисуйте канвасом в памяти. с альфаканалом.
 
mql5:

1) Почему же ХАК? Весь код в пределах документации.

2) А как же объект OBJ_BITMAP? Он ведь привязан к барам и может использовать ресурсы.

Хотя я бы все равно сделал при помощи OBJ_BITMAP_LABEL, получится экономнее по ресурсам, а пересчитать координаты из точек в бары не трудно - ChartTimePriceToXY

1. Типа хаком,  и потому, что таймер менее 1 секунды нельзя. Но выходит, что если сильно хочется, то можно. В общем как везде )).

2. Точно! Про OBJ_BITMAP совсем забыл.

ChartTimePriceToXY отличная вещь, использую, но я бы делал на OBJ_BITMAP.

Для меня самоучки так проще, а ресурсы сейчас дешевые.

 

p.s. Все таки у OBJ_BITMAP есть особенность, не масштабируется с графиком, как обычный прямоугольник.

 
sergeev:
можно.  рисуйте канвасом в памяти. с альфаканалом.

 Я пытался его с пикселей. Высокая загрузка ЦП.

 

//+------------------------------------------------------------------+
//|                                                         test.mq5 |
//|                        Copyright 2011, MetaQuotes Software Corp. |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2011, MetaQuotes Software Corp."
#property link      "http://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+

#import "user32.dll"
   int GetDC(int hwnd);
   int ReleaseDC(int hwnd,int hdc);
#import "gdi32.dll"
 int GetPixel(int hdc,int x,int y);
 int SetPixel(int hdc,int x,int y, int c); 
#import

void OnStart()
  {
   
int i, H, V, shH=0, shV=0, header;
  double hgh;
  color screen [80][80];
  color r, g, b, cv=Red;

//---
long  hwnd=ChartGetInteger(ChartID(),CHART_WINDOW_HANDLE);
int   hdc=GetDC((int)hwnd);
   
 

for(V=0; V<80; V++)
{
   for(H=0; H<80; H++)
   {
   screen[V][H]=GetPixel(hdc,V,H); 
   
   }
}

for(V=0; V<80; V++)
{
   for(H=0; H<80; H++)
   {

   cv=screen[V][H];
   
     cv=AlphaBlend(cv ,clrRed );

   SetPixel(hdc, V+shV,H+shH,cv);
  
   }
}


Sleep(3000);


  }
//+------------------------------------------------------------------+

/* alpha blend routine */
int AlphaBlend(int bg, int src)
{
int alpha = 100;
return (src * alpha / 255 + bg * (255 - alpha) / 255);

   int a = src >> 24;    /* alpha */
 
   /* If source pixel is transparent, just return the background */
   if (0 == a) return (bg);

   /* alpha blending the source and background colors */
 int rb = (((src & 0x00ff00ff) * a) +  
      ((bg & 0x00ff00ff) * (0xff - a))) & 0xff00ff00;
 int    g  = (((src & 0x0000ff00) * a) + 
      ((bg & 0x0000ff00) * (0xff - a))) & 0x00ff0000;
 
    return (  (src & 0xff000000) | ((rb | g) >> 8)   );
}
 
FinGeR:

Открытость

Можно ли создать прозрачные прямоугольники?

 

А Вы не пробовали Trade Sessions Indicator?

Если правильно/грамотно подобрать цвета, весьма не плохо получается...

 
FinGeR:

 Я пытался его с пикселей. Высокая загрузка ЦП.

 

да,  это самые медленные функци WinGDI

 int GetPixel(int hdc,int x,int y);
 int SetPixel(int hdc,int x,int y, int c); 


но для работы с битмапом в памяти - абсолютно не надо ими пользоваться. Выполняйте простое заполнение массива ресурса.


но если же очень хочется получать данные пикселя с экрана - лучше используйте BitBlt   она в разы быстрее.

 

Спасибо.

 

Фонтанчик сделал. Не получается видео загрузить, так прикладываю. 


 

Файлы:
 
Integer:

Фонтанчик сделал. Не получается видео загрузить, так прикладываю. 

Можно или на YouTube выложить такой формат (.wmv) или конвертировать в формат .flv:



 

Шикарно. Даже не могу представить на какой еще платформе можно было бы такое сотворить....

Только не понятно когда покупать, а когда продавать? Или это вместо?)

Причина обращения: