как заставить индиатор считать

 

Господа разработчики!

Как заставитьработать пользовательский индикатор в автономном режиме.

Ваши встроенные рисуют без проблем, а пользовательский загрузился и молчит. Не рисует и не считает вроде как не заводится.

В обычном режиме с тиками он давно у меня работает без проблем.

 
Тут я упоминал подобные проблемы - http://www.alpari-idc.ru/ru/experts/articles/13.html
 

Roch спасибо. Я посмотрел, но это по моему не то.

Он не хочет работать именно в автономном режиме, т.е. когда тиков в принципе нет.

Да и соревноваться ему не с кем, он там один открывается. Тут какая-то системная коза.

 
Так не бывает, либо выкладываешь код и мы видим что ты в теме, либо тихо сам с собою.
ЗЫ Индикатор, в отличие от совтеника в текущей реализации терминала не дожидается прихода тика для инициации, поэтому есть сомнения в компетенции.
 
Rosh:
Так не бывает, либо выкладываешь код и мы видим что ты в теме, либо тихо сам с собою.
ЗЫ Индикатор, в отличие от совтеника в текущей реализации терминала не дожидается прихода тика для инициации, поэтому есть сомнения в компетенции.

Я воспользовался твоей методой и расставил принты . Все по тексту программы проходит, а рисовать не хочет.

Она его прорисовала на экране только после перекомпиляции.

Даже при изменении параметров не перерисовывает. Точно системная коза.

Может кто из разработчиков откликнется.

 

Даже интересней. При изменении параметров она его стирает, а заново не рисует.

 
Rosh:
ЗЫ Индикатор, в отличие от совтеника в текущей реализации терминала не дожидается прихода тика для инициации, поэтому есть сомнения в компетенции.

А как он..?

То есть, первый раз старт() запускается без тика, а потом потиково?

 
когда я прикрепляю какой-нибудь индюк к автономке, я всегда передергиваю внешние переменные через свойства индюка и он отрисовывается без проблем (правда иногда МТ не хотел рисовать (ну плющило его), тогда - перезагрузка терминала, и если в индюке боков нет, он обязательно отрисовывался. )
 

При перезагрузке МТ4 не отрисоваываетсяна экране, на изменение внешних перменных он не реагирует

Поставил в индикаторе промежуточные принты. Все проходит, все считает, нормально завершается, но не отрисовывается.

Этот же индикатор в реальном режиме работает без проблем.

Перекомпиляция загруженного индикатора заставляет его отрисоваться.

При изменении внешних переменных рисунок стирается и не обновляется

Разработчики АУ... 100% ваш глюк.

 
Может все таки выложить полный код индикатора - сразу все станет ясно.
Без полного исходного кода сложно отвечать.
 
Renat:
Может все таки выложить полный код индикатора - сразу все станет ясно.
Без полного исходного кода сложно отвечать.


Я же говорю с кодом проблем нет , все заморочки только в автоносном режиме.

Там просто мусора много, но если без этого нельзя..

 
#property indicator_separate_window
#property indicator_minimum 0
#property indicator_maximum 100
#property indicator_buffers 5
#property indicator_color1 Red
#property indicator_color2 Lime
#property indicator_color3 DeepSkyBlue
#property indicator_color4 BlueViolet
#property indicator_color5 Yellow
#property indicator_level1 50
#property indicator_level2 80
#property indicator_level3 20
//---- input parameters
 
extern int K_Red=13;
extern int D_Red=8;
extern int Slow_Red=3;
 
extern int K_Green=13;
extern int D_Green=8;
extern int Slow_Green=3;
 
extern int K_Blue=113;
extern int D_Blue=13;
extern int Slow_Blue=3;
 
extern int K_Violet=55;
extern int D_Violet=13;
extern int Slow_Violet=8;
 
extern int ZoomYellow=10;
extern int MaxBarsInFile = 0; // Count Bars for loading into file.
extern int DepthNet = 1; // глубина сети
 
