Всем привет. Продолжаю выкладывать
OpenSource для начинающих
алготрейдеров — программистов, которые хотят делать своих роботов по старинке...
Некоторое
время назад писал о том, как выгрузить свечи из
Quikв
Excel. Сегодня же разберем вопрос выгрузки свечей и стаканов в программы написанные на
C#...
Для этого я написал небольшую программу, всего 150 строк, в которой показано как развернуть
DDE сервер, принимать, сортировать данные, а также выводить их на форму. Всё очень просто. В проекте использованы три свободные библиотеки:
DDEInfo,
FTPHelper и
NDde. Они лежат в корне проекта. Шлём лучи поддержки их авторам.
Качаем архив со страницы:
sib-algo.ru/open-source/экспорт-котировок-из-quik.html
Что в архиве:
1) Исходники;
2) Этот пост вместо инструкции. Код закомментирован и предполагается, что человек прочитал хоть пол книжки по программированию;
3) Открытые лицензии: Моя,
Tranquikizer,
NDde.
Инструкция по использованию программы
1) Для начала нам понадобиться создать в
Quik таблицу свечей, вот так:
Для этого нужно воспользоваться генератором
Qple скриптов о котором я писал вот здесь:
sib-algo.ru/?p=162 Дело в том, что по
DDE из
Quik можно экспортировать только таблицы, а свечные графики не хранятся в
Quik в виде таблиц. Нужно скачать генератор скриптов и пользуясь инструкцией к нему создать таблицу \
портфель, как на рисунке выше. Делать это в первый раз долго и нудно. Придётся набраться терпения.
2) Запускаем программу:
Нажимаем на кнопку подключить. Статус сервера должен измениться на "
Registered".
3) Далее открываем
Quik и идём в «Экспорт по
DDE» любого стакана, у меня это Газпром:
И настраиваем всё как на рисунке и нажимаем «Начать вывод». В поле
DDE сервер вводится имя сервера, который мы зарегистрировали (метод
buttonOnDde_Click) в системе.
Поле рабочая книга используется как маркер во время сортировки (метод
DDEServer_DataPoked) данных. Поле лист, кстати, тоже можно использовать во время сортировки, но я не стал усложнять.
Далее открываем экспорт по
DDEу таблицы свечей:
Настраиваем, нажимаем «Начать вывод»...
И радуемся жизни!
Удачи
Но вот прямо сейчас копался в винте, а нет мануала к DDEInfo! Есть пример ещё один, оригинальный, но он аж 310 строк. Очень запутанный.
Придётся разбирать мой проект. От себя могу добавить что данная библиотека ещё ни разу меня не подвела. Как часики работает. Даже удивляюсь.
Всё ж вроде просто там:
1) Создаём объект.
2) Подписываемся на его события.
3) Регистрируемся в системе.
4) Посылаем на его имя из Quik пакеты с данными.
5) Принимаем данные…
Мой результат — 3 вечера и метод из описания выше реализован и чуть-чуть заточен под себя. Всё работает. Спасибо, пиши еще :).