![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Добрый вечер всем!
У меня есть индикатор объёма, не стандартный, хочу попросить Вас его немного переделать(картинку, как образец прикладываю). В входных параметрах есть раздел Volume Criteria и какое значение ему задаём и с такого значения( к примеру 20) объём красит хистограмму в другой цвет. Можно ли выполнить так, чтобы в этом критерии объёма можно было выставлять разные пределы, к примеру от 0-11 и свой цвет, от 11-20, свой цвет и так далее, но чтобы я сам этот предел и цвет задавал. И ещё как сделать увеличение цыфровое(в правом верхнем углу индикатора)? Исходник прикладываю:
//+------------------------------------------------------------------+
//| ##suxarik_VOL.mq4 |
//| |
//| |
//+------------------------------------------------------------------+
// ##Lukich_MTF-multiple Time Frames. Рисуем индюк со старшего ТФ
#property copyright "suxarik&Slim"
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Green
#property indicator_color2 Red
//---- input parameters
//extern int cBars=1000;
extern int GraphMode=1; // 0- рисует гистограмму, 1- рисует гистограмму
extern color TextColor=Blue;
extern int VolumeCriteria=11;
extern int Tolshina=3;
//---- buffers
double VL[];
double VLsuper[];
int win_idx;
string LabelTextLuk;
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
ObjectDelete("Labsux");
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicator line
IndicatorBuffers(3);
SetIndexBuffer(0,VL);
SetIndexBuffer(1,VLsuper);
IndicatorShortName("suxarik_VOL");
switch(GraphMode)
{
case 0 :
SetIndexStyle(0,DRAW_LINE,STYLE_SOLID, Tolshina);
SetIndexStyle(1,DRAW_LINE,STYLE_SOLID, Tolshina);
break;
default:
SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID, Tolshina);
SetIndexStyle(1,DRAW_HISTOGRAM,STYLE_SOLID, Tolshina);
break;
}
SetIndexEmptyValue(0,0);
SetIndexEmptyValue(1,0);
IndicatorDigits(0);
win_idx=WindowFind("suxarik_VOL");
//IndicatorDigits(MarketInfo(Symbol(), MODE_DIGITS));
// SetIndexStyle(1,DRAW_LINE);
ObjectDelete("Labsux");
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int start()
{
int i,counted_bars=IndicatorCounted();
double value1,value2;
//----
int limit;
if (counted_bars==0) limit=Bars-9;
if (counted_bars>0) limit=Bars-counted_bars;
limit--;
//----
LabelTextLuk=
DoubleToStr(Volume[i+9],0)+"-"+
DoubleToStr(Volume[i+8],0)+"-"+
DoubleToStr(Volume[i+7],0)+"-"+
DoubleToStr(Volume[i+6],0)+"-"+
DoubleToStr(Volume[i+5],0)+"-"+
DoubleToStr(Volume[i+4],0)+"-"+
DoubleToStr(Volume[i+3],0)+"-"+
DoubleToStr(Volume[i+2],0)+"-"+
DoubleToStr(Volume[i+1],0)+"-"+
DoubleToStr(Volume[i+0],0);
// +Volume[i+8]+"-"+Volume[i+7]+"-"+Volume[i+6]"-"+Volume[i+5]+
// "-"+Volume[i+4]+"-"+Volume[i+3]+"-"+Volume[i+2]+"-"+Volume[i+1]+"-"+Volume[i]);
//ObjectDelete("Labsux");//;ObjectDelete("LabLukW");ObjectDelete("LabLukM");
if (ObjectFind("Labsux")==-1)
{
ObjectCreate("Labsux",OBJ_LABEL,win_idx,0,0);
ObjectSet("Labsux", OBJPROP_CORNER, 1); //от верхнего правого угла
ObjectSet("Labsux", OBJPROP_XDISTANCE, 10);
ObjectSet("Labsux", OBJPROP_YDISTANCE, 1);
}
ObjectSetText("Labsux", LabelTextLuk, 8, "Arial", TextColor);
//i=Bars-CountBars-1;
/*
if (cBars<Bars-1) i=cBars;
else
i=Bars;
*/
while(limit>=0)
{
if (Volume[limit]>=VolumeCriteria)
{
value1=0;
value2=Volume[limit];
}
else
{
value1=Volume[limit];
value2=0;
}
VL[limit]=value1;
VLsuper[limit]=value2;
limit--;
}
return(0);
}
//+------------------------------------------------------------------+