Для освоения и получения навыков использования модуля Transaq Connector был разработан пример в среде SharpDevelop 3.2 на языке C#. Пример оформлен в виде приложения . exe ( Windows Application), снабжен подробными комментариями. Пример не является законченным программным продуктом и предназначен исключительно для ознакомления и самостоятельного изучения. В приложении реализовано:
- Подключение / отключение от сервера
- Запрос статуса сервера
- Формирование / разбор XML структур
- Получение данных:
- Исторические данные
- Клиентские счета
- Доступные рынки
- Информация о доступных периодах свечей
- Список инструментов
- Котировки по инструментам
- Построение графика в режиме online, используя модуль MSChart
- Простейшая стратегия, основанная на пересечении скользящих средних, генерирующая сигналы
Для запуска стратегии необходимо:
- Подключиться к серверу
- Выбрать инструмент
- Выбрать таймфрейм
- Нажать кнопку Старт
В примере намеренно введено ограничение: по факту сигнала формируется XML структура для заявки, но она не отправляется на сервер. Перед запуском приложения необходимо установить модуль MSChart.
Краткие подробности реализации:
В файле connector.cs описаны классы TXmlConnector и MarshalUTF8. Класс MarshalUTF8 является статическим и нужен для преобразования строк и для работы с библиотекой. Класс TXmlConnector – это основной класс для работы. В классе описаны функции (методы), для работы:
public String SendCommand(String command)
– эта функция (метод) передает сообщение command и возвращает сообщение результат. Это главная функция для работы.
Получаемые данные, в описанном примере, поступают в список строк
public IList<string> DataList;
Для работы надо объявить переменную типа TXmlConnector, например:
public TXmlConnector oConn;
И создать экземпляр класса:
oConn = new TXmlConnector();
Посылать команды надо будет через SendCommand, которая возвращает результат команды.
string res = oConn.SendCommand(cmd);
Для получения данных, создайте новый список. Как в примере:
DataList = new List<string> (1000);
oConn.DataList = DataList;
Теперь можно работать с этим списком – обрабатывать полученные данные. Важно отметить, что данные приходят сроками, представленных в виде xml структур. Для разбора (парсинга) этих структур используется пространство имен (namespace) Xml. Можно так же использовать LINQ – это уже выбор разработчика. Вы можете использовать файл connector.cs и класс TXmlConnector для реализации собственных приложений: посылать команды, описанные в руководстве пользователя TRANSAQ Connector, через SendCommand и получать данные от сервера, и не вдаваться в подробности реализации подключения библиотеки DLL к приложению, а сосредоточиться на вашей стратегии.
Более опытным пользователям. При получении данных вызывается callback функция, поэтому можно настроить обработку событий получения данных. В данном примере это реализовано, но закомментировано. Если раскомментировать строку:
//RaiseNewDataEvent(data);
можно будет обрабатывать данные сразу при их поступлении.
Файлы:
Скачать Пример программы
Скачать Проект приложения C#
Скачать модуль MSChart
Скриншоты:
