4 семинар


Запись урока:

Часть 1

[vk]http://vk.com/video_ext.php?oid=-66674957&id=167886046&hash=bed15957c2efd528&hd=3[/vk]

Часть 2

[vk]http://vk.com/video_ext.php?oid=-66674957&id=167886048&hash=bb4f7d12f349b7c0&hd=3[/vk]

Темы занятия:

  1. События, операции подписывания/отписывания, вызов события.
  2. Создание приложения Windows Forms, элементы форм (Button, TextBox, CheckBox, TabControl, ComboBox), обработчики событий формы.
  3. Обработка исключений и их иерархия.
  4. Начало работы с библиотекой StockSharp (ConsoleSample).

Домашнее задание:

  1. Нарисовать часть иерархии исключений, чтобы представлять, кто на ком стоит.
  2. Реализовать срабатывание алгоритма в примере SampleConsole не по ожиданию 1000мс, а по событию изменения стакана.

Полезные материалы:

  1. Здесь можно подать заявку на демо-счет.
  2. Скачать библиотеку StockSharp (достаточно архива StockSharp_4.x.xx_Sources.zip)
  3. Настройка Quick для StockSharp

Решение домашней задачи:

Необходимо:
  1. Дописать:
using (var waitHandleQuotesChanged = new AutoResetEvent(false))
  1. Находим строки с расчетом середины спреда и указываем подписывание на новое событие.
           // запоминаем первоначальное значение середины спреда
                        var firstMid = _security.BestPair.MiddlePrice;
                        Console.WriteLine("Первоначальное значение середины спреда {0:0.##}", firstMid);

                        ///////////////////////////////
                        //Подписываемся на событие
                        _depth.QuotesChanged += () =>
                        {
                            waitHandleQuotesChanged.Set();
                        };
                        //////////////////////////////

                        while (true)
                        {
                            var mid = _security.BestPair.MiddlePrice;
                            Console.WriteLine("Текущее значение середины спреда {0:0.##}", mid);

                            // если спред вышел за пределы нашего диапазона
                            if ((firstMid * (1.0m + delta) <= mid) ||
                                 (firstMid * (1.0m - delta) >= mid))
                            {
                                var order = new Order
                                {
                                    Portfolio = _portfolio,
                                    Security = _security,
                                    Price = _security.ShrinkPrice(mid),
                                    Volume = 1,
                                    Direction = OrderDirections.Buy,
                                };

                             }

                            // ждем 1 секунду
                            //Thread.Sleep(1000);
                            //TODO: Ждать не 1 сек, а изменения стакана
                            waitHandleQuotesChanged.WaitOne();
                        }

Вложения Исходные коды




Thanks:




Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy