for(n=i;n<=i+Aver_Bars-1;n++)
i--; здесь должно быть n--;
НО если заменить деление в цикле на любой другой арифметический знак, все работает прекрасно.
Возможно деление на 0 происходит, а делить на 0 нельзя, будет критическая ошибка
Цикл не правильно оформлен
for(n=i; n>=0; n--)
или
i = Bars - counted_bars; for (n=0; n<i; n++)
int start()
{
int i,
n,
Counted_bars;
double Sum_CO;
Counted_bars=IndicatorCounted();
i=Bars-Counted_bars-1;
while(i>=0)
{
Sum_CO=0;
for(n=i;n<=i+Aver_Bars-1;n++)
{
Sum_CO=Sum_CO + Close[n]/Open[n];
}
Buf_0[i]=Sum_CO/Aver_Bars;
Buf_1[i]=Close[i]/Open[i];
i--;
}
return;
}
вот часть кода программы. Проблема в том, что окно индикатора пустое. НО если заменить деление в цикле на любой другой арифметический знак, все работает прекрасно. Кто подскажет в чем проблема?
Весь код давайте. Иначе, как воспроизвести Вашу проблему?
Да, еще укажите пару, тайм фрейм, и, интервал времени, где такие чудеса наблюдаются.
Весь код давайте. Иначе, как воспроизвести Вашу проблему?
Да, еще укажите пару, тайм фрейм, и, интервал времени, где такие чудеса наблюдаются.
На любой паре, таймфрейме, временном периоде проблема одна и та же. Окно индикатора пустое. Но если в цикле знак деления заменить на любой другой арифметичсекий знак, все работает прекрасно, будь то поизведение, сумма, или разность. Вот собственно весь код:
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Blue
#property indicator_color2 Red
extern int Aver_Bars=5;
double Buf_0[],Buf_1[];
//--------------------------------------------------------------------
int init()
{
SetIndexBuffer(0,Buf_0);
SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,2);
SetIndexBuffer(1,Buf_1);
SetIndexStyle (1,DRAW_LINE,STYLE_DOT,1);
return;
}
//--------------------------------------------------------------------
int start()
{
int i,
n,
Counted_bars;
double Sum_CO;
//--------------------------------------------------------------------
Counted_bars=IndicatorCounted();
i=Bars-Counted_bars-1;
while(i>=0)
{
Sum_CO=0;
for(n=i;n<=i+Aver_Bars-1;n++)
{
Sum_CO=Sum_CO + Close[n]/Open[n];
}
Buf_0[i]=Sum_CO/Aver_Bars;
Buf_1[i]=Close[i]/Open[i];
i--;
}
//--------------------------------------------------------------------
return;
}
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
int start()
{
int i,
n,
Counted_bars;
double Sum_CO;
Counted_bars=IndicatorCounted();
i=Bars-Counted_bars-1;
while(i>=0)
{
Sum_CO=0;
for(n=i;n<=i+Aver_Bars-1;n++)
{
Sum_CO=Sum_CO + Close[n]/Open[n];
}
Buf_0[i]=Sum_CO/Aver_Bars;
Buf_1[i]=Close[i]/Open[i];
i--;
}
return;
}
вот часть кода программы. Проблема в том, что окно индикатора пустое. НО если заменить деление в цикле на любой другой арифметический знак, все работает прекрасно. Кто подскажет в чем проблема?