| / | Форум |
|
logoped
15.05.2006 16:04
Господа разработчики! Как заставитьработать пользовательский индикатор в автономном режиме. Ваши встроенные рисуют без проблем, а пользовательский загрузился и молчит. Не рисует и не считает вроде как не заводится. В обычном режиме с тиками он давно у меня работает без проблем. |
|
Бесплатная Groupware для групп разработчиков Установите систему групповой работы TeamWox и объедините усилия всех разработчиков. Это поможет вашей команде работать быстрее и организованнее. Благодаря TeamWox станет намного проще ставить задачи и контролировать их выполнение. |
33759 |
Rosh
15.05.2006 16:39
Тут я упоминал подобные проблемы - http://www.alpari-idc.ru/ru/experts/articles/13.html
|
|
logoped
15.05.2006 17:09
Roch спасибо. Я посмотрел, но это по моему не то. Он не хочет работать именно в автономном режиме, т.е. когда тиков в принципе нет. Да и соревноваться ему не с кем, он там один открывается. Тут какая-то системная коза. |
33759 |
Rosh
15.05.2006 17:17
Так не бывает, либо выкладываешь код и мы видим что ты в теме,
либо тихо сам с собою.
ЗЫ Индикатор, в отличие от совтеника в текущей реализации терминала не дожидается прихода тика для инициации, поэтому есть сомнения в компетенции. |
|
logoped
15.05.2006 17:27
Rosh писал (а):
Так не бывает, либо выкладываешь код и мы видим что ты в теме, либо тихо сам с собою. ЗЫ Индикатор, в отличие от совтеника в текущей реализации терминала не дожидается прихода тика для инициации, поэтому есть сомнения в компетенции. Я воспользовался твоей методой и расставил принты . Все по тексту программы проходит, а рисовать не хочет. Она его прорисовала на экране только после перекомпиляции. Даже при изменении параметров не перерисовывает. Точно системная коза. Может кто из разработчиков откликнется.
|
|
logoped
15.05.2006 17:29
Даже интересней. При изменении параметров она его стирает, а заново не рисует. |
|
SK.
15.05.2006 19:36
Rosh писал (а):
ЗЫ Индикатор, в отличие от совтеника в текущей реализации терминала не дожидается прихода тика для инициации, поэтому есть сомнения в компетенции. А как он..? То есть, первый раз старт() запускается без тика, а потом потиково? |
|
ustim
16.05.2006 09:22
когда я прикрепляю какой-нибудь индюк к автономке, я всегда передергиваю
внешние переменные через свойства индюка и он отрисовывается без проблем (правда
иногда МТ не хотел рисовать (ну плющило его), тогда - перезагрузка
терминала, и если в индюке боков нет, он обязательно отрисовывался.
)
|
|
logoped
16.05.2006 14:01
При перезагрузке МТ4 не отрисоваываетсяна экране, на изменение внешних перменных он не реагирует Поставил в индикаторе промежуточные принты. Все проходит, все считает, нормально завершается, но не отрисовывается. Этот же индикатор в реальном режиме работает без проблем. Перекомпиляция загруженного индикатора заставляет его отрисоваться. При изменении внешних переменных рисунок стирается и не обновляется Разработчики АУ... 100% ваш глюк. |
3646 |
Renat
16.05.2006 20:20
Может все таки выложить полный код индикатора - сразу все станет
ясно.
Без полного исходного кода сложно отвечать. |
|
logoped
17.05.2006 14:57
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); } //+------------------------------------------------------------------+ |
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий