Помощь в написании студенческих работ
Антистрессовый сервис

Программа прогнозирования спроса

Дипломная Купить готовую Узнать стоимостьмоей работы

Другим аспектом является возможность предсказания его цены по историческим данным. Косвенно она обуславливается таким свойством рынка, как цикличность. Помимо этого, многие инструменты и товары взаимосвязаны между собой, что также может влиять на их ценообразование. В этом смысле процесс изменения показателей торгуемого объекта можно рассматривать как динамический временной ряд, в котором могут… Читать ещё >

Программа прогнозирования спроса (реферат, курсовая, диплом, контрольная)

Содержание

  • 1. ОБЗОР ПРЕДМЕТНОЙ ОБЛАСТИ
    • 1. 1. Понятие и функции фондового рынка
    • 1. 2. Алгоритмы и принципы технического анализа
  • 2. АЛГОРИТМЫ ПРОГНОЗИРОВАНИЯ ВРЕМЕННЫХ РЯДОВ
    • 2. 1. Методы прогнозирования временных рядов
    • 2. 2. Авторегрессионная модель и ее применение
  • 3. ПРОГРАММНАЯ РЕАЛИЗАЦИЯ ПРОГНОЗИРОВАНИЯ СПРОСА
    • 3. 1. Выбор языка и технологии реализации
  • приложения
    • 3. 2. Основные классы и компоненты
  • приложения
    • 3. 3. Инструкция пользователя
  • приложения
  • ЗАКЛЮЧЕНИЕ
  • СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

Класс является типом, который задается пользователем. Классы обеспечивают широкий диапазон действий с данными. К ним относится сокрытие данных, инициализация, неявное преобразование и динамическое задание пользовательских типов. При использовании ресурсов C++ пользователь может пользователь может управлять памятью и перезагружать операции. Следующим этапом развития разработки объектно-ориентированных программ являются каркасы.

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

Другим недостатком является то, что элементы каркаса не видны на этапе их дизайна. Внешний вид элемента пользовательского интерфейса, и связи между ними программист видит только на этапе работы программы. Развитием концепции каркасов стало появление компонентной модели, применяемой в таких системах, как Delphi, C++ Builder (рисунок 3.3). Рисунок 3.

3. Компонентная модель программирования.

В отличие от каркасов, компоненты не диктуют строгую структуру программы. Программист может гибко конфигурировать их по своему усмотрению для достижения поставленной цели. Высокоуровневая внутренняя архитектура на основе событийной модели позволяет гибко адаптировать компоненты к требованиям той или иной задачи. Помимо использования компонентной модели, многие современные программы строятся по технологии RAD (RapidApplicationDevelopment). Вид модели RAD приведен на рисунке 3.

4.Рисунок 3.

4. Вид модели RAD Модель RAD характеризуется наличием среды визуального проектирования и прототипирования. Он дает возможность оценить вид графического интерфейса в виде, эквивалентном тому, что имеет место быть при работе программы. Также на уровне настроек отдельного визуального компонента (в инспекторе объектов) задаются его основные свойства. Аналогично реализуется и связь компонент между собой. Применение технологии RAD существенно автоматизирует процесс создания компонентов оформления и интерфейса. Это позволяет программисту сконцентрироваться на основных функциях программы. 3.2Основные классы и компоненты приложения.

Основные модули программы приведены в таблице 2. Таблица 2. Основные модули программы.

Имя модуля.

Описание классаSolver. hМодуль интерфейса решателей систем линейных уравненийARMode. hlМодуль алгоритма авторегрессионного моделирования процессаMatrix. hМодуль, содержащий класс матрицы и основные функции работы с матрицамиForm. hМодуль формы настроек алгоритма моделированияMain. hМодуль главной формы приложения.

Модуль ARMode. hсодержит функциональность авторегрессионной модели. Модуль Solver. hсодержит описание абстрактного класса решателя СЛАУ. Модуль Matrix. hсодержит вспомогательную логику, реализующую операции матричной алгебры. Описание классов программы, реализующих функциональность приложения, приведено в таблице 3. Таблица 3. Основные классы программы.

