← К каталогу
Исходный код · ID 2876

coloredvolumesen.mq5

Вы автор или правообладатель?

Сообщите нам, если считаете, что материал размещён без разрешения.

Краткий обзор

О программе

ColoredVolumesEN — это пользовательский индикатор для платформы MetaTrader 5, который отображает объём торгов в виде цветных градиентных столбцов на графике цены. Каждый столбец рисуется отдельным графическим объектом типа OBJ_BITMAP_LABEL с уникальным именем, что позволяет задавать индивидуальные цвета и прозрачность для бычьих и медвежьих баров.

Индикатор поддерживает настройку градиентных цветов для верхней и нижней части столбцов, а также для обводной линии вокруг них. Параметры прозрачности позволяют регулировать видимость столбцов в зависимости от предпочтений трейдера. Доступна автоматическая корректировка обводной линии в зависимости от ширины бара.

Перерисовка происходит при каждом обновлении тиков и при изменении параметров графика. Объём масштабируется пропорционально высоте графика в пикселях с учётом заданного процента от экрана. Для работы используются стандартные функции получения видимых баров и координат графика.

Настройки программы

НастройкаОписание
Auto Draw Line Around Volume (AutoAroundLine) Автоматическая линия вокруг объёма — Автоматически отключает обводную линию, если ширина бара меньше заданного значения в пикселях.
Level Draw Line Around Volume (pixels) (ValueColor) Ширина линии вокруг объёма (пиксели) — Пороговая ширина бара в пикселях, при которой автоматическая обводная линия отключается.
Draw Line Around Volume (AroundLine) Рисовать линию вокруг объёма — Включает или отключает отрисовку обводной линии вокруг столбцов объёма.
Up Candle Color Top Gradient (Lo0) Цвет бычьего бара — верх градиента — Цвет верхней части градиента для столбцов бычьих баров.
Up Candle Color Bottom Gradient (Hi0) Цвет бычьего бара — низ градиента — Цвет нижней части градиента для столбцов бычьих баров.
Up Candle Color Around Line (Ln0) Цвет линии вокруг бычьего объёма — Цвет обводной линии для столбцов бычьих баров.
Up Candle Start Opaque (from 0.. to 255) (Op0) Непрозрачность бычьего бара — начало — Начальная непрозрачность столбцов бычьих баров (от 0 до 255).
Up Candle End Opaque (from 0.. to 255) (OP0) Непрозрачность бычьего бара — конец — Конечная непрозрачность столбцов бычьих баров (от 0 до 255).
Down Candle Color Top Gradient (Lo1) Цвет медвежьего бара — верх градиента — Цвет верхней части градиента для столбцов медвежьих баров.
Down Candle Color Bottom Gradient (Hi1) Цвет медвежьего бара — низ градиента — Цвет нижней части градиента для столбцов медвежьих баров.
Down Candle Color Around Line (Ln1) Цвет линии вокруг медвежьего объёма — Цвет обводной линии для столбцов медвежьих баров.
Down Candle Start Opaque (from 0.. to 255) (Op1) Непрозрачность медвежьего бара — начало — Начальная непрозрачность столбцов медвежьих баров (от 0 до 255).
Down Candle End Opaque (from 0.. to 255) (OP1) Непрозрачность медвежьего бара — конец — Конечная непрозрачность столбцов медвежьих баров (от 0 до 255).
% of Screen (Persent) Процент от экрана — Процент высоты экрана, занимаемый максимальным столбцом объёма.
Получить полный код

Поиск по коду файла

#property strict
#property version     "1.0"

#property description "If you like the indicator, you can thank the author"
#property description "Webmoney: Z330494414179, R222585888867"
#property description " "
#property description "Thank you very much."
#property indicator_chart_window

extern bool AutoAroundLine = false;//Auto Draw Line Around Volume
extern int  ValueColor = 4;//Level Draw Line Around Volume (pixels)
extern bool AroundLine = true;//Draw Line Around Volume

extern color Lo0 = clrDarkCyan;//Up Candle Color Top Gradient
extern color Hi0 = clrWhiteSmoke;//Up Candle Color Bottom Gradient
extern color Ln0 = clrLime;//Up Candle Color Around Line
extern int   Op0 = 0xA0;//Up Candle Start Opaque (from 0.. to 255)
extern int   OP0 = 0x30;//Up Candle End Opaque (from 0.. to 255)

