Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
methodIndicationsIAD_v_0_4.doc
Скачиваний:
5
Добавлен:
01.07.2025
Размер:
4 Mб
Скачать

Лабораторная работа № 4. Нечеткая система для анализа и прогнозирования валютных цен на финансовом рынке

Цель работы: построение нечеткой системы анализа и прогнозирования валютных цен на финансовом рынке.

1. Методические указания

Постановка задачи формулируется следующим образом [6]: необходимо, зная динамику изменения курсовой стоимости продажи некоторой валюты за фиксированный интервал времени, предсказать динамику ее курсовой стоимости на определенный момент времени в будущем. Следует отметить, что характерной особенностью динамики изменения курса (тренда) является наличие двух основных тенденций в колебаниях соответствующих цен. С одной стороны, наблюдается общее долгосрочное повышение курсовой стоимости, связанное с величиной инфляции. С другой стороны, наблюдается краткосрочное колебание цен, связанное с целым рядом случайных факторов, адекватное представление которых в той или иной формальной модели вряд ли возможно.

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

В качестве исходных данных воспользуемся, например, информацией о динамике по валюте Евро (EUR) за некоторый временной интервал. Возьмем значения курсовой стоимости EUR за 1 единицу в период с 11.08.2007 по 12.10.07, данная информация представлена в таблице 2.

Таблица 2

Динамика стоимости EUR с 11.08.2007 по 12.10.2007

Дата

Курс Евро

Дата

Курс Евро

11.08.2007

34.8808

13.09.2007

35.2223

14.08.2007

34.8325

14.09.2007

35.2309

15.08.2007

34.7413

15.09.2007

35.1674

16.08.2007

34.5813

18.09.2007

35.1358

17.08.2007

34.5480

19.09.2007

35.1010

18.08.2007

34.5502

20.09.2007

35.2135

21.08.2007

34.7372

21.09.2007

35.2188

22.08.2007

34.8259

22.09.2007

35.3186

23.08.2007

34.8511

25.09.2007

35.3088

24.08.2007

34.8377

26.09.2007

35.2193

25.08.2007

34.9344

27.09.2007

35.2954

28.08.2007

35.0773

28.09.2007

35.3261

29.08.2007

35.0006

29.09.2007

35.3457

30.08.2007

35.0042

02.10.2007

35.4443

31.08.2007

35.0114

03.10.2007

35.3712

01.09.2007

35.0233

04.10.2007

35.3428

04.09.2007

34.9221

05.10.2007

35.2531

05.09.2007

34.8571

06.10.2007

35.2837

06.09.2007

34.8951

09.10.2007

35.2693

07.09.2007

35.0210

10.10.2007

35.1788

08.09.2007

35.0848

11.10.2007

35.2652

11.09.2007

35.2366

12.10.2007

35.3414

12.09.2007

35.1857

Предположим, что нечеткая модель гибридной сети будет содержать 4 входных переменных. При этом первая входная переменная будет соответствовать курсу EUR на текущий банковский день, вторая ‑ курсу EUR на предыдущий банковский день, т. е. на день (i-1), где через i обозначен текущий банковский день. Тогда третья входная переменная будет соответствовать курсу EUR на (i-2) банковский день, а четвертая ‑ курсу EUR на (i-З) банковский день. Соответствующие обучающие данные сведены в таблицу 3.

Таблица 3

Обучающие данные для построения модели гибридной сети

Первая входная переменная

Вторая входная переменная

Третья входная переменная

Четвертая входная переменная

Выходная переменная

34.5813

34.7413

34.8325

34.8808

34.5480

34.5480

34.5813

34.7413

34.8325

34.5502

34.5502

34.5480

34.5813

34.7413

34.7372

34.7372

34.5502

34.5480

34.5813

34.8259

34.8259

34.7372

34.5502

34.5480

34.8511

34.8511

34.8259

34.7372

34.5502

34.8377

34.8377

34.8511

34.8259

34.7372

34.9344

34.9344

34.8377

34.8511

34.8259

35.0773

35.0773

34.9344

34.8377

34.8511

35.0006

35.0006

35.0773

34.9344

34.8377

35.0042

35.0042

35.0006

35.0773

34.9344

35.0114

35.0114

35.0042

35.0006

35.0773

35.0233

35.0233

35.0114

35.0042

35.0006

34.9221

34.9221

35.0233

35.0114

35.0042

