пятница, 20 февраля 2009 г.
Оценка линейной регрессии нормированных данных [090220_07]
Вот теперь можно видеть как она прогнозирует.
Наиболее ценное для нас - это изменение. Теперь мы видим как она может прогнозировать это изменение.
Есть хорошие результаты по прогнозу в следующем дне open, high, low и mean.
На графиках даже приведена корреляция прогноза с экспериментальными данными.
Не все зависимости хорошо отработали, но задел есть.
Теперь нужно подумать как использовать в живой модели прогнозы.
Прогноза закрытия до сих пор пока нет. Но есть прогнозы для размера будущего коридора high, low, mean и даже open.
Линейное регрессионное восстановление open, high, low и mean [090220_06]
Вот результат регрессионного восстановления. По результатам предыдущих экспериментов. Здесь идет сравнение прогноза (по абсцисс) с опытным (по ординат) рядом.
Сам по себе этот результат ни чего не показывает. Важно не абсолютное значение. Необходимо пронормировать результаты хотя-бы к предыдущему среднему.
Так и сделаем в следующем эксперименте.
Строим линейную регрессию [090220_05]
Накладываем линейную регрессию. На графиках она красным цветом.
В следующих экспериментах попробуем восстановить из линейной регрессии сами значения open, high и low.
Анализ зависимостей разностей [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 дней. Курс закрытия болтается между максимумом и минимумом. Нужно обратить внимание на полосу макс-мин.
среда, 18 февраля 2009 г.
Импорт котировок (Прогнозирование)
На сайте разместили страницу описывающую процесс импорта котировок с Финам.
Импорт котировок (Прогнозирование): "Результат отработки программы по импорту котировок с сервера Финам. В приложениях программа по импорту котировок."
Открываем сайт.
Открываем новый сайт по адресу http://sites.google.com/site/prognozirovanie/. На сайте будем размещать наработки и прочий инструментарий.
Подписаться на:
Сообщения (Atom)