Подсчитывает сезонное среднее для каждой
static float sum, sdate; if(mode == 1) { // режим складного ножа for(i = 1; i <= n; i++) { // для каждой текущей даты sum = 0.0; cnt = 0; for{j = 1; j < 100; j++) { // двигаемся назад к sdate = f(int)dt[i] - 10000 * j); // исходной дате if (sdate < dt[3]) break; // переход к началу k = max(0, (int){i- 260.893*j)); // приблизительный индекс hunt(dt, n, sdate, &k) ; // находим точный индекс if(sdate > dt[k]) k++; if(sdate = dt[k]) continue; cnt++; sum += v[k]; // накапливаем среднее ) for(j = 1; j < 100; j++) { // двигаемся вперед sdate = ((int)dt[i] + 10000 * j); //к исходной дате if(sdate > m) break; // избегаем данных вне выборки k = min(n, (int)(i+260.893*j); // приблизительный индекс hunt(dt, n, sdate, &k); // находим точный индекс if(sdate > dt[k]) k++; if(sdate = dt[k]) continue; cnt++; sum += v[k]; // накапливаем среднюю } a[i] = sum / (cnt + l.OE- 20); // заканчиваем среднюю } // следующая текущая дата } else if(mode == 2) { // режим фиксированного периода // анализа for {i = 1; i <= n; i++) { // для каждой текущей даты sum = 0.0; cnt = 0; for(j = 1; j < 100; j++) ( // идем вперед if(cnt >= m) break; // достаточность лет для теста sdate = ((int)dt[i] - 10000 * j); // исходная дата if (sdate < dt[3]) break; // идем к началу k = max(0, (int)(i- 260.893*j)); // приблизительный индекс hunt(dt, n, sdate, &k) ; // находим точный индекс if(sdate > dt[k]) k++; if(sdate = dt[k]) continue; cnt++; sum += v[k]; // накапливаем среднюю } for(j = 1; j < 100; j++) ( // идем вперед if (cnt >= m) break; // достаточность лет для теста sdate = ((int)dt[i] + 10000 * j); // исходная дата k = min(n, (int)(i+26Q.893*j)); // приблизительный индекс hunt(dt, n, sdate, &k); // находим точный индекс if(sdate > dt[k]) k++; if(sdate = dt[k]) continue; cnt++; sum += v[k]; // накапливаем среднюю } a[i] = sum / cnt; // заканчиваем среднюю } // следующая текущая дата } static void Model (float *parms, float *dt, float *opn, float *hi, float *lo, float *cls, float *vol, float *oi, float *dlrv, int nb, TRDSIM &ts, float *eqcls) {