#property copyright "Copyright © 2009, O-bo.com"
#property link "http://www.o-bo.com"
#property indicator_separate_window
#property indicator_buffers 8
#property indicator_color1 Lime
#property indicator_color2 Red
#property indicator_color3 Green
#property indicator_color4 Maroon
#property indicator_color5 Lime
#property indicator_color6 Red
#property indicator_color7 Green
#property indicator_color8 Maroon
[COLOR=Red]// Это я добавил
#property indicator_width1 2
#property indicator_width2 2
#property indicator_width3 2
#property indicator_width4 2
#property indicator_width5 1
#property indicator_width6 1
#property indicator_width7 1
#property indicator_width8 1
// Так устанавливается ширина линий, гистограмм или размера меток которыми отображается индикатор
// [/COLOR]extern int Shirina=2;//1..5 [COLOR=Red]Эта строка не нужна[/COLOR]
extern int Period1=10;
extern int Period2=100;
extern int TF=60;//1,5,15,30,60,240,1440,10080,43200минут-что соответствует M1,M5,M15,M30,H1,H4,D1,W1,MN1
double Buffer1[];
double Buffer2[];
double Buffer3[];
double Buffer4[];
double Buffer5[];
double Buffer6[];
double Buffer7[];
double Buffer8[];
int init() {
ObjectCreate("Close line", OBJ_HLINE, 0, Time[40], Close[0]);
ObjectSet("Close line", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("Close line", OBJPROP_COLOR, Silver);
SetIndexStyle(0, DRAW_HISTOGRAM[COLOR=Red]/*[/COLOR], EMPTY,Shirina[COLOR=Red]*/[/COLOR]);SetIndexBuffer(0, Buffer1);
SetIndexStyle(1, DRAW_HISTOGRAM[COLOR=Red]/*[/COLOR], EMPTY,Shirina[COLOR=Red]*/[/COLOR]);SetIndexBuffer(1, Buffer2);
SetIndexStyle(2, DRAW_HISTOGRAM[COLOR=Red]/*[/COLOR], EMPTY,Shirina[COLOR=Red]*/[/COLOR]);SetIndexBuffer(2, Buffer3);
SetIndexStyle(3, DRAW_HISTOGRAM[COLOR=Red]/*[/COLOR], EMPTY,Shirina[COLOR=Red]*/[/COLOR]);SetIndexBuffer(3, Buffer4);
SetIndexStyle(4, DRAW_HISTOGRAM[COLOR=Red]/*[/COLOR], EMPTY,Shirina[COLOR=Red]*/[/COLOR]);SetIndexBuffer(4, Buffer5);
SetIndexStyle(5, DRAW_HISTOGRAM[COLOR=Red]/*[/COLOR], EMPTY,Shirina[COLOR=Red]*/[/COLOR]);SetIndexBuffer(5, Buffer6);
SetIndexStyle(6, DRAW_HISTOGRAM[COLOR=Red]/*[/COLOR], EMPTY,Shirina[COLOR=Red]*/[/COLOR]);SetIndexBuffer(6, Buffer7);
SetIndexStyle(7, DRAW_HISTOGRAM[COLOR=Red]/*[/COLOR], EMPTY,Shirina[COLOR=Red]*/[/COLOR]);SetIndexBuffer(7, Buffer8);
IndicatorShortName("OBO TrendBars");
return (0);
}
int deinit() {
ObjectDelete("Close line");
Comment("");
return (0);
}
int start() {
double l_icci_0;
double l_icci_8;
int li_16;
ObjectMove("Close line", 0, Time[20], Close[0]);
//Comment("O-bo.com - Obo Trend Bars, Sensitivity : " + DoubleToStr(Sensitivity, 0));
int l_ind_counted_20 = IndicatorCounted();
if (Bars <= 15) return (0);
if (l_ind_counted_20 < 1) { [COLOR=Red]// Этот блок программы абсолютно бессмыслен, начинач с этой строки [/COLOR]
for (int pos = 1; pos <= 15; pos++)
{
Buffer1[Bars - pos] = 0.0;
Buffer3[Bars - pos] = 0.0;
Buffer2[Bars - pos] = 0.0;
Buffer4[Bars - pos] = 0.0;
Buffer5[Bars - pos] = 0.0;
Buffer7[Bars - pos] = 0.0;
Buffer6[Bars - pos] = 0.0;
Buffer8[Bars - pos] = 0.0;
}
}[COLOR=Red] // и заканчивая этой строкой. Milord к этому никакого отношения не имеет.[/COLOR]
if (l_ind_counted_20 > 0) li_16 = Bars - l_ind_counted_20;
if (l_ind_counted_20 == 0) li_16 = Bars - 15 - 1;
for (pos = li_16; pos >= 0; pos--)
{
[B]l_icci_0[/B] = [COLOR=Red][B]iCCI[/B][/COLOR](NULL,TF, [B]Period2[/B], PRICE_TYPICAL, pos); [COLOR=Red]// Здесь определяется значение индикатора CCI [/COLOR]
[B]l_icci_8[/B] = [COLOR=Red][B]iCCI[/B][/COLOR](NULL,TF, [B]Period1[/B], PRICE_TYPICAL, pos); [COLOR=Red]// Здесь определяется значение CCI другого периода[/COLOR]
Buffer1[pos] = EMPTY_VALUE;
Buffer3[pos] = EMPTY_VALUE;
Buffer2[pos] = EMPTY_VALUE;
Buffer4[pos] = EMPTY_VALUE;
Buffer5[pos] = EMPTY_VALUE;
Buffer7[pos] = EMPTY_VALUE;
Buffer6[pos] = EMPTY_VALUE;
Buffer8[pos] = EMPTY_VALUE;
if ([B]l_icci_0 >= 0.0 && l_icci_8 >= 0.0[/B]) [COLOR=Red]// Условие в зависимости от значений индикаторов CCI заполняется буфер соответствующего цвета[/COLOR]
{
Buffer1[pos] = MathMax(Open[pos], Close[pos]);
Buffer2[pos] = MathMin(Open[pos], Close[pos]);
Buffer5[pos] = High[pos];
Buffer6[pos] = Low[pos];
}
else
{
if ([B]l_icci_8 >= 0.0 && l_icci_0 < 0.0[/B]) [COLOR=Red]// Условие в зависимости от значений индикаторов CCI [/COLOR][COLOR=Red]заполняется буфер соответствующего цвета[/COLOR]
{
Buffer3[pos] = MathMax(Open[pos], Close[pos]);
Buffer4[pos] = MathMin(Open[pos], Close[pos]);
Buffer7[pos] = High[pos];
Buffer8[pos] = Low[pos];
}
else
{
if ([B]l_icci_0 < 0.0 && l_icci_8 < 0.0[/B]) [COLOR=Red]// Условие в зависимости от значений индикаторов CCI [/COLOR][COLOR=Red]заполняется буфер соответствующего цвета[/COLOR]
{
Buffer2[pos] = MathMax(Open[pos], Close[pos]);
Buffer1[pos] = MathMin(Open[pos], Close[pos]);
Buffer6[pos] = High[pos];
Buffer5[pos] = Low[pos];
}
else
{
if ([B]l_icci_8 < 0.0 && l_icci_0 > 0.0[/B]) [COLOR=Red]// Условие в зависимости от значений индикаторов CCI [/COLOR][COLOR=Red]заполняется буфер соответствующего цвета[/COLOR]
{
Buffer4[pos] = MathMax(Open[pos], Close[pos]);
Buffer3[pos] = MathMin(Open[pos], Close[pos]);
Buffer8[pos] = High[pos];
Buffer7[pos] = Low[pos];
}
}
}
}
}
return (0);
}