extern color Lo1 = clrYellow;//Down Candle Color Top Gradient
extern color Hi1 = clrWhiteSmoke;//Down Candle Color Bottom Gradient
extern color Ln1 = clrRed;//Down Candle Color Around Line
extern int   Op1 = 0x90;//Down Candle Start Opaque (from 0.. to 255)
extern int   OP1 = 0x40;//Down Candle End Opaque (from 0.. to 255)

extern double Persent = 15;//% of Screen

struct Gradient
  {
   uint              R[2], G[2], B[2], O[2], Line;
  };

Gradient Storage[2];

void deinit()
  {
   ArrayFree(Storage);
  }

int OnInit()
  {
      // код доступен только после оплаты
   }

int Y, X, F, Cx, Cy, CxP, Scale;
double MaxVolume = 0;

void DrawFirst()
  {
   if(MaxVolume<1)
      return;
   int FVB = ChartFirstVisibleBar(), VB = ChartVisibleBars(), vB = FVB - VB;
   uint MapSrorrage[];
   ObjectDelete(0, "mapD0");

   string D = "mapD0";
   string MasName = "::Maps0";

   int ShVolume = int(((double)Volume[0])*MaxVolume);
   if(ShVolume==0)
      return;

   ChartTimePriceToXY(0,0,Time[0],Low[0],Cx,Cy);
   ChartTimePriceToXY(0,0,Time[1],Low[1],CxP,Cy);

   if(Cx <= 0 || CxP <=0)
      return;

   int LengtOfBar = Cx - CxP;

   ObjectCreate(0,D,OBJ_BITMAP_LABEL,0,0,0);
   ObjectSetString(0,D,OBJPROP_BMPFILE,MasName);
   ObjectSetInteger(0,D,OBJPROP_XDISTANCE,Cx-LengtOfBar/2);

   LengtOfBar = LengtOfBar - Scale;

   ObjectSetInteger(0,D,OBJPROP_YDISTANCE,Y-ShVolume-2);
   ObjectSetInteger(0,D,OBJPROP_BACK,true);

   FillMap(MapSrorrage,LengtOfBar,ShVolume,Close[0]>Open[0]?Storage[0]:Storage[1]);

   ResourceFree(MasName);
   ResourceCreate(MasName,MapSrorrage,LengtOfBar,ShVolume,0,0,0,COLOR_FORMAT_ARGB_NORMALIZE);

   ChartRedraw();
  }

void DrawFull()
  {
   int FVB = ChartFirstVisibleBar(), VB = ChartVisibleBars(), vB = FVB - VB;
   uint MapSrorrage[];
   ObjectsDeleteAll(0, "map");
   MaxVolume = 0;

   Scale = (Scale = ChartScaleGet()) != 5? Scale != 4? Scale != 3? Scale != 2? 0: 1: 1: 2: 3;

   for(int i = vB; i <= FVB+3; i ++)
      if(i+1<ArraySize(Volume)&&i>-1)
         MaxVolume   = MathMax((int)Volume[i],MaxVolume);

   if(MaxVolume<1)
      return;

   MaxVolume = ((double)Y*(Persent/100.0f))/MaxVolume;
   for(int i = vB; i <= FVB+3; i ++)
     {
      string D = "mapD" + string(i);
      string MasName = "::Maps" + string(i);
      if(!(i+1<ArraySize(Volume)&&i>-1))
         continue;

      int ShVolume = int(((double)Volume[i])*MaxVolume);
      if(ShVolume==0)
         continue;

      ChartTimePriceToXY(0,0,Time[i],Low[i],Cx,Cy);
      ChartTimePriceToXY(0,0,Time[1+i],Low[1+i],CxP,Cy);

      if(Cx <= 0 || CxP <=0)
         continue;

      int LengtOfBar = Cx - CxP;
      ObjectCreate(0,D,O

Показано первые 50% кода (символов: 6190)

Открыть по тарифу

Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.

Разовая покупка файла

На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.

Чтобы оформить заказ, введите email и перейдите к оплате.

Стоимость полного кода
619₽ ≈ $7.57