.
Тесты торговых стратегий на C#. Урок 25. Тестирование нейросети и некоторые улучшения программы.
Автор megabax   
16.05.2014 г.
New Page 1

Тесты торговых стратегий на C#. Урок 25. Тестирование нейросети и некоторые улучшения программы.

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

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

Исходники к уроку можно скачать в платном разделе.


На прошлом уроке я рассказа вам, как искал глюк в нейронной сети и как в итоге ...

...

...Таким образом, были сгенерированы новые котировки с диапазоном изменения от 100 до 120 и с периодом 10 свечей. Обучение на этих котировках проходило за 10 с копейками итераций, а тестирование стратегии дало вот такой красивый почти линейный график:

Тесты торговых стратегий на C#. Урок 25. Тестирование нейросети и некоторые улучшения программы.

А что будет, если "прогнать" эту нейросеть через реальные котировки, например, через Газпром на дневных интервалах. Симулируем на периоде с 01.01.2011 по 31.12.2013. Как оказалось, на реальных котировках нейронная сеть не обучается. Скорее всего, причина в том, что это  линейно НЕ сепарабельная задача (см.  Теория нейронных сетей. Урок 4. Обучение нейрости. Линейный персептрон.). Выход из такого положения только один: использовать многослойный персептрон. Но это уже тема для будущих уроков, а сейчас мы с вами немножко улучшим существующую программу. В частности, у нас до сих пор нет пункта меню "Удалить", давайте сделаем его:

        private void tsmiDelete_Click(object sender, EventArgs e)

        {

            delete_object_to(current_node);

        }

 

 

        /// <summary>

        /// Удалить объект из проекта

        /// </summary>

        /// <param name="a_current_node">Ветвь проекта, где удаляемый объект</param>

        private void delete_object_to(TreeNode a_current_node)

        {

            if (a_current_node.Parent == null) return;

            if (a_current_node.Parent.Name == "tvnMainPriceSources")

            {

                project.delete_price_source(a_current_node.Parent.Nodes.IndexOf(a_current_node));

                return;

            }

            if (a_current_node.Parent.Name == "tvnStrategies")

            {

                project.delete_strategy(a_current_node.Parent.Nodes.IndexOf(a_current_node));

            }

        }

В связи с чем нам необходимо добавить в класс проекта (TSTProject) парочку методов (для удаления стратегии и источника котировок) ...

...

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

 

...

 

Теперь мы можем смотреть графики котировок:

Тесты торговых стратегий на C#. Урок 25. Тестирование нейросети и некоторые улучшения программы.

В том числе применять автомасштабирование:

Тесты торговых стратегий на C#. Урок 25. Тестирование нейросети и некоторые улучшения программы.

Последнее обновление ( 16.05.2014 г. )