Прогнозирование котировок акций компании Яндекс в среде Fuzzytech

Автор: Рыжкина Д.А.

Журнал: Форум молодых ученых @forum-nauka

Статья в выпуске: 5 (9), 2017 года.

Бесплатный доступ

В данной статье будет наглядно представлен процесс обучения нечёткой модели в среде fuzzyTECH. В качестве входных данных буду взяты котировки акций компании Яндекс.

Нейронные сети, нечёткая модель, компания яндекс, акции компании яндекс, нечёткая логика

Короткий адрес: https://sciup.org/140278484

IDR: 140278484

Текст научной статьи Прогнозирование котировок акций компании Яндекс в среде Fuzzytech

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

Для начала берем данные по котировкам акций компании Яндекс с информационного сайта1 в период с 1 сентября 2015 года по 31 октября 2015 года. Перед созданием нечёткой модели в среде fuzzyTECH интерпретируем эти данные в программу MS Excel. Данные нам нужно разбить на 4 переменных: 1 – я переменная будет выходная её мы оставим неизмененной (Y) остальные переменные будут входные. Как мы изменим остальные: 2 – я переменная будет иметь значение X1(Yi-1) это означает, что мы вставляем данные со сдвигом на минус 1 день, Yi-1 - влияющие факторы, которые в данном случае и есть итоговый Y, но тот, каким он был раньше, значение денежного потока и продаж в предыдущем периоде. 3 и 4 – ые переменные будут иметь значения X2,3(Yi-1) по такой же причине, что и вторая. На основании показателей 3 – х дней, мы будем прогнозировать котировку акций компании Яндекс на 4 день. Таблицу сохраним в специальном формате .CSV и обязательно с точками. Дальше запускаем среду fuzzyTECH. И создаём новый проект. В появившемся окне задаем 3 входных переменных и 1 выходную, указывая по 3 функции принадлежности для каждой входной переменной и 5 для выходной. Параметры переменных: min – 9, max – 13, default – 10. Откуда мы берем эти значения? Минимальная котировка акций компании Яндекс за весь период равна - 9 р., максимальная - 13 р., а интервалом выбираем среднее значение между этими числами, оно равно – 10 р. Сделаем наши переменные обучаемыми, что бы программа обучала их по данным, которые мы загрузим из таблицы MS Excel. После всех настроек мы загружаем таблицу с данными в среду fuzzyTECH, нажимаем Start и программа обучает переменные. Так нужно будет сделать несколько раз, и вы увидите, как процент ошибки меняется в меньшую сторону. Модель становиться более точной. После обучения, среда fuzzyTECH автоматически создаст правила, по которым проходило обучение и в дальнейшем по ним будет выдавать определенный результат. Теперь модель можно проверить. В окне проверки результатов будем изменять входные переменные и на основе из значения будет выдаваться результат, т.к. мы знаем, какой должен быть результат, то можем проверить. Конечно, из – за большой доли ошибки, это значение будет отличаться от действительного, всё же, модель будет работать.

Соответствующие обучающие данные мы свели в отдельную таблицу в MS Excel. Туда мы занесли данные котировок акций компании Яндекс в период с 1 сентября 2015 года по 31 октября 2015 года. Представим ее в виде таблицы с

3 входными переменными и 1 выходной. Таблицу сохраним в специальном формате .CSV и обязательно с точками, иначе программа fuzzyTECH не расшифрует эти данные.

Рисунок 1 - Таблица с данными в MS Excel.

Далее, сохраним эту обучающую выборку в файл с именем данные_для_фазитек.csv. Запускаем среду fuzzyTECH. Затем выбираем в главном меню пункт File –> New для создания новой системы. В появившемся окне задаем 3 входных переменных и 3 выходную, указывая по 3 функции принадлежности для каждой входной переменной и 5 для выходной. Таким образом, система будет иметь вид, указанный на Рисунке 5.

|ки1>15Ч^1*в'»ии‘'                                   □ X

C t < Q 6 и a t •> W L . в D ^dr^JOnYBbr

Рисунок 2 - Три входных переменных и одна выходная окно в fuzzyTECH.

Дальше изменяем входные и выходные переменные под свои данные, т.к.

у нас минимальное число - 9, максимальное – 13, а среднее значение -10, то в соответствии с этим изменяем интервал данных.

Рисунок 3 - Изменение параметров переменных.

Теперь необходимо обучить нечеткую систему, используя обучающую выборку. Для этого сначала укажем переменные и правила для обучения, в данном случае это будут все переменные и все правила. Теперь выберем в главном меню Tools –> Neuro –> Learning... Далее, указываем путь к файлу с выборкой. В появившемся окне нажимаем кнопку Start для начала обучения.

Рисунок 4 - (продолжение) Обучение программы fuzzyTech в 8 итераций.

Как можно видеть по рисунку только на 8 раз обучения максимальное отклонение от выборки (розовая шкала слева) стало наименьшим и упало на 11% от первоначального результата и стала составлять при обучении 30.84%, а среднее отклонение от выборки (жёлтая шкала слева) 12.41%, хотя на 7 раз этот результат был лучше.

Программа автоматически создаёт блок правил, по которым в дальнейшем система будет выдавать результат прогнозирования. Всего получилось 135 правил.

Рисунок 5 - Правила в программе fuzzyTech.

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

Рисунок 6 - Проверка точности построенной системы.

Т.к. система не идеально, то в выходное значение не является точным.

Можем посмотреть поверхности отклика, отображающие зависимость выходной переменной от входных, отображены на Рисунке 11.

Рисунок 7 - Поверхности отклика, отображающие зависимость выходной переменной от входных.

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

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

Список литературы Прогнозирование котировок акций компании Яндекс в среде Fuzzytech

  • Нечеткая логика - математические основы [Электронный ресурс]. - Режим доступа: https://basegroup.ru/community/articles/fuzzylogic-math - (Дата обращения: 31.05.2017)
Статья научная