//---- buffers
double M1Buffer[];
double m5Buffer[];
double m15Buffer[];
double m60Buffer[];
double sumBuffer[];
double sum15Buffer[];
//----
int draw_begin1=0;
int Count_Bars=0;
int draw_begin3=0;
int draw_begin4=0;
double i_m5; double i_m15; double i_m60; double zaym;
string name1="";
string name2="";
string name3="";
string name4="";
   int GoodFile=0;
 
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
  Print("Прошли инит");
//---- 2 additional buffers are used for counting.
   IndicatorBuffers(6);
//---- indicator lines
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0, M1Buffer);
   SetIndexStyle(1,DRAW_LINE);
   SetIndexBuffer(1, m5Buffer);
   SetIndexStyle(2,DRAW_LINE);
   SetIndexBuffer(2, m15Buffer);
   SetIndexStyle(3,DRAW_LINE);
   SetIndexBuffer(3, m60Buffer);
   SetIndexStyle(4,DRAW_LINE);
   SetIndexBuffer(4, sumBuffer);
   SetIndexBuffer(5, sum15Buffer);
//   ArraySetAsSeries(M1Buffer,true);
//   ArraySetAsSeries(m5Buffer,true);
//   ArraySetAsSeries(m15Buffer,true);
//   ArraySetAsSeries(m60Buffer,true);
//---- name for DataWindow and indicator subwindow label
   name1="s"+K_Red+"."+Slow_Red;
   name2="m"+D_Green+"."+Slow_Green;
   name3="s"+K_Blue+"."+Slow_Blue;
   name4="s"+K_Violet+"."+Slow_Violet;
   string short_name="St_"+name1+"_"+name2+"_"+name3+"_"+name4;
   IndicatorShortName(short_name);
   SetIndexLabel(0,name1);
   SetIndexLabel(1,name2);
   SetIndexLabel(2,name3);
   SetIndexLabel(3,name4);
   SetIndexLabel(4,"Sum_dif");
//----
   draw_begin1=K_Violet;
//   draw_begin1=100;
   SetIndexDrawBegin(0,draw_begin1);
   SetIndexDrawBegin(1,draw_begin1);
   SetIndexDrawBegin(2,draw_begin1);
   SetIndexDrawBegin(3,draw_begin1);
   SetIndexDrawBegin(4,draw_begin1);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Stochastic oscillator                                            |
//+------------------------------------------------------------------+
int start()
  {
   int    i,k;
   int    counted_bars=IndicatorCounted();
   double price;
  Print("Прошли старт");
//----
//   if (Period()<>"M1") return(0);
   if (Bars<=draw_begin1) return(0);
   if (Bars>=counted_bars) Count_Bars=counted_bars-draw_begin1; else Count_Bars=Bars-draw_begin1;
//---- initial zero
   if(counted_bars<1)
     {
      for(i=1;i<=Count_Bars;i++) 
         { M1Buffer[Bars-i] = 0; m5Buffer[Bars-i]=0;
            m15Buffer[Bars-i]=0; m60Buffer[Bars-i]=0;
         }
    }
   i=Count_Bars;i_m5=0;i_m15=0;i_m60=0;zaym=0;
   while(i>=0)
     {
      M1Buffer[i]=iStochastic( NULL,0,K_Red,D_Red,Slow_Red, MODE_SMMA,0,MODE_MAIN,i) ;
      m5Buffer[i]=iStochastic(NULL,0,K_Green,D_Green,Slow_Green,MODE_SMMA,0,MODE_SIGNAL,i) ;
      m15Buffer[i]=iStochastic(NULL,0,K_Blue,D_Blue,Slow_Blue,MODE_SMMA,0,MODE_MAIN,i) ;
      m60Buffer[i]=iStochastic(NULL,0,K_Violet,D_Violet,Slow_Violet,MODE_SMMA,0,MODE_SIGNAL,i) ;
      sum15Buffer[i]=(((sum15Buffer[i]-sum15Buffer[i+1])*10)+50
                                          +m15Buffer[i+1]+m15Buffer[i+2])/3;
      sumBuffer[i]= ((((m60Buffer[i]- m60Buffer[i+1]))*ZoomYellow)+50
                                           +sumBuffer[i+2]+sumBuffer[i+1])/3;
      i--;
      }
Print("Конец старта"); 
return(0); 
} 
//+------------------------------------------------------------------+
Причина обращения: