Прогнозирование котировок акций компании Яндекс в среде Fuzzytech
Бесплатный доступ
В данной статье будет наглядно представлен процесс обучения нечёткой модели в среде 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)