пятница, 20 февраля 2009 г.

Оценка линейной регрессии нормированных данных [090220_07]






Вот теперь можно видеть как она прогнозирует.
Наиболее ценное для нас - это изменение. Теперь мы видим как она может прогнозировать это изменение.

Есть хорошие результаты по прогнозу в следующем дне open, high, low и mean.

На графиках даже приведена корреляция прогноза с экспериментальными данными.
Не все зависимости хорошо отработали, но задел есть.

Теперь нужно подумать как использовать в живой модели прогнозы.
Прогноза закрытия до сих пор пока нет. Но есть прогнозы для размера будущего коридора high, low, mean и даже open.

Линейное регрессионное восстановление open, high, low и mean [090220_06]





Вот результат регрессионного восстановления. По результатам предыдущих экспериментов. Здесь идет сравнение прогноза (по абсцисс) с опытным (по ординат) рядом.

Сам по себе этот результат ни чего не показывает. Важно не абсолютное значение. Необходимо пронормировать результаты хотя-бы к предыдущему среднему.

Так и сделаем в следующем эксперименте.

Строим линейную регрессию [090220_05]






Накладываем линейную регрессию. На графиках она красным цветом.

В следующих экспериментах попробуем восстановить из линейной регрессии сами значения open, high и low.

Нормирование зависимостей сигмоидной функцией [090220_04]






Результаты предыдущего эксперимента подвергаем сигмоидному преобразованию. Так более выразительно.

Анализ зависимостей разностей [090220_03]






inp[(open(t-1)-close(t-1))/mean(t-1)] to out[(open(t)-open(t-1))/mean(t-1)] corr = -0.8732476
inp[(open(t-1)-close(t-1))/mean(t-1)] to out[(high(t)-open(t-1))/mean(t-1)] corr = -0.7041134
inp[(open(t-1)-close(t-1))/mean(t-1)] to out[(low(t)-open(t-1))/mean(t-1)] corr = -0.7437841
inp[(open(t-1)-close(t-1))/mean(t-1)] to out[(mean(t)-open(t-1))/mean(t-1)] corr = -0.7765077
inp[(open(t-1)-mean(t-1))/mean(t-1)] to out[(open(t)-open(t-1))/mean(t-1)] corr = -0.7908842
inp[(high(t-1)-close(t-1))/mean(t-1)] to out[(open(t)-high(t-1))/mean(t-1)] corr = -0.8040660
inp[(high(t-1)-close(t-1))/mean(t-1)] to out[(low(t)-high(t-1))/mean(t-1)] corr = -0.7602186
inp[(low(t-1)-close(t-1))/mean(t-1)] to out[(open(t)-low(t-1))/mean(t-1)] corr = -0.8030900
inp[(low(t-1)-close(t-1))/mean(t-1)] to out[(high(t)-low(t-1))/mean(t-1)] corr = -0.7310741
inp[(close(t-1)-open(t-1))/mean(t-1)] to out[(open(t)-open(t-1))/mean(t-1)] corr = 0.8732476
inp[(close(t-1)-open(t-1))/mean(t-1)] to out[(high(t)-open(t-1))/mean(t-1)] corr = 0.7041134
inp[(close(t-1)-open(t-1))/mean(t-1)] to out[(low(t)-open(t-1))/mean(t-1)] corr = 0.7437841
inp[(close(t-1)-open(t-1))/mean(t-1)] to out[(mean(t)-open(t-1))/mean(t-1)] corr = 0.7765077
inp[(close(t-1)-high(t-1))/mean(t-1)] to out[(open(t)-high(t-1))/mean(t-1)] corr = 0.8040660
inp[(close(t-1)-high(t-1))/mean(t-1)] to out[(low(t)-high(t-1))/mean(t-1)] corr = 0.7602186
inp[(close(t-1)-low(t-1))/mean(t-1)] to out[(open(t)-low(t-1))/mean(t-1)] corr = 0.8030900
inp[(close(t-1)-low(t-1))/mean(t-1)] to out[(high(t)-low(t-1))/mean(t-1)] corr = 0.7310741
inp[(close(t-1)-mean(t-1))/mean(t-1)] to out[(open(t)-open(t-1))/mean(t-1)] corr = 0.7785348
inp[(close(t-1)-mean(t-1))/mean(t-1)] to out[(open(t)-mean(t-1))/mean(t-1)] corr = 0.7151156
inp[(close(t-1)-mean(t-1))/mean(t-1)] to out[(mean(t)-open(t-1))/mean(t-1)] corr = 0.7087140
inp[(mean(t-1)-open(t-1))/mean(t-1)] to out[(open(t)-open(t-1))/mean(t-1)] corr = 0.7908842
inp[(mean(t-1)-close(t-1))/mean(t-1)] to out[(open(t)-open(t-1))/mean(t-1)] corr = -0.7785348
inp[(mean(t-1)-close(t-1))/mean(t-1)] to out[(open(t)-mean(t-1))/mean(t-1)] corr = -0.7151156
inp[(mean(t-1)-close(t-1))/mean(t-1)] to out[(mean(t)-open(t-1))/mean(t-1)] corr = -0.7087140

