Программирование - это просто
Advertisement
Главная arrow Искусственный интеллект arrow Искусственный интеллект arrow Практика нейронных сетей (платный раздел) arrow Практика нейронных сетей. Урок 27. Проверка: можно ли прибыльно торговать на бирже нейросетью.
19.11.2018 г.
Главное меню
Главная
Системный подход
Интернет магазин
Биржевые роботы
Программные продукты
Математика и информатика
1С:Предприятие
C#, Delphi, VB, F#, Web и пр.
Искусственный интеллект
Услуги
Ча. Во. (FAQ)
Платный раздел
Наука для чайников
Разное
Размышления
Карта сайта
Друзья сайта
Excel-это не сложно
Все о финансах
Практика нейронных сетей. Урок 27. Проверка: можно ли прибыльно торговать на бирже нейросетью. Печать E-mail
Автор megabax   
08.11.2018 г.
unit AIObj

Практика нейронных сетей. Урок 27. Проверка: можно ли прибыльно торговать на бирже нейросетью.

Чтобы смотреть урок полностью, подпишитесь на платный раздел.

В платном разделе статья и исходники находятся здесь.


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

Для этого изменим обработчик tsmiCreateSelection_Click на форме:

        private void tsmiCreateSelection_Click(object sender, EventArgs e)

        {

            IntervalSelectionForm iform = new IntervalSelectionForm();

            iform.nudBeg.Maximum = dgvStock.Rows.Count - 1;

            iform.nudEnd.Maximum = dgvStock.Rows.Count - 1;

            if (iform.ShowDialog() != DialogResult.OK)

            {

                return;

            }

            core.selection = core.create_selection((int)iform.nudBeg.Value, (int)iform.nudEnd.Value);

            core.visualize_selection(core.selection.items);

        }

и метода create_selection класса Core: ...

...

...

И что же у нас получилось? Обучим нейросеть на выборке с номерами от 200 по 500. Посмотрим, какие результаты будут на периоде обучения:

Практика нейронных сетей. Урок 27. Проверка: можно ли прибыльно торговать на бирже нейросетью.

Практика нейронных сетей. Урок 27. Проверка: можно ли прибыльно торговать на бирже нейросетью.

Однако, торговать мы будем явно не на периоду обучения, ибо это невозможно. Посмотрим на интервале с 501 по 800 свечей:

Практика нейронных сетей. Урок 27. Проверка: можно ли прибыльно торговать на бирже нейросетью.

А вот тут убыток, как и было предсказано в прошлой статье.

Как мы можем это исправить? Повысить точность предсказания?

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

Практика нейронных сетей. Урок 27. Проверка: можно ли прибыльно торговать на бирже нейросетью.

Средняя ошибка, как вы помните из прошлого урока, примерно 0.8%. Что характерно, там где прибыль, ошибка немногим меньше средней:

Практика нейронных сетей. Урок 27. Проверка: можно ли прибыльно торговать на бирже нейросетью.

Если мы каким то волшебным образом повысим среднюю точность нейронной сети, насколько измениться точность в убыточных сделках, в которых точность значительно выше средней? Превратит ли это убыточную сделку в прибыльную? Полагаю, что это маловероятно. Тут надо идти другим путем. А что если попробовать предсказывать подобные "выбросы"? Грубо говоря, попытаться прогнозировать точность прогноза нейронной сети следовать ее рекомендациям только тогда, года она предсказывает точно? Допустим, нам это удалось. Предположим, что мы знаем, когда нейросеть предскажет с точностью грубее 1%. Давайте смоделируем данную ситуацию. Как мы ее смоделируем? Просто поставим в алгоритм "заплатку", и не будем засчитывать сделки, когда нейронная сеть выдала прогноз с ошибкой более 1%. Обращаю внимание, это не моделирование реальной торговли, а моделирование нашего допущения, с целью проверить, стоит ли вообще пытаться идти выбранным путем.

Итак, вставим заплатку в метод test класса Core, перед тем как добавить сделку в лог сделок:

                    //Наша заплатка для моделирования допущения

                    if (item.error > 1) continue;

 

                    item.result = Math.Round((item.real_future_price-curr_real_price)*item.oper,2);

                    res.Add(item);

И смотрим результат.

На периоде, на котором обучали:

Практика нейронных сетей. Урок 27. Проверка: можно ли прибыльно торговать на бирже нейросетью.

Как видим, результат на лицо - показатели значительно возросли.

На другом периоде (500-800):

Практика нейронных сетей. Урок 27. Проверка: можно ли прибыльно торговать на бирже нейросетью.

И вуаля, из убыточной стратегия превращается в прибыльную, способность предсказывать когда нейрость "врет" дало бы нам возможность получить прибыльную торговлю. 

Теперь осталось только научиться делать такие предсказания. Но это уже тема следующего урока. 

Используемая литература

1.       Шуравин А. П. Исследование обучаемости нейронной сети на примере предсказания числовых рядов // Научные достижения и открытия 2017: сборник статей III Международного научно-практического конкурса. ПензаНаука и Просвещение, 2017. С. 31-36. (https://elibrary.ru/item.asp?id=30050179)


Скриншоты, помеченные знаком *, являются цитатами и иллюстрациями  программного продукта "Microsoft Visual Studio 2010 Professional", авторское право на который принадлежит корпорации Microsoft.. 


Последнее обновление ( 08.11.2018 г. )
 
Пред. »
 
© 2018 Программирование - это просто
Joomla! - свободное программное обеспечение, распространяемое по лицензии GNU/GPL.
Русская локализация © 2005-2008 Joom.Ru - Русский Дом Joomla!
Design by Mamboteam.com | Powered by Mambobanner.de
Я принимаю Яндекс.Деньги
Мы принимаем
Банковские карты
Оплатите покупку в интернет-магазине банковскими картами VISA и Mastercard любого банка.
узнать больше
Электронный кошелек
Моментальная оплата покупок с помощью вашего электронного кошелька RBK Money.
узнать больше
Банковский платеж
Оплатите покупку в любом российском банке. Срок зачисления средств на счет - 3-5 рабочих дней.
узнать больше
Денежные переводы
Оплата покупок через крупнейшие системы денежных переводов CONTACT и Unistream.
узнать больше
Почтовые переводы
Оплатите покупку в любом отделении Почты России. Срок зачисления платежа - 3-4 рабочих дня.
узнать больше
Платежные терминалы
Оплата покупок в терминалах крупнейших платежных систем в любом городе России - быстро и без комиссии.
узнать больше