34.8571

34.8571

34.9221

35.0233

35.0114

34.8951

34.8951

34.8571

34.9221

35.0233

35.0210

35.0210

34.8951

34.8571

34.9221

35.0848

35.0848

35.0210

34.8951

34.8571

35.2366

35.2366

35.0848

35.0210

34.8951

35.1857

35.1857

35.2366

35.0848

35.0210

35.2223

35.2223

35.1857

35.2366

35.0848

35.2309

35.2309

35.2223

35.1857

35.2366

35.1674

35.1674

35.2309

35.2223

35.1857

35.1358

35.1358

35.1674

35.2309

35.2223

35.1010

35.1010

35.1358

35.1674

35.2309

35.2135

35.2135

35.1010

35.1358

35.1674

35.2188

35.2188

35.2135

35.1010

35.1358

35.3186

35.3186

35.2188

35.2135

35.1010

35.3088

35.3088

35.3186

35.2188

35.2135

35.2193

35.2193

35.3088

35.3186

35.2188

35.2954

35.2954

35.2193

35.3088

35.3186

35.3261

35.3261

35.2954

35.2193

35.3088

35.3457

35.3457

35.3261

35.2954

35.2193

35.4443

35.4443

35.3457

35.3261

35.2954

35.3712

35.3712

35.4443

35.3457

35.3261

35.3428

35.3428

35.3712

35.4443

35.3457

35.2531

35.2531

35.3428

35.3712

35.4443

35.2837

35.2837

35.2531

35.3428

35.3712

35.2693

35.2693

35.2837

35.2531

35.3428

35.1788

35.1788

35.2693

35.2837

35.2531

35.2652

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

Сохраним обучающую выборку во внешнем файле под именем euro.dat. После этого откроем редактор ANFIS, в который загрузим этот файл с обучающими данными. Внешний вид редактора ANFIS с загруженными обучающими данными изображен на рис. 26.

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

Рисунок 26. Графический интерфейс редактора ANFIS после загрузки обучающих данных

Рисунок 27. Диалоговое окно для задания количества и типа функций принадлежности.

Для обучения гибридной сети воспользуемся гибридным методом обучения с уровнем ошибки 0, а количество циклов обучения зададим равным 15. После окончания обучения данной гибридной сети может быть выполнен анализ графика ошибки обучения (рис. 28), который показывает, что обучение практически закончилось на 15 цикле.

Рисунок 28. График зависимости ошибки обучения от количества циклов обучения

После обучения гибридной сети можно визуально оценить структуру построенной нечеткой модели (рис. 29). Очевидно, графическая наглядность данной модели оставляет желать лучшего, поскольку общее количество правил в разработанной адаптивной системе нейро-нечеткого вывода равно 81, что затрудняет их визуальный контроль и оценку.

С помощью графических средств системы MATLAB можно выполнить контроль и настройку параметров функций принадлежности входных переменных и правил нечетких продукций. Для выполнения соответствующих операций можно воспользоваться редактором функций принадлежности (рис. 30). Однако до проверки адекватности построенной нечеткой модели оставим все параметры функций принадлежности без изменений.

Рисунок 29. Структура сгенерированной системы нечеткого вывода.

Выполним проверку адекватности построенной нечеткой модели гибридной сети. Для этой цели сделаем ретроспективный прогноз значения курсовой стоимости EUR на следующий банковский день, например, на 12 октября 2007, считая для этого текущим банковским днем 11 октября 2007. Поскольку точность количественных значений, обеспечиваемая графическими средствами пакета Fuzzy Logic Toolbox, является недостаточной для решения данной задачи, воспользуемся функцией командной строки evalfis. В качестве аргументов этой функции укажем вектор значений курсовой стоимости EUR на текущий и 3 предшествующих банковских дня. Полный формат вызова этой функции будет следующим:

>> out = evalfis([35.2652 35.1788 35.2693 35.2837],fis)

где out ‑ условное имя выходной переменной; 35.2693 ‑ значение курсовой стоимости за , 35.2837 ‑ значение курсовой, 35.2531 ‑ значение курсовой, 35.2652 ‑ значение курсовой; fis ‑ имя структуры FIS, предварительно загруженной в рабочую область системы MATLAB.

Рисунок 30. Графический интерфейс редактора функций принадлежности для построенной системы нечеткого вывода для проверки первой входной переменной.

out =

35.2947

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]