Имя класса.

Описание модуляSolverИнтерфейс решателей систем линейных уравненийARModeКласс алгоритма авторегрессионного моделирования процессаMatrixКласс матрицыFormКласс формы настроек алгоритма моделированияMainКласс главной формы приложенияMNKSolverКласс решателя СЛАУ методом наименьших квадратов. TihonovSolverРешатель СЛАУ методом Тихонова.

Основные поля и методы класса Matrixприведены в таблице 4. Таблица 4. Основные классы программы.

Имя класса.

Описание классаvector<vector<double>>vec;Модель матрицыMatrix ()Конструктор по умолчаниюMatrix (intm, int n) Конструктор по размерностиoperator[](inti)Индексатор матрицыMatrix &operator=(Matrix a) Оператор присвоения.

Основные поля и методы класса Solverприведены в таблице 4. Таблица 4. Основные поля и методы класса SolverИмя модуля.

Описание классаMatrix A;Матрица СЛАУvector<double> b;Правая частьvector<double> solution;Решение СЛАУvoid Solve ()Метод решения.

Приведенные таблицы с достаточной степенью полноты описывают организацию приложения на уровне архитектуры. 3.3Инструкция пользователя приложения.

Программа имеет следующий общий вид (рисунок 3.5).Рисунок 3.

5. Общий вид программы.

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

загрузка данных в виде временного ряда с последующим отображением данных;

выбор области обучения авторегрессионной модели;

выбор области прогнозирования данных;

выбор алгоритма идентификации авторегрессионной модели;

выполнение прогнозирования. Для загрузки данных необходимо выбрать пункт Файл > Загрузить. Появится окно загрузки файла.

Рисунок 3.

6. Вид диалогового окна загрузки данных.

Данные загрузки имеют текстовый формат. Структура файла данных имеет следующий вид (рисунок 3.7).Рисунок 3.

7. Вид диалогового окна загрузки данных.

После выбора данных они загружаются в память программы и отображаются в виде графика. На рисунке 3.8 приведен графика загруженного файла. Рисунок 3.

8. Вид диалогового окна загрузки данных.

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

метод наименьших квадратов;

метод регуляризации Тихонова. Для выполнения идентификации модели необходимо выделить интересующую область и нажать правую кнопку мыши. Появится контекстное меню следующего вида (рисунок 3.9).Рисунок 3.

9. Вид контекстного меню.

При выборе пункта «Задать как обучающую выборку» происходит задание выборки данных для идентификации модели. При выборе пункта «Задать как область прогноза» происходит задание области прогноза. Для задания модели идентификации необходимо выбрать пункт Настройки > Параметры прогнозирования. На рисунке 3.10 приведена форма настроек параметров прогнозирования. Рисунок 3.

10. Вид формы настроек параметров прогнозирования.

В поле «Размер окна истории» задается размер выборки исторических данных, по которым выполняется прогноз. Поле «Коэффициент регуляризации» активируется при выборе метода Тихонова. На рисунках 3.11, 3.12 приведены данных для идентификации авторегрессионной модели и прогнозирования данных. Рисунок 3.

11. Вид данных для идентификации модели.

Рисунок 3.

12. Вид данных для прогнозирования Для прогнозирования данных необходимо выбрать пункт Прогноз > Запуск. При этом на графике во вкладке «Данные» отобразятся сводные данные прогнозирования. Во вкладке «Ошибка прогноза» отобразится график распределения ошибки прогнозирования. На рисунках 3.13, 3.14 приведены результаты прогнозирования ряда при идентификации авторегрессионной модели методом наименьших квадратов. Длина периода исторических данных выбиралась как 5. Рисунок 3.

13. Результаты прогнозирования.

Рисунок 3.

14. Результаты прогнозирования.

На рисунках 3.15, 3.16 приведены результаты прогнозирования ряда при идентификации авторегрессионной модели методом Тихонова при значении параметра регуляризации 0.

1.Рисунок 3.