Анализируем возможность построения моделей прогнозирования при переходе в следующий день от соотношений в предыдущем.

Результаты представлены выше. Для каждой зависимости вычислены коэффициенты корреляции. Выведены результаты только для тех зависимостей где коэффициент корреляции больше 0.7.

Все индикаторы нормированы к среднему в предыдущем дне.

Больше всего есть перспектива предсказывать открытие следующего дня. Затем чуть слабее можно предсказывать high и low. Предсказание close вообще представляет некоторую проблему.

Теперь можно пытаться строить линейные модели по прогнозированию open, high и low.

четверг, 19 февраля 2009 г.

Исправленная модель прогнозирования [090219_09]


Итак. В предыдущем эксперименте прогнозная модель имела одно грубое допущение. Она всегда могла реализоваться по среднему предыдущего дня.

В настоящей модели это допущение устранено. Если среднее предыдущего при покупке ниже low или при продаже выше чем high текущего дня, то сделки в текущем дне не происходит. Значит не попали в окно.

Как видно из графиков. Результат очень плохой. Такую модель нельзя использовать.

Основная проблема - сложно реализоваться в следующем дне.

Строим модель на прогнозах [090219_06]


В предыдущем эксперименте мы увидели, что есть зависимость изменения среднего от предыдущих закрытия, открытия и разницы между ними. Теперь строим модель которая дает рекомендацию в начале дня и работает по средним значениям.

В верхнем ряду графиков представлена зависимость, а в нижнем ряду смоделирована игра по соответствующим рекомендациям.

Как видно из результатов лучше всех проявила себя модель прогнозирующая направление изменения среднего из разницы между закрытием и средним предыдущего дня.

Не стоит обольщаться столь высоким результатом. В этой модели есть очень сильное упрощение. Все сделки по покупке-продаже акций производятся по среднему из предыдущего дня. И в модели предполагается, что сделка происходит в любом случае.

Это упрощение будет устранено в следующих опытах.

Но уже сейчас видно, что существует возможность предсказать направление следующего дня.

Исследование зависимости от предыдущего дня [090219_05]


Строим зависимость от предыдущего дня. Пытаемся предсказывать относительное изменение среднего. На графиках он отложен по оси ординат. Ищем зависимость от предыдущих (open-mean), (high-mean), (low-mean), (close-mean), (close-open) и самого среднего отнесенных к среднему.

Как видно из графиков есть не плохая зависимость относительного изменения среднего в следующем дне от открытия, закрытия и разности между закрытием и открытием в предыдущем дне. Зависимость от границ слабая. Зависимость среднего от предыдущего значения тоже слабая.

Не плохие результаты. Уже можно строить первые прогнозные модели.

Еще небольшой взгляд на коридор [090219_04]


Добавляем график для курса открытия. По прежнему смотрим на перспективу прогнозирования среднего курса. На нижнем графике показаны отклонения open, high, low и close от среднего соотнесенные к среднему. Для сравнения наложен график относительного изменения среднего. Все данные с нижнего графика могут служить входами к модели. На выходе модели пытаемся увидеть относительное изменение среднего.

Детальное рассмотрение коридора [090219_03]


Среднее макс-мин проходит более плавно. Курс закрытия больше колеблется. Если и искать зависимость, то для среднего курса.
Относительные изменения курсов представлены на нижнем графике. Хорошо видно различие изменение курса закрытия по сравнению с изменением среднего курса.
Если строить модель, то работать ей будет легче по средним курсам. Средними курсами легче попадать в вилку следующего дня.
Кроме того на нижнем графике показаны значения размера коридора по отношению к среднему курсу.

Рассмотрение максимумов и минимумов [090219_02]


Здесь видны максимумы, минимумы и курс закрытия за последние 30 дней. Курс закрытия болтается между максимумом и минимумом. Нужно обратить внимание на полосу макс-мин.

Графики за последние 100 дней [090219_01]


Здесь только курсы закрытия.

среда, 18 февраля 2009 г.

Первый эксперимент. Рисуем графики.


Нарисовали графики 8-ми котировок с ММВБ.

Импорт котировок ‎(Прогнозирование‎)

На сайте разместили страницу описывающую процесс импорта котировок с Финам.

Импорт котировок ‎(Прогнозирование‎): "Результат отработки программы по импорту котировок с сервера Финам. В приложениях программа по импорту котировок."





Открываем сайт.

Открываем новый сайт по адресу http://sites.google.com/site/prognozirovanie/. На сайте будем размещать наработки и прочий инструментарий.