Подскажите пожалуйста

 

Доброго времени суток!

Подскажите пожалуйста где в коде ошибка, не отображаются мувинги на барах тикового объема;(

Ниже выкладываю код и сам индикатор. Заранее всем спасибо!

#property indicator_separate_window

#property indicator_buffers 6

#property indicator_minimum 0


#property indicator_color1 Red

#property indicator_color2 Blue

#property indicator_color3 Red

#property indicator_color4 Blue

#property indicator_color5 Black

#property indicator_color6 DarkGray


extern int Period_MA1 = 8; // Период расчётной МА1

extern int Period_MA2 = 21; // Период расчётной МА2

extern int Period_MA3 = 55; // Период расчётной МА3

extern int Period_MA4 = 144; // Период расчётной МА4

double UpTicks[];

double DownTicks[];

double MA1[];

double MA2[];

double MA3[];

double MA4[];

//+------------------------------------------------------------------+

//| Custom indicator initialization function |

//+------------------------------------------------------------------+

int init()

{

IndicatorShortName("VTS_MA("+Symbol()+")");

SetIndexStyle(0,DRAW_HISTOGRAM,0,1);

SetIndexBuffer(0,UpTicks);

SetIndexDrawBegin(0,1);

SetIndexLabel(0,"UpTicks");

SetIndexStyle(1,DRAW_HISTOGRAM,0,1);

SetIndexBuffer(1,DownTicks);

SetIndexDrawBegin(1,1);

SetIndexLabel(1,"DownTicks");

SetIndexStyle(2,DRAW_LINE);

SetIndexBuffer(2,MA1);

SetIndexLabel(2,"MA=8");

SetIndexStyle(3,DRAW_LINE,0,1);

SetIndexBuffer(3,MA2);

SetIndexDrawBegin(3,1);

SetIndexLabel(3,"MA=21");

SetIndexStyle(4,DRAW_LINE,0,1);

SetIndexBuffer(4,MA3);

SetIndexDrawBegin(4,1);

SetIndexLabel(4,"MA=55");

SetIndexStyle(5,DRAW_LINE,0,1);

SetIndexBuffer(5,MA4);

SetIndexDrawBegin(5,1);

SetIndexLabel(5,"MA=144");

IndicatorDigits(Digits);

return(0);

}

//+------------------------------------------------------------------+

//| Custom indicator deinitialization function |

//+------------------------------------------------------------------+

int deinit()

{

ObjectDelete("UpTicks1");

ObjectDelete("DownTicks1");

ObjectDelete("UpTicks2");

ObjectDelete("DownTicks2");

Comment("");

return(0);

}

//+------------------------------------------------------------------+

//| Ticks Volume Indicator |

//+------------------------------------------------------------------+

int start()

{

ObjectDelete("UpTicks1");

ObjectDelete("DownTicks1");

ObjectDelete("UpTicks2");

ObjectDelete("DownTicks2");

int i,counted_bars=IndicatorCounted();

//---- check for possible errors

if(counted_bars<0) return(-1);

//---- last counted bar will be recounted

if(counted_bars>0) counted_bars--;

int limit=Bars-counted_bars;

for(i=0; i<limit; i++)

{

MA1[i]=iMA(NULL,0,8,0,MODE_SMA,Volume[i],i);

MA2[i]=iMA(NULL,0,Period_MA2,0,MODE_SMA,Volume[i],i);

MA3[i]=iMA(NULL,0,Period_MA3,0,MODE_SMA,Volume[i],i);

MA4[i]=iMA(NULL,0,Period_MA4,0,MODE_SMA,Volume[i],i);

}

//----

for(i=0; i<limit; i++)

{

UpTicks[i]=(Volume[i]+(Close[i]-Open[i])/Point)/2;

DownTicks[i]=Volume[i]-UpTicks[i];

}

string BV="BUY VOLUME : "+DoubleToStr(UpTicks[0],0)+"";

string SV="SELL VOLUME: "+DoubleToStr(DownTicks[0],0)+"";

ObjectCreate("UpTicks2", OBJ_LABEL, WindowFind("TicksVolume("+Symbol()+")"), 0, 0);

ObjectSetText("UpTicks2",StringSubstr((BV),0), 7, "Tahoma Bold",Black);

ObjectSet("UpTicks2", OBJPROP_CORNER, 0);

ObjectSet("UpTicks2", OBJPROP_XDISTANCE, 5);

ObjectSet("UpTicks2", OBJPROP_YDISTANCE, 15);

ObjectCreate("DownTicks2", OBJ_LABEL, WindowFind("TicksVolume("+Symbol()+")"), 0, 0);

ObjectSetText("DownTicks2",StringSubstr((SV),0), 7, "Tahoma Bold",Black);

ObjectSet("DownTicks2", OBJPROP_CORNER, 0);

ObjectSet("DownTicks2", OBJPROP_XDISTANCE, 5);

ObjectSet("DownTicks2", OBJPROP_YDISTANCE, 25);

return(0);

}

//+------------------------------------------------------------------+

Файлы:
vts_ma.mq4  5 kb
 
Народ, помогите плиз!
 
Fox_RM:
Народ, помогите плиз!

Для начала советую почитать теорию. Разобраться с функцией iMA().
Причина обращения: