Усреднит по последним 6 значениям.
Посмотрите алгоритм расчёта МА в F1. То есть принцип скользящего усреднения.
ок, а если на графике всего 4 бара, а усреднить надо по 6, то недостающие 2 бара будут нулевыми?
не понял, ты пытаешься усреднить будующее? тогда да, могут быть нулевыми, и с той же степенью вероятности равными 111.11(for EURUSD)
а чего ты хочешь этим добиться?
написать чтоли статью о фильтрах сюда)) это надо?
не понял, ты пытаешься усреднить будующее? тогда да, могут быть нулевыми, и с той же степенью вероятности равными 111.11(for EURUSD)
а чего ты хочешь этим добиться?
написать чтоли статью о фильтрах сюда)) это надо?
вы не поняли. переменная bars = 4, а усредняет индикатор по 6 барам, то есть например low[6] и low[5] которых никогда не было будут равны 0? Или индикатор их вообще не будет принимать во внимание??
вы не поняли. переменная bars = 4, а усредняет индикатор по 6 барам, то есть например low[6] и low[5] которых никогда не было будут равны 0? Или индикатор их вообще не будет принимать во внимание??
Нормальный индикатор сначала проверяет количество известных для расчета баров и если оно меньше необходимого периода, то вообще ничего не делает. Это легко проверить, накинув индюк или осцилл на график и перейти в самое начало истории клавишей Home. Там видно, что нормальные индюки и осциллы начинают давать показания не с самого первого бара, а с того, на котором им уже хватает информации для адекватных вычислений.
Нормальный индикатор сначала проверяет количество известных для расчета баров и если оно меньше необходимого периода, то вообще ничего не делает. Это легко проверить, накинув индюк или осцилл на график и перейти в самое начало истории клавишей Home. Там видно, что нормальные индюки и осциллы начинают давать показания не с самого первого бара, а с того, на котором им уже хватает информации для адекватных вычислений.
Ну вот пример индикатора из учебника, он усредняет low и high по 5 баров и чертит.
Тут он ведь не проверяет хватает ли баров? Предположим bars=300, при первом включении i будет равно 299, и n тоже. Потом в цикле for в первой итерации индекс бара будет 299, во второй итерации 300, а в третьей 301(Но этого бара нет, так как их всего 300). Только в 5 итерации цикла while цикл for в первый раз посчитает все существующие бары. Или я может что-то не так понимаю????
#property indicator_chart_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() // Специальная функция init()
{
//--------------------------------------------------------------------
SetIndexBuffer(0,Buf_0); // Назначение массива буферу
SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,2);// Стиль линии
//--------------------------------------------------------------------
SetIndexBuffer(1,Buf_1); // Назначение массива буферу
SetIndexStyle (1,DRAW_LINE,STYLE_DOT,1);// Стиль линии
//--------------------------------------------------------------------
return; // Выход из спец. ф-ии init()
}
//--------------------------------------------------------------------
int start() // Специальная функция start()
{
int i, // Индекс бара
n, // Формальный параметр
Counted_bars; // Количество просчитанных баров
double
Sum_H, // Сумма значений High за переиод
Sum_L; // Сумма значений Low за переиод
//--------------------------------------------------------------------
Counted_bars=IndicatorCounted(); // Количество просчитанных баров
i=Bars-Counted_bars-1; // Индекс первого непосчитанного
while(i>=0) // Цикл по непосчитанным барам
{
Sum_H=0; // Обнуление в начале цикла
Sum_L=0; // Обнуление в начале цикла
for(n=i;n<=i+Aver_Bars-1;n++) // Цикл суммирования значений
{
Sum_H=Sum_H + High[n]; // Накопление суммы макс.значений
Sum_L=Sum_L + Low[n]; // Накопление суммы мин. значений
}
Buf_0[i]=Sum_H/Aver_Bars; // Значение 0 буфера на i-ом баре
Buf_1[i]=Sum_L/Aver_Bars; // Значение 1 буфера на i-ом баре
i--; // Расчёт индекса следующего бара
}
//--------------------------------------------------------------------
return; // Выход из спец. ф-ии start()
}
//--------------------------------------------------------------------
чет я не понимаю... на кой заморачиваться ?! если он " усредняет low и high по 5 баров и чертит." накой ставить эту проверку то ?
Он и так берёт 5 баров и чертит по ним....
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Пробоема с усреднением. Я не могу понять как комп усредняет, объясните если можно по шагам. Например на графике всего 6 баров, и усреднение по 6 баров. Вырисобывается 7 бар, как комп будет действовать???