Рисование горизонтальных и вертикальных линий... - страница 2

 
Renat Akhtyamov:
курят много ;)

Скорее, хелп читать не любят )) А на ночь полезно почитать, вместо просмотра г***о-сериала.

 
Всем спасибо, судя по всему с линиями все получится. Осталось видимо сделать из этого все таки ... индикатор ... Хм, ну или ...
 
sergey087: ... Осталось сделать  ... индикатор ...  ну или ...

Лучше сразу "или"

 

у кого-нить получилось нарисовать разделительную вертикальную линию __между__ барами ?

(иначе чем устраивать "закат солнца вручную", подкладывая pixmap и высчитывая масштабы)

 
Maxim Kuznetsov:

у кого-нить получилось нарисовать разделительную вертикальную линию __между__ барами ?

(иначе чем устраивать "закат солнца вручную", подкладывая pixmap и высчитывая масштабы)

#property indicator_chart_window
#include <Canvas\iCanvas.mqh> //https://www.mql5.com/ru/code/22164

int OnInit()
  {
   return(INIT_SUCCEEDED);
  }

int OnCalculate(const int rates_total, const int prev_calculated, const int begin, const double &price[])
  {
   return(rates_total);
  }

void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam)
  {
    if (id==CHARTEVENT_MOUSE_MOVE || id ==CHARTEVENT_CHART_CHANGE)
    {
     Canvas.Erase(0);
     // Вывод перекрестия
     Canvas.LineHorizontal(0,W.Width-1,W.MouseY,~W.Color);
     Canvas.LineVertical(W.MouseX,0,W.Height-1,~W.Color);
     // Вывод текстовой информации о цене и времени
     int Ym=(W.MouseY>W.Height/2)?(W.MouseY-16):(W.MouseY+2);
     int Xm=(W.MouseX< W.Width/2)?(W.MouseX+4):(W.MouseX-105);
     Canvas.FontSet("Arial",14);
     Canvas.TextOut(W.Width-50,Ym,DoubleToString(W.MousePrice,_Digits),0xFFFF0000);
     Canvas.TextOut(Xm,W.Height-16,TimeToString(W.MouseTime,TIME_DATE|TIME_SECONDS),0xFF0000FF);
     Canvas.Update();
    }  
  }


Файлы:
Причина обращения: