coloredvolumesen.mq5
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «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? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.