.
Пишем биржевого робота на C#. Урок 16. Вылавливаем глюки
Автор megabax   
22.12.2012 г.
Структура программы на примере простейшей программы

  Пишем биржевого робота на C#. Урок 16. Вылавливаем глюки

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

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


 

На уроке 13 я обещал в будущих уроках освятить вопросы тестирования и отладки. Сегодня как раз и выполню свое обещание. И так, напомню, с чего возникала тема тестирования и отладки. На уроке 13 была разработана нейросеть, торгующая по системе "Шип". Но на последних свечах лог файл показал какие то странные результаты:

 

Пишем биржевого робота на C#. Урок 16. Вылавливаем глюки

 

И так, какие следует предпринять шаги, что бы найти причину, и, в случае необходимости, исправить глюк? Для начала посмотрим результаты, на истории котировок, содержащей только 18 и 19 мая 2011 года (странные результаты произошли на свечках от 19.05.2011). Для этого нам надо вырезать лишние котировки из данных о котировках. Но так как пока нейросеть не предоставляет таких возможностей, нам придется немножко по программировать.

И так, кидаем на форму FormPrices календарь (DateTimePicker) и парочку кнопочек:

 

Пишем биржевого робота на C#. Урок 16. Вылавливаем глюки

 

У календаря ...

 

...

 

... Определим номер свечи, на которой у нас начинаются странности:

 

Пишем биржевого робота на C#. Урок 16. Вылавливаем глюки

 

Для того, что бы найти ошибку можно попробовать поставить точку останова ....

 

...

 

.... Дальше мы может протрассировать код. И что же выясняем?  ....

 

 

...

 

... И делаем расчет пакета:

 

Пишем биржевого робота на C#. Урок 16. Вылавливаем глюки

 

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

 

Пишем биржевого робота на C#. Урок 16. Вылавливаем глюки

 

1793,39 вместо 1793,41.

А что если посчитать на свече 5567? Видим вот такой результат 1785,53:

 

Пишем биржевого робота на C#. Урок 16. Вылавливаем глюки

 

Получается, при расчете сети ....

 

...

 

... Назовем эту форму FormHistoryNeuron:

 

Пишем биржевого робота на C#. Урок 16. Вылавливаем глюки

 

И так, форма добавлена, кладем на нее ....

 

...

 

В сам класс нейросети добавим метод GetAllNeurons:

 

        /// <summary>

        /// Получить список всех нейронов сети

        /// </summary>

        /// <returns></returns>

        public List<NeuralEntity> GetAllNeurons()

        {

            ....

 

Добавляем к основой форме новый пункт меню:

 

Пишем биржевого робота на C#. Урок 16. Вылавливаем глюки

 

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

 

....

 

... Теперь приступаем к тестированию. Запустим программу, загрузим нейросеть:

Пишем биржевого робота на C#. Урок 16. Вылавливаем глюки

 

 

Подключаем к входным данным котировки:

 

Пишем биржевого робота на C#. Урок 16. Вылавливаем глюки

 

И рассчитываем выходной файл по конкретному нейрону:

 

Пишем биржевого робота на C#. Урок 16. Вылавливаем глюки

 

После чего возьмем несколько значений из выходного файла и проверим их:

Пишем биржевого робота на C#. Урок 16. Вылавливаем глюки

 

Для этого в списке источников котировок для текущего источника установим нужный номер свечи:

 

Пишем биржевого робота на C#. Урок 16. Вылавливаем глюки

 

И рассчитаем нейросеть на эту заданную свечу:

 

Пишем биржевого робота на C#. Урок 16. Вылавливаем глюки

 

Проверим результат:

 

Пишем биржевого робота на C#. Урок 16. Вылавливаем глюки

 

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

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