для каждого дня, основанное на


Глава 1 Глава 2 Глава 3
// Подсчитываем лунное (в зависимости от даты и фазы) скользящее среднее // для каждого дня, основанное на предыдущих днях и (в некоторых случаях) // на последующих днях с эквивалентной лунной фазой. // Работаем на всех имеющихся данных. //а - вывод: значения [1..n] лунного среднего //v - ввод: исходный ценовой ряд данных [1..n] // dt - ввод: соответствующие [1..n] данные // mode - ввод: метод анализа: // 1 = складной нож IS, все прошлые циклы 008 // 2 - фиксированный период в лунных циклах //m - ввод: дата (для режима - 1) или период анализа (для режима = 2) // n - ввод: количество дней во всех рядах static int i, j, cnt; static unsigned long k; static float sum, sdate, tiny=l.OE- 20; if(mode == 1) { // режим складного ножа for(i = 1; i <= n; i++} { // для каждого текущего дня

sum = 0.0; cnt = 0; for(j = 2; j < 1000; j++) { // двигаемся назад sdate - LunarEquivDate {dt[i] , - j ) ; //к исходной дате if(sdate < dt[3]) break; // переход к началу hunt(dt, n, sdate, &k) ; // находим индекс if (sdate > dt[k]) k++; cnt++; sum += v[k] ; // накапливаем среднюю } for(j = 2; j < 1000; j ++) { // двигаемся вперед sdate = LunarEquivDate {dt[i], j); //к исходной дате if(sdate > m) break; // избегаем данных oos hunt(dt, n, sdate, &k); // находим индекс if(sdate > dt[k]) k++; cnt++; sum +- v[k]; // накапливаем среднюю } a[i] = sum / (cnt + tiny); // заканчиваем среднюю ) // следующий день } else if(mode == 2) { // режим фиксированного периода анализа for(i = 1; i <= n; i ++) { // для каждого текущего дня sum =0.0; cnt = 0; for(j =2;j<1000;j++) { // двигаемся назад if(cnt >= m) break; // выполняем достаточные условия sdate = LunarEquivDate(dt[i] , - j); // исходная дата if (sdate < dt[3]) break; // идем к началу hunt(dt, n, sdate, &k); // находим индекс if{sdate > dt[k]} k++; cnt++; sum +- v[k]; // накапливаем среднюю } for(j = 2; - j < 1000; j++) { // двигаемся вперед if (cnt >= m) break; // выполняем достаточные условия sdate = LunarEquivDate(dt[i] , j ) // исходная дата hunt(dt, n, sdate, &k) ; // находим индекс if (sdate > dt[k]} k++; cnt++; sum += v[k]; // накапливаем среднюю } a[i] = sum / (cnt + tiny) // заканчиваем среднюю } // следующий день } } 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) {
Содержание раздела