Запись урока:
Часть 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]
Темы занятия:
- События, операции подписывания/отписывания, вызов события.
- Создание приложения Windows Forms, элементы форм (Button, TextBox, CheckBox, TabControl, ComboBox), обработчики событий формы.
- Обработка исключений и их иерархия.
- Начало работы с библиотекой StockSharp (ConsoleSample).
Домашнее задание:
- Нарисовать часть иерархии исключений, чтобы представлять, кто на ком стоит.
- Реализовать срабатывание алгоритма в примере SampleConsole не по ожиданию 1000мс, а по событию изменения стакана.
Полезные материалы:
- Здесь можно подать заявку на демо-счет.
- Скачать библиотеку StockSharp (достаточно архива StockSharp_4.x.xx_Sources.zip)
- Настройка Quick для StockSharp
Решение домашней задачи:
Необходимо:
- Дописать:
using (var waitHandleQuotesChanged = new AutoResetEvent(false))
- Находим строки с расчетом середины спреда и указываем подписывание на новое событие.
// запоминаем первоначальное значение середины спреда
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();
}
Вложения
Исходные коды