Будем использовать относительное изменение по основанию среднего:
где - параметр (open, high, low, close или mean).
В качестве входов к модели используем относительное изменение по всем параметрам всех 20 инструментов в предыдущем дне. В качестве выхода используем относительное изменение среднего в следующем дне.
Вычисления производим по следующей схеме.
переводим исходные данные в относительное изменение;
производим скользящее нормирование по стандартному отклонению;
производим сигмоидное преобразование к равномерному распределению;
ищем в генетике лучшие входы по методу box-counting_2.
Рисунок 1: Исходный ряд - закрытие для Лукойла.
Инструменты:sber, sberp, sngs, rtkm, gmkn, msng, sibn, eurusd, gbpusd, usdjpy, cac40, dax, micex, micex10index, nasdaq, sp500, djia, rtsi, gold, lkoh.
После выделения в каждом инструменте параметров получаем 100 входов:
sber_o, sber_h, sber_l, sber_c, sber_m, sberp_o, sberp_h, sberp_l, sberp_c, sberp_m, sngs_o, sngs_h, sngs_l, sngs_c, sngs_m, rtkm_o, rtkm_h, rtkm_l, rtkm_c, rtkm_m, gmkn_o, gmkn_h, gmkn_l, gmkn_c, gmkn_m, msng_o, msng_h, msng_l, msng_c, msng_m, sibn_o, sibn_h, sibn_l, sibn_c, sibn_m, eurusd_o, eurusd_h, eurusd_l, eurusd_c, eurusd_m, gbpusd_o, gbpusd_h, gbpusd_l, gbpusd_c, gbpusd_m, usdjpy_o, usdjpy_h, usdjpy_l, usdjpy_c, usdjpy_m, cac40_o, cac40_h, cac40_l, cac40_c, cac40_m, dax_o, dax_h, dax_l, dax_c, dax_m, micex_o, micex_h, micex_l, micex_c, micex_m, micex10index_o, micex10index_h, micex10index_l, micex10index_c, micex10index_m, nasdaq_o, nasdaq_h, nasdaq_l, nasdaq_c, nasdaq_m, sp500_o, sp500_h, sp500_l, sp500_c, sp500_m, djia_o, djia_h, djia_l, djia_c, djia_m, rtsi_o, rtsi_h, rtsi_l, rtsi_c, rtsi_m, gold_o, gold_h, gold_l, gold_c, gold_m, lkoh_o, lkoh_h, lkoh_l, lkoh_c, lkoh_m.
Рисунок 2: Закрытие и среднее
Рисунок 3: Относительное изменение среднего
Рисунок 4: Скользящее нормирование среднего по стандартному отклонению
В отличии от обработки входов выходы нормируем стандартным отклонением с запаздыванием на один день.
Рисунок 5: Сигмоидное преобразование среднего к равномерному распределению.
Рисунок 6: Оценка методом box-counting_2 всех входов
Итак, произвели оценку всех 100 входов. Расчет произведен на периоде в 500 последних дней. Здесь дискретность для метода выбрана равной 10. Результаты на рисунке выше. Значения очень маленькие. Числовые характеристики для 10 лучших приведены ниже:
box-counting_2( sp500_c ) = 0.2744368
box-counting_2( nasdaq_c ) = 0.2613648
box-counting_2( gmkn_c ) = 0.2357223
box-counting_2( cac40_l ) = 0.2357223
box-counting_2( cac40_c ) = 0.2357223
box-counting_2( djia_c ) = 0.2357223
box-counting_2( gold_o ) = 0.2357223
box-counting_2( lkoh_l ) = 0.2231436
box-counting_2( lkoh_c ) = 0.2231436
box-counting_2( sngs_c ) = 0.2107210
Весьма интересные результаты. Оказывается среднее следующего дня лучше всего зависит от предыдущих закрытий мировых индексов, закрытия норильского никеля, нижних значений cac40 и самого Лукойла, открытия золота, закрытия Лукойла и Сергутнефтегаза.
Но все это оценки только для однопараметрической модели. Для построения нормального прогноза требуются несколько входов. Дальше постараемся найти несколько наиболее хороших входов. Делать это будем в генетике.
Вот результаты:
Рисунок 7: История качества по эпохам генетики
Рисунок 8: История нормы популяции по эпохам генетики.
Рисунок 9: История по количеству входов
В результате через 100 эпох модель сошлась к следующему набору входов:
rtkm_m,
gbpusd_h,
nasdaq_c,
lkoh_h.
Эти входы нужно использовать для предсказания среднего в следующем дне для Лукойла (lkoh_m).
Причем оценка по методу box-counting_2 для этого варианта оказалась равной 1.570298.
См.: Метод box-counting_2
Комментариев нет:
Отправить комментарий