Генетический алгоритм. Урок 7. Нейросеть, торгующая на бирже. |
Автор megabax | ||||
24.02.2014 г. | ||||
Генетический алгоритм. Урок 7. Нейросеть, торгующая на бирже. Что бы смотреть урок полностью, подпишитесь на платный раздел. В платном разделе статья находиться здесь. На уроке 5 мы начали, а на уроке 6 закончили программировать нейросеть с передаточными функциями, обучаемую при помощи генетического алгоритма. Сегодня попробуем научить торговать эту нейронную сеть на фондовой бирже. Обучение будет проходить на исторических котировках, которые мы скачаем из интернета. Но сначала нам понадобится библиотека StockLibrary.dll. в этой библиотеке содержаться классы, необходимы для эмуляции торгов на бирже. Если вы не в курсе, что такое бирже, кратко объясню: на бирже продаются и покупаются всякие акции, и другие ценные бумаги. Цена на них постоянно меняется. Допустим, можно купить акции Газпром по 200 руб. за штуку, а через какое время, если они выросли, продать дороже (например, за 210 руб.) и получить прибыль. А можно и наоборот, продать акции в минус (в пределах того, что позволяет залоговый депозит), а когда они упадут, выкупить их обратно. Такая операция называется "торговать в шорт". Так как историю цен акций можно скачать из интернета, то мы можем написать программу, которая по заданному алгоритму анализирует, когда продавать а когда покупать и проверить этот алгоритм на истории. Что представляет из себя история котировок? С точки зрения программиста, это массив структур c полями:
Как я уже говорил, нам нужна библиотека StockLibrary.dll для работы с такими данными. Еще нам будут нужны файлы TradeSystem.cs , ITradeSystem.cs, TradeSystemTester.cs из урока 11 "Тестируем торговую стратегию". Что представляют собой эти файлы. ITradeSystem.cs - это интерфейс, который содержит методы, необходимые для реализации торговой стратегии. Поскольку все, что связано с биржей я стараюсь унифицировать, отсюда появился и этот интерфейс. TradeSystem.cs - в этом файле абстрактный класс основа реализации торговой стратегии. TradeSystemTester.cs - механизм тестирования торговых стратегий на исторических котировках. За основу берем MACrossTradeSystem.cs тоже из урока 11 "Тестируем торговую стратегию", но только переделываем его. Сначала переименовываем в NeuroTradeSystem.cs и изменяем код, удаляем все лишнее. вот как будет у нас выглядеть реализация класса торговой стратегии:
...
...Тестировать будем на Газпроме, интервал 1 час. сначала нужно скачать котировки с сайта Финам:
Интервал тестирования у нас будет 2011 год:
И так, акции котировки скачали*:
Теперь немножко переделываем конструктор основной формы:
Все, приступаем к тестированию:
Что у нас в итоге получается? Лучший результат 0.8388 и дальше не двигается. Посмотрим, какие сделки совершила оптимизированная нейросеть, воспользовавшись для этого такой программой:
как оказалось, сделка всего одна: продажа в шорт в самом начале торгов*:
почему так происходит, этим вопросом мы озаботимся на следующем уроке. Скриншоты, помеченные знаком *, являются цитатами и иллюстрациями программного продукта "Блокнот", авторское право на который принадлежит корпорации Microsoft.. |
||||
Последнее обновление ( 24.02.2014 г. ) |