Поскольку код для модели, прогнозирующей


Глава 1 Глава 2 Глава 3
Поскольку код для модели, прогнозирующей минимумы, почти идентичен коду модели на основе обращенного во времени Медленного %К, выше приведены только два измененных блока. В первом блоке обращенный Медленный %К не используется, а вместо этого рассчитывается цель — серия нулей или единиц, указывающая на наличие (1) или отсутствие (0) минимумов. При записи фактов вместо значения Медленного %К записываются значения цели. Во втором блоке вводятся правила для сравнения выхода нейронной сети с соответствующим порогом и генерации собственно сигналов входа в рынок. В обоих блоках включен код, препятствующий записи фактов и использованию прогнозирования в случае, когда завтрашняя цена открытия не может образовать минимум согласно правилам. В коде ниже приведены аналогичные правила прогнозирования максимумов. if(dt[cb+10] > OOS_DATE) break; / / игнорируем данные вне пределов // выборки if(opn[cb+l] <= Highest(opn, 3, cb)) continue; // пропускаем эти факты fprintf{fil, "%6d", ++factcount); // номер факта PrepareNeurallnputs(var, cls, cb) ; for (k = 1; k <= 18; k++) fprintf(fil, "%7.3f", var[k]); // стандартные входные значения if{opn[cb+l] > Highest(opn, 9, cb+10)) netout = 1.0; else netout =0.0; // считаем цель fprintf(fil, "%6.1f\n", netout); // цель if({cb % 500) == 1) printf("CB = %d\n", cb); // информация о прогрессе } // генерируем входные сигналы, цены лимитных приказов и стоп- приказов signal=0; if(opn[cb+l] > Highest(opn, 3, cb)) { // запускаем только эти PrepareNeurallnputs{var, cls, cb) ; // обрабатываем данные ntlset_inputv(nnet, &var[l]); // передаем в сеть входные значения ntlfire (nnet); // запускаем сеть netout = ntlget_output(nnet, 0); // получаем выходные значения netout *= 100.О; // переводим в проценты if(netout > thresh) signal = - 1; // сигнал на продажу } limprice = 0.5 * (hi[cb] + lo[cb]); stpprice = cls[cb] + 0.5 * signal * exitatr[cb];
Содержание раздела