15. Результаты прогнозирования.

Рисунок 3.

16. Результаты прогнозирования.

Таким образом, из представленных данных можно сделать вывод о том, что прогноз достаточно хорошо коррелирует и исходными данными. Однако при скачкообразном изменении динамики данных предсказательная сила модели уменьшается.

ЗАКЛЮЧЕНИЕ

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

Косвенно она обуславливается таким свойством рынка, как цикличность. Помимо этого, многие инструменты и товары взаимосвязаны между собой, что также может влиять на их ценообразование. В этом смысле процесс изменения показателей торгуемого объекта можно рассматривать как динамический временной ряд, в котором могут иметь место как трендовая, так и стохастическая составляющая. Анализ методов прогнозирования временных рядов показал, что при их реализации может применяться большое число подходов разного типа. Однако общей чертой в них является то, что они могут использовать регрессию данных. В этой связи в дальнейшем в работе рассматривались линейные авторегрессионные модели. Подробный анализ алгоритмов формирования авторегрессионных моделей показал, что задача их идентификации сводится к решению системы линейных уравнений. При этом достаточно надежными методами ее решения могут считаться метод наименьших квадратов и его регуляризация. С целью анализа применения авторегрессионных моделей в работе была разработана программа в среде С++ Builder.

Проведенный вычислительный эксперимент показал адекватность применения авторегрессионных моделей при решении задач прогнозирования данных.

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

Швагер Д. Технический анализ. Полный курс. —.

М.: Альпина Паблишер, 2017. — 804 с. Орлов А. И. Эконометрика. Учебник. М.: Издательство «Экзамен», 2002. — 576с. Фондовый рынок: курс для начинающих, перевод с английского. — М., Альпина Паблишер, 2011.

Мэрфи Джон Дж. Технический анализ фьючерсных рынков: теория и практика. — М., Альпина Паблишер, 2011.

Эрлих А. А. Технический анализ товарных и финансовых рынков. — М.: ИНФРА-М, 1996.

Методы и алгоритмы финансовой математики. —: монография / Ю-Д.Люу, пер. с англ. — 3-е издание. —.

Москва: Лаборатория знаний, 2017. — 752с. Шарый С. П. Курс вычислительных методов. Учеб.

пособие. — Новосибирск: Новосиб. гос. ун-т., 2014 г., 279 с. Годунов С. К. Решение систем линейных уравнений. — Новосибирск: Наука, 1980.

— 178 с. Страуструп.

Б. Язык программирования С++. М.: Бином, 2015. — 1136 с.Осипов.

Л.Д. C++ Builder. Основы программирования. М.: Издательские решения, 2016 г. — 790 с.

Показать весь текст

Список литературы

  1. Д. Технический анализ. Полный курс. — М.: Альпина Паблишер, 2017. — 804 с.
  2. А.И. Эконометрика. Учебник. М.: Издательство «Экзамен», 2002. — 576с.
  3. Фондовый рынок: курс для начинающих, перевод с английского. — М., Альпина Паблишер, 2011.
  4. Мэрфи Джон Дж. Технический анализ фьючерсных рынков: теория и практика. — М., Альпина Паблишер, 2011.
  5. А.А. Технический анализ товарных и финансовых рынков. — М.: ИНФРА-М, 1996.
  6. Методы и алгоритмы финансовой математики. —: монография / Ю-Д.Люу, пер. с англ. — 3-е издание. — Москва: Лаборатория знаний, 2017. — 752с.
  7. С.П. Курс вычислительных методов. Учеб. пособие. — Новосибирск: Новосиб. гос. ун-т., 2014 г., 279 с.
  8. С.К. Решение систем линейных уравнений. — Новосибирск: Наука, 1980. — 178 с.
  9. СтрауструпБ. Язык программирования С++. М.: Бином, 2015. — 1136 с.
  10. Осипов Л.Д. C++ Builder. Основы программирования. М.: Издательские решения, 2016 г. — 790 с.
Заполнить форму текущей работой
Купить готовую работу

ИЛИ