РАЗДЕЛ 7. Экспорт данных

7.1. Экспорт данных в MS Excel

Особенности экспорта

Любая информационная или торговая таблица NetInvestor Professional может быть экспортирована в открытую книгу MS Excel. Для передачи используется механизм DDE обмена. Таблица NetInvestor Professional становится постоянным источником данных для диапазона ячеек Excel, пока открыты оба приложения.

Передача данных в режиме реального времени дает возможность пользователям:

  • проводить любые дополнительные расчеты в Excel;
  • накапливать данные о собственных сделках и движениях портфеля;
  • подробно анализировать эффективность инвестиций и т.д.

Данные передаются так, как отображаются для пользователя, то есть с учетом фильтров, порядка сортировки и настроек столбцов.

Особенности экспорта таблиц NetInvestor Professional в Excel:

  • пользователь может передать в Excel любую таблицу, кроме стаканов (котировок второго порядка);
  • учитываются фильтры таблиц и настройки столбцов;
  • обмен данными продолжается, пока открыт соответствующий документ Excel;
  • данные в ячейках Excel обновляются тогда, когда изменяются значения полей экспортируемых таблиц;
  • можно экспортировать сразу несколько таблиц NetInvestor Professional в разные части (листы, диапазоны ячеек) документа Excel;
  • программа не поддерживает экспорт данных в несколько файлов Excel одновременно.

Если таблица обменивается данными с книгой Excel, то факт экспорта подтверждает нажатая пиктограмма  в панели инструментов.

Порядок экспорта табличных данных в MS Excel

Для того чтобы организовать обмен данными между NetInvestor Professional и MS Excel:

  1. Откройте приложение MS Excel и создайте новый документ. Рекомендуется также сохранить документ на диске и задать имена листам для экспорта данных.
  2. Откройте окно с таблицей («Портфель», «Список сделок», «Текущие котировки», любая другая), данные которой должны быть экспортированы в Excel. При необходимости можно выключить столбцы, данные которых не надо передавать.

    Рисунок 1. Таблицы NetInvestor Professional, данные которых экспортируются в Excel по DDE-обмену

    Рисунок 2. Результат экспорта в Excel

  3. Используйте команду меню «Инструменты» - « Экспорт в Excel…», либо соответствующую пиктограмму панели инструментов. Для настройки экспорта заполните поля открывшейся формы:
    • флаг «Включить экспорт» - включает и выключает DDE обмен данными
    • поле «Книга» - имя открытого документа, либо путь к сохраненному файлу этого же документа;
    • поле «Лист» - имя листа Excel, например «Лист 1», «Лист 2», любое другое предварительно заданное Вами имя;
    • поля «Строка» и «Столбец» - указывают координаты верхней левой ячейки диапазона, в который будет экспортирована таблица;
    • флаг «Экспортировать названия столбцов» - включает в экспорт названия полей таблицы.

    Рисунок 3. Настройка экспорта данных в Excel

  4. Дождитесь, пока данные будут экспортированы в книгу Excel. Проверьте правильность форматов ячеек (числовые значения должны восприниматься, как числа, а не текст). Если возникли затруднения с чтением действительных чисел программой Excel, попробуйте изменить региональные настройки Windows (Язык и региональные стандарты)
  5. Отключите экспорт данных, повторив п.3, если вся необходимая информация уже перенесена в Excel (например, сохранены дневные сделки).
  6. Оставьте экспорт включенным, если Вы хотите динамически обновлять данные. При этом и приложение NetInvestor Professional , и книга MS Excel должны быть постоянно открыты.

Примечание:Пользователь может временно выключать экспорт, пользуясь флагом «Включить экспорт» как переключателем, если возникает необходимость остановить режим Dynamic Data Exchange. В любой момент обмен можно возобновить.
Дробная часть числа отделяется точкой «.», а запятая «,» служит разделителем разрядов. Если MS Excel не воспринимает этот формат, то попробуйте:
а) выбрать стандарт «Английский (США)»;
б) вручную изменить форматы чисел и денежных сумм в региональных стандартах.

 

 

В НАЧАЛО


7.2. Особенности экспорта данных в программы ТА

В данной реализации NetInvestor Professional поддерживает экспорт биржевых данных (цена и объем торгов) в режиме реального времени в программы технического анализа MetaStock и Omega TradeStation.

В обоих случаях NetInvestor Professional выступает как источник сигнала, транслирует данные в системы ТА и управляет загрузкой. Под управлением мы понимаем, что NetInvestor Professional устанавливает счетчик принятых системой ТА записей и умеет «досылать» пропущенные во время разъединения данные.

Экспорт инструментов в системы ТА реализован так, чтобы пользователь мог получить все данные с выбранной им периодичностью, даже в тех интервалах, когда он был отсоединен от сервера NetInvestor. Но для гарантированной непрерывности данных требуется архив на стороне брокера. Если в конфигурации NetInvestor архив не ведется, то пользователь может транслировать данные текущей торговой сессии до момента очистки информации.

Для того чтобы экспортировать инструменты в любую из систем ТА, необходимо воспользоваться универсальным механизмом экспорта данных. Следующая форма открывается с помощью меню «Инструменты» - «Экспорт в программу тех. анализа…».

В левом окошке формы «Экспорт в программу ТА» находится список всех финансовых инструментов (тикеров), сгруппированных по рынкам; в правом – список экспортируемых тикеров. Список экспортируемых инструментов формируют с помощью кнопок «Добавить» и «Удалить». Двойной щелчок по любому инструменту правого списка ведет к редактированию его параметров: пользователь может переименовать тикер (код), а также изменить единицы измерения объема (штуки или лоты). При установленном флаге «Экспортировать историю» данные начнут передаваться с начала торгового дня, а при каждом новом включении NetInvestor Professional будут дописываться пропущенные периоды.

Кнопка «Послать заново» формы «Экспорт в программу ТА» доступна только тогда, когда система ТА закрыта, а все ее резидентные части выгружены из оперативной памяти. В режиме «Послать заново» данные начинают пересылаться «с начала времен»: с даты начала архива, либо с начала сессии.

При экспорте инструментов в системы ТА NetInvestor Professional передает тиковые значения следующих полей: дата, время, цена, объем (в лотах или штуках). Периодичность записи данных контролируется программой ТА.

В Omega TradeStation можно передавать раздельно цены Bid и Ask. Именно для этого используется флаг «Экспорт цен покупки и продажи». Если пользователь экспортирует данные в MetaStock, то флаг «Экспорт цен покупки и продажи» никак не учитывается.

В НАЧАЛО


Настройка программы MetaStock

Для корректного экспорта данных в систему MetaStock, рекомендуется установить программу версии «MetaStock Professional 7.0» или выше. Кроме того, на стадии инсталляции приложения, в качестве источника real-time данных необходимо выбрать Signal (Broadcast Version).

Рисунок 4. Установка программы MetaStock для начала экспорта данных

Если в директории установки Windows присутствует файл WinRos.ini, следует установить startpath=[путь к директории, куда была установлена программа NetInvestor Professional].

В НАЧАЛО


Последовательный экспорт тикеров в MetaStock

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

  1. В форме «Экспорт в программу ТА» задайте список экспортируемых инструментов, используйте флаг «Экспортировать историю».

    Название инструмента («Symbol» в MetaStock) должно состоять из заглавных латинских букв, хотя может включать цифры и другие символы. Если в NetInvestor Professional тикер содержит строчные буквы , обязательно переименуйте инструмент.

  2. Запустите программу MetaStock, и для каждого экспортируемого инструмента создайте свой объект Security.

    См. в MetaStock меню «File» - «New» - «Security». Название инструмента, как оно было указано выше, записываем в поле «Symbol», в поле «Name» можно указать полное название бумаги. Периодичность записи данных определяют поля «Periodicity» и «Interval». Нажатие кнопки «Ok» приведет к построению графика.

  3. Дождитесь, пока MetaStock закачает данные за прошлые периоды (или с начала торговой сессии). Теперь цены будут обновляться в режиме реального времени с периодичностью, указанной в п.2.

    Чтобы трансляция не прерывалась, закрывая программу MetaStock, необходимо оставлять работать ее резидентные части Equis Data Server и MetaStock File Server.

  4. По возможности не отключайте NetInvestor Professional до конца торговой сессии. Если Вам пришлось отсоединиться от сервера NetInvestor, и у брокера нет архивации данных, постарайтесь подключиться по окончанию сессии. Хотя в это время котировки уже не идут, терминал сможет передать отсутствующие данные в MetaStock.

  5. Запускайте MetaStock после авторизации в NetInvestor Professional, и каждый день он будет автоматически добавлять свежие данные в созданные Вами Securities.

В НАЧАЛО


Подготовка к экспорту в TradeStation

Для корректного экспорта данных из NetInvestor Professional в систему TradeStation во время инсталляции программы Omega ProSuite2000 необходимо сделать ряд специальных настроек. А именно:

  1. В окне «3rd Party Data Vendor Software» выбрать переключатель «DBC - Supports: Signal Broadcast, eSignal Online, and InSite Online».

    Рисунок 12. Этапы инсталляции Omega ProSuite2000

  2. В окне «DBC Data Feed Selection» выбрать переключатель «eSignal Online».

После завершения установки и перезагрузки компьютера отказаться от установки программы DBC eSignal. Запустить вручную из папки DBCSetup инсталлятор продукта DBC Signal. После завершения установки DBC Signal перезагрузить компьютер.

Также во время первого запуска Omega Research ProSuite следует настроить приложение Global Server, которое отвечает за прием данных. Порядок настройки Global Server следующий:

  1. Выбрать опцию «Launch the GlobalServer Setup Wizard».
  2. В качестве «Data Collection Method» указать «Real-Time/Delayed».
  3. Для «Select Datafeed» выбрать из списка «DBC Online SubServer».
  4. Отказаться от подписки HISTORYBANK.COM - «No».

Рисунок 13. Настройка Global Server

Рисунок 14. Настройка Global Server (продолжение)

Перед запуском Omega Research ProSuite пользователю нужно отредактировать реестр Windows, для чего создается и запускается файл с любым именем и расширением reg. Файл ИМЯ.reg можно создать в приложении Блокнот (Notepad), он должен содержать следующие строки:

REGEDIT4
[HKEY_CURRENT_USER\Software\Omega Research\Server\DBC Online SubServer.DBC Online]
"USEPCCLOCK"="NO"

В НАЧАЛО


Создание инструментов в TradeStation. Экспорт данных

Для приема биржевой информации в Global Server создают инструменты, аналогичные инструментам NetInvestor Professional.

Методика создания инструментов в Global Server следующая:

  1. выбрать в меню «Insert» - «Symbol»;
  2. использовать команду «Add New»;

    Рисунок 5. Создание нового инструмента в Global Server

  3. заполнить поля формы «Add Symbol»
    «Data Source» - «DBC Online»,
    «Category» - «Stock»,
    «Symbol» - название инструмента, как в NetInvestor Professional,
    «Exchange» - «Autodetect»;
  4. нажать кнопку «OK» - вслед за сообщением «The added symbol requires additional information» открывается окно «Add stock».

    Рисунок 6. Свойства инструментов в Global Server

  5. в закладке «Stock» заполнить поля
    «Description» - описание (можно заполнять именем тикера),
    «Symbol Root» – можно заполнять именем тикера;
  6. в закладке «Setting» в списке «Exchange Listed» выбрать значение UNDEF;

    Рисунок 7. Настройки цены инструмента в Global Server

  7. в закладке «Sessions» выбрать в качестве «Display Session Times in:» значение «Local Time» и сформировать расписание торгов;

    Рисунок 8. Расписание сессий в Global Server

  8. закрыть форму окно «Add stock», принимая вся сделанные изменения;
  9. в окне «Inset Symbol into Portfolio» создать другие инструменты («Add New»).

После того, как созданы все инструменты, если это необходимо, включаем режим Global Server оnline (см. «File» - «Work Offline»). В закладке «Symbol Portfolio» с помощью контекстной команды «Connect Symbol» можно подключиться к потоку данных из NetInvestor Professional.

Рисунок 9. Подключение инструмента к потоку данных из NetInvestor

В Global Server пользователь может просмотреть и редактировать загруженные данные. Для этого достаточно дважды щелкнуть по строке инструмента, и выбрать закладку «Edit data» в окне редактирования символа. Данные загружаются кнопкой «Load data».

Рисунок 10. Редактирование данных в Global Server

Для организации ежедневной передачи данных приложения запускаются в таком порядке: сначала NetInvestor Professional, затем Global Server и Omega Research ProSuite.

В Omega TradeStation можно экспортировать раздельно цены покупки и продажи, то есть котировки Bid и Ask. Для этого в приложении Global Server соответствующим инструментам необходимо добавить поля для хранения дополнительных данных.

Сделать это можно таким образом:

  1. в знакомой нам форме редактирования «Edit Symbol» открыть закладку «History to save»;
  2. к полям, используемым для хранения данных по умолчанию, добавить с помощью кнопки «Add» два новых «Ask Record» и «Bid Record»;
  3. для каждого из добавленных полей задать периодичность в поле «Resolution» и глубину архива в поле «Num Days»;
  4. сохранить настройки инструмента.

    Рисунок 11. Добавление дополнительных полей для хранения цен покупки и продажи

В НАЧАЛО


7.3. Универсальный механизм экспорта данных во внешние СУБД

NetInvestor Professional дает возможность экспортировать любые хранящиеся на сервере таблицы (котировки, сделки, состояние счетов, списки бумаг, списки заявок, новости и т.д.) во внешние базы данных. Прежде всего, речь идет об экспорте в MS Access, MS SQL и Oracle, хотя модуль может взаимодействовать с любой СУБД, поддерживающей протокол ODBC (например, MS FoxPro, Paradox, DBase).

Экспорт во внешние БД организован как передача данных из NetInvestor Professional в режиме реального времени, и дает возможность пользователям:

  • интегрировать NetInvestor Professional с системами учета, финансового анализа или риск-менеджмента;
  • использовать данные о своих сделках и другую информацию в любом внешнем приложении, в т.ч. разработанном самостоятельно.

Обратите внимание, что данные передаются так, как они хранятся в БД сервера NetInvestor, а не так как они отображаются в табличных окнах NetInvestor Professional. Для организации экспорта рекомендуется ознакомиться со структурой таблиц и типами данных полей.

Особенности экспорта таблиц NetInvestor Professional во внешние СУБД:

  • пользователь может экспортировать любую таблицу, даже служебную, в т.ч. с такими специфическими данными как новости, итоги по другим таблицам и т.д.;
  • пользователь может экспортировать данные из предварительно созданных сводных таблиц;
  • экспорт данных ограничен доступом пользователя к таблицам с учетом его статуса и положения в иерархии пользователей;
  • во время экспорта передаются значения выбранных полей ВСЕХ записей соответствующей таблицы (без фильтрации и сортировки);
  • данные обновляются тогда, когда изменяется хотя бы одна запись экспортируемой таблицы;
  • каждый экспорт (и обновление данных real-time) очищает принимающую таблицу баз данных, то есть записи не дописываются, а полностью заменяются;
  • экспорт организован как набор задач (одна задача обращается к одной таблице NetInvestor Professional), которые в принципе работают независимо;
  • пользователь может управлять отдельными задачами экспорта, включая и выключая передачу данных;
  • в случае ошибки передачи данных, экспорт ведется до первой некорректной транзакции (на практике это означает, что БД будет содержать только записи предшествующие ошибочной).

Для экспорта используются стандартные библиотеки Windows и интерфейс Data Link API. Инициализация внешних БД и управление транзакциями, таким образом, перекладывается «на плечи» Windows.

Описывая каждую отдельную задачу экспорта, пользователь должен:

  • а) сформировать строку инициализации принимающей БД, передать в этой строке путь, параметры авторизации, режим доступа и т.д.;
  • б) описать соответствия между полями таблицы NetInvestor Professional и полями таблицы внешней БД.

В НАЧАЛО


Форма «Экспорт во внешнюю базу данных»

Меню «Инструменты» - «Экспорт во внешнюю базу данных…» открывает универсальную форму работы с задачами экспорта. В списке этой формы приведены все текущие задачи экспорта таблиц NetInvestor Professional во внешние БД. Каждая задача характеризуется свойством «Статус», который может принимать значения «Запущен» или «Остановлен».

Рисунок 15. Форма экспорта таблиц NetInvestor во внешние БД

Управляют задачами экспорта с помощью кнопок в правой части формы:

  • «Добавить» - создать новую задачу экспорта;
  • «Удалить» - удалить задачу экспорта из конфигурации NetInvestor Professional;
  • «Редактировать» - изменить задачу экспорта, то есть строку инициализации или соответствия между полями таблицы NetInvestor Professional и полями внешней таблицы;
  • «Старт» - запустить выбранную задачу экспорта, работающий экспорт будет обновлять данные в файле внешней БД при каждом изменении таблицы NetInvestor Professional;
  • «Стоп» - остановить выбранную задачу экспорта, остановленная задача перестанет обновлять данные в режиме реального времени;
  • «Запустить все» - запустить все задачи экспорта;
  • «Остановить все» - остановить все задачи экспорта.

В НАЧАЛО


Пример экспорта таблиц NetInvestor в базу данных MS Access

В качестве примера, который иллюстрирует механизм экспорта таблиц NetInvestor Professional во внешнюю СУБД, рассмотрим следующую задачу: экспортировать в базу данных MS Access портфели пользователя-брокера и его клиентов для секции корпоративных ценных бумаг ММВБ.

Эту задачу мы будем решать в несколько этапов:

Создание БД в MS Access. Для того чтобы получить из NetInvestor портфели группы пользователей (брокер и его клиенты) необходимо обработать две таблицы: портфель ММВБ КЦБ и список пользователей. Для приема этих таблиц в MS Access создаются PORTFOLIO и CLIENTS .

Рисунок 16. Создание таблицы в MS Access для экспорта портфелей ММВБ

В таблицу PORTFOLIO будем записывать следующие данные: номер строки портфеля (IDportfolio), код клиента (IDClient), данные об инструменте (InsrtumentCode, InstrumentName, InstrumentType), сумму входящую (OpenNum и OpenRUB), сумму текущую (CurrentNum и CurrentRUB), а также значения Planned, InBuy, InSell.

В таблицу CLIENTS, предположим, достаточно записать код клиента (IDClient) и ClientName – полное имя пользователя. Через ключевое поле IDClient таблица CLIENTS связана с PORTFOLIO (один – ко многим).

Некоторую сложность может вызвать определение типов полей PORTFOLIO и CLIENTS. В этом случае можно предложить указывать текстовый тип на этапе создания БД, и уточнять типы полей на этапе отладки экспорта.

Создание задачи экспорта в NetInvestor Professional. Как было сказано выше, для передачи данных каждой таблицы надо создавать отдельную задачу экспорта. В нашем примере это будут задачи: Портфель ММВБ КЦБ и Список пользователей.

В форме «Экспорт во внешнюю базу данных…» создадим новую задачу. В блоке «Источник» выберем переключатель «Таблица», в списке «Тип» выберем «Портфель», а в списке «Название» - «Портфель ММВБ КЦБ». Таким образом, в качестве источника данных экспорта мы установили таблицу БД системы NetInvestor с движениями пользовательских счетов на рынке ММВБ КЦБ.

Рисунок 17. Создание задачи экспорта источник данных

Рисунок 18. Создание строки инициализации в случае экспорта в MS Access

Строка инициализации внешней БД. На этом этапе нам необходимо указать таблицу, принимающую экспортируемые данные. Для этого в блоке «Назначение» следует сформировать «Строку источника данных». К счастью, команду инициализации базы данных MS Access не нужно вводить вручную, ее получают следующим образом :

  • - нажимают кнопку «…» справа от «Строки источника данных»;
  • - открывается форма «Свойства связи с данными»;
  • - в закладке «Поставщик данных» выбирают «Microsoft Jet OLE DB Provider» и нажимают кнопку «Далее>>»;
  • - в закладке «Подключение» указывают путь к файлу базы данных Access;
  • - завершают ввод свойств связи с данными, подтверждая настройки «OK».

Соответствие между полями таблиц. После выполнения инструкций предыдущего пункта, мы возвращаемся в форму «Экспорт во внешнюю базу данных», в которой уже сформирована строка инициализации нашей БД PortfolioMICEX.mbd. Здесь мы продолжаем заполнять блок «Назначение»

Рисунок 19. Задача экспорта портфелей в таблицу PORTFOLIO создана

В поле со списком «Таблица» теперь находится список всех обнаруженных в базе данных таблиц. Выбираем таблицу PORTFOLIO. Ниже задаем соответствие между полями Портфель ММВБ КЦБ (столбец «Источник») и PORTFOLIO (столбец «Назначение»).

После выполнения п. 2- п. 4 задача экспорта Портфель ММВБ КЦБ полностью создана. В такой же последовательности создаем задачу Список пользователей.

Отладка экспорта. На этапе отладки мы поочередно пытаемся запустить экспорт таблиц Портфель ММВБ КЦБ и Список пользователей. Если никаких ошибок (например, несовпадение типов) не обнаружено, то «Журнал событий» выглядит, как на рисунке ниже:

Рисунок 20. Сообщения в журнале событий

В случае неудачного экспорта NetInvestor Professional генерирует событие «Ошибка», которое протоколируется в журнале событий и дает подробную расшифровку для отладки экспорта.

Рисунок 21. Сообщение из журнала событий об ошибке

На этапе отладки можно запустить приложение MS Access и (при остановленном экспорте) наблюдать за содержанием таблиц или изменять структуру БД в режиме конструктора.

Основные ошибки, которые возникают при экспорте данных в Access:

  • - несовпадение типов данных;
  • - неправильно заданные ключевые поля и индексы (повторяющиеся значения в полях);
  • - недоступность или блокирование БД (неправильный путь, открыта в режиме конструктора, требует авторизации или пароля и т.д.);
  • - некорректные названия полей таблиц Access.

Управление процессом экспорта. После успешной отладки задач Портфель ММВБ КЦБ и Список пользователей очищаем и сжимаем PortfolioMICEX.mbd, сбрасываем счетчики. Сейчас наша БД готова принимать данные из NetInvestor в рабочем режиме.

Экспорт запускается командой «Старт» или «Запустить все». Запущенные задачи сохраняются в конфигурации, поэтому автоматически продолжат работу после нового запуска приложения NetInvestor Professional.

Примечания:
В NetInvestor дробная часть числа отделяется точкой «.», а запятая «,» служит разделителем разрядов. Если возникают проблемы с чтением чисел, попробуйте:
а) выбрать стандарт «Английский (США)» в панели «Язык и региональные стандарты»;
б) вручную изменить форматы чисел и денежных сумм в региональных стандартах.
Не используйте в качестве имен полей «Open», «Close», «Date», «Current», «Time» и другие слова, которые могут нести собственный синтаксический смысл.

В НАЧАЛО


7.4. Импорт заявок

Механизм «Импорт заявок», реализованный в NetInvestor Professional, предназначен для частичной автоматизации торговли и для интеграции торговой системы NetInvestor с другими приложениями.

Полная автоматизация, то есть торговля посредством «роботов», может быть реализована пользователем через открытый программный интерфейс NIAPI.

«Импорт заявок» - это универсальных механизм, который умеет принимать данные из внешних источников и выполнять транзакции:

  • выставить заявку;
  • снять заявку;
  • выставить стоп-лосс/алерт;
  • снять стоп-лосс/алерт;
  • выставить тейк-профит;
  • снять тейк-профит.

Заявки (транзакции) импортируются из внешних баз и других источников данных, которые поддерживают технологию OLE DB. Источником транзакций могут выступать такие СУБД как MS SQL и Oracle, но также это могут быть и приложения MS Office. Более того, пользовательские приложения, написанные на любом языке программирования или языке скриптов, могут обмениваться транзакциями с NetInvestor Professional через БД или файлы разных форматов.

Импорт заявок работает следующим образом:

  1. пользователь описывает подключение к внешнему источнику через любой интерфейс OLE DB, в том числе драйвера ODBC;
  2. NetInvestor Professional инициализирует источник данных, например таблицу БД или файл;
  3. через равные промежутки времени NetInvestor Professional опрашивает источник данных, выбирает данные подходящего формата, помечает принятые записи как обработанные;
  4. на основании принятых данных генерируется транзакция нужного вида;
  5. опрос внешнего источника и поиск новых записей продолжается до тех пор, пока включен флаг импорта;
  6. в случае ошибок или разрыва соединения NetInvestor Professional каждые 30 с. пытается инициализировать источник данных.

В НАЧАЛО


Формат данных для импорта заявок в NetInvestor Professional

Как правило, источник данных для импорта заявок – это таблица БД. Для того чтобы NetInvestor Professional мог сформировать нужные приказы, эта таблица должна содержать соответствующие поля определенного типа. Имена полей, типы данных и возможные значения описаны в Таблице ниже.

Таблица 1. Поля внешней таблицы БД, типы данных и возможные значения для импорта транзакций в NetInvestor Professional

Поле Описание Тип данных Значение Заявка Снять
заявку
SL TP
record_id Номер записи Целое Обязательное поле (не передается в NetInvestor) + + + +
status Флаг обработки транзакции (не передается в NetInvestor) Целое 0 – новая; 1 – обработанная + + + +
transaction_name Название (тип) транзакции Строка О списке кодов см. ниже + + + +
I_ORDER_NUMBER Номер заявки, SL или TP Целое Обязательно при снятии приказа   + + +
I_ORDERREF Номер связки в группе Целое ДУ + + + +
I_GROUPREF Номер группы Целое ДУ + + + +
I_ACCOUNT Счет пользователя Строка   + + + +
I_BROKERREF Идентификатор Строка   + + + +
I_SECBOARD Рынок заявки Строка О списке кодов см. ниже + +    
TRADEBOARD Рынок условия SL или TP Строка - // -     + +
I_ORDER_TRADEBOARD Рынок заявки SL или TP Строка - // -     + +
I_SECCODE Инструмент заявки Строка Код инструмента - тикер +      
I_NAME Инструмент условия SL или TP Строка - // -     + +
I_ORDER_NAME Инструмент заявки SL или TP Строка - // -     + +
I_BUYSELL Направление заявки Строка В – покупка; S – продажа +      
I_DIRECTION Направление SL или TP Целое 3 – покупка; 4 – продажа     + +
I_MARKET_LEVEL Уровень рынка (маржи) из условия SL Действ. Пустое, если SL должен сработать по допустимому уровню маржи     +  
I_ORDER_EXECUTION_TERM Условие срабатывания SL Целое 48 – по ценовому уровню; 49 – по марже     +  
I_ALERT_LEVEL Уровень рынка для алерта Действ. Если заполнено, значит, приказ алерт, а поля SL должны оставаться пустыми     +  
I_ACTIVATION_PRICE Цена активации TP Действ.         +
I_DEFLECTION Откат TP (%) Действ.         +
I_MKTLIMIT Тип заявки Строка L – лимитированная или котировочная; M – рыночная или встречная +      
I_PRICE Цена заявки, SL или TP Действ. Если в SL или TP цена не указана, то заявка – рыночная +   + +
I_QUANTITY Количество заявки Целое   +      
I_PRICESIZE Количество в SL или TP Целое       + +
I_SPLITFLAG Условие исполнения Строка S – разрешить по разным; O - запретить +      
I_IMMCANCEL Исполнение остатка Строка «» - в очередь; N – снять; W – немедленно или отклонить +      
I_USE_MARGIN Использовать маржу? Целое 118 – да; 119 - нет +   + +
I_ORDER_TYPE Возможность снятия SL Целое 33 – доступен; 32 - заблокирован     +  
I_SROK Срок действия SL или TP (активен до…) Строка Дата в формате «dd.mm.yyyy»     + +
I_ORDER_CONDITION Флаг снятия SL или TP Целое 16 – снять приказ     + +

Для указания типа операции используются коды транзакций в поле «transaction_name». Важнейшие коды транзакций:

  • ORDER – выставить заявку на ММВБ;
  • FUTADDORDER – выставить заявку на рынке FORTS Фьючерсы;
  • OPTADDORDER – выставить заявку на рынке FORTS Опционы;
  • WD_ORDER_BY_NUMBER – снять заявку на ММВБ;
  • FUTDELORDER – снять заявку на рынке FORTS Фьючерсы;
  • OPTDELORDER – снять заявку на рынке FORTS Опционы;
  • STOPLOSS – создать/снять стоп-лосс на рынке ММВБ КЦБ;
  • STOPLOSSG – создать/снять стоп-лосс на рынке ММВБ ГЦБ;
  • STOPLOSS_PSFU – создать/снятьстоп-лосс на рынке FORTS Фьючерсы;
  • STOPLOSS_PSOP – создать/снять стоп-лосс на рынке FORTS Опционы;
  • TAKEPROFIT – создать/снять тейк-профит на рынке ММВБ КЦБ;
  • TAKEPROFITG – создать/снять тейк-профит на рынке ММВБ ГЦБ;
  • TAKEPROFIT_PSFU – создать/снять тейк-профит на рынке FORTS Фьючерсы;
  • TAKEPROFIT_PSOP – создать/снять тейк-профит на рынкеFORTS Опционы.

Коды транзакций для других рынков можно получить из файла catalog.xml (папка установки NetInvestor Professional), который содержит сведения о структуре данных сервера NetInvestor.

Коды некоторых рынков и торговых площадок:

  • EQBR - ММВБ Акции А1;
  • EQBS - ММВБ Акции А2;
  • EQNL - ММВБ Акции Б;
  • EQNE - ММВБ Внесп.акц.;
  • EQOB - ММВБ Обл. А1;
  • EQOS - ММВБ Обл. А2;
  • EQNO - ММВБ Обл. Б;
  • EQNB - ММВБ Внесп.обл.;
  • PSFU - FORTS Фьючерсы;
  • PSOP - FORTS Опционы.

Коды других рынков можно уточнить в catalog.xml.

При работе с таблицами импорта заявок в NetInvestor Professional необходимо учитывать следующие особенности:

  1. для названия таблиц нельзя использовать ключевые слова SQL (ORDER, SELECT, UPDATE, DELETE, GROUP и т.п.);
  2. для импорта приказов всех видов можно использовать одну таблицу;
  3. тип транзакции определяется значением поля transaction_name;
  4. для каждого конкретного типа транзакции импортируются соответствующие поля (см. выше данные Таблицы);
  5. для того чтобы снять заявку, стоп-лосс или тейк-профит необходимо получить ID (для ДУ также ID связки и группы), например путем экспорта данных из NetInvestor Professional;
  6. таблица может содержать другие данные, которые не имеют прямого отношения к импорту заявок – такие поля не будут обрабатываться;
  7. после обработки записи NetInvestor Professional устанавливает ее status равным «1»;
  8. таблица должна быть открыта для записи;
  9. нельзя импортировать данные из источников, которые не допускают изменения данных, например, из файлов *.txt, *.cvs и т.д. (хотя Windows предоставляет драйвера ODBC для обмена с текстовыми файлами);
  10. установка status = «0» любым внешним процессом ведет к повторному импорту записи;
  11. записи с ошибками, которые NetInvestor Professional не смог импортировать, все равно будут помечены status = «1».

В НАЧАЛО


Управление импортами

Мастер импорта запускается в меню «Инструменты» - «Импорт заявок…». Настройка импорта состоит из инициализации источника данных и непосредственного включения обмена данными.

Рисунок 22. Настройка импорта заявок в NetInvestor Professional

Пользователь должен установить такие параметры импорта:

  • «Строка источника данных» - строка инициализации источника;
  • «Таблица» - имя таблицы для импорта;
  • «Интервал опроса» - задержка между последовательными импортами;
  • «Включить импорт» - флаг, который позволяет включать и приостанавливать импорт заявок.

Пользователь может собрать строку инициализации источника с помощью стандартного мастера Windows «Свойства связи с данными».

Рисунок 23. Выбор интерфейса OLE DB для импорта заявок

В НАЧАЛО


Пример импорта заявок из MS Access

Создадим БД в MS Access, из которой можно импортировать заявки в NetInvestor Professional.

Примечание: Пример базы данных, включающей таблицы для импорта заявок, стоп-лоссов, тейк-профитов, а также справочники транзакций и рынков, можно посмотреть в файле orders_to_NI.mdb.

Для этого необходимо:

1. Создать базу данных и таблицу для хранения транзакций.

Например, в проекте MS Access мы создадим таблицу Orders_Table_Total для импорта транзакций всех видов: заявок, стоп-лоссов, тейк-профитов.

Рисунок 24. Структура таблицы для хранения параметров транзакций (создано в MS Access)

2. Заполнить таблицу тестовыми данными для отладки импорта.

Для отладки импорта внесем в таблицу Orders_Table_Total несколько заявок, стоп-лосс и тейк-профит. Для рынка ММВБ КЦБ (EQBR – акции списка А) имена соответствующих транзакций ORDER, STOPLOSS и TAKEPROFIT. Неиспользуемые для данного вида транзакции поля оставим пустыми. Установим status записей «0».

Рисунок 25. Пример таблицы с данными транзакций разных видов (заявки, стоп-лоссы, тейк-профиты)

Рисунок 26. Пример формы для тестового ввода заявок (обратите внимание на коды и значения полей!)

3. Инициализировать наш проект как источник данных для NetInvestor Professional.

Выбираем базу данных MS Access в качестве источника данных:

  • используем меню «Инструменты» - «Импорт заявок…»;
  • в поле «Строка источника данных» нажимаем кнопку «…»;
  • в закладке «Поставщик данных» выбираем «Microsoft Jet 4.0 OLE DB Provider»;
  • в закладке «Подключение» указываем путь к базе данных;
  • в закладке «Дополнительно» проверяем права доступа (как минимум «Share Deny Write» для совместного доступа к таблице);
  • закрываем мастер «Свойства связи с данными» кнопкой «Ок»;
  • в поле «Таблица» выбираем из списка Orders_Table_Total.

4. Включить импорт.

В форме «Импорт заявок» устанавливаем время между опросами таблицы 1 с и включаем флаг «Включить импорт».

5. Отладить импорт заявок.

В MS Access мы можем следить за тем, как NetInvestor Professional обрабатывает записи (status меняется из «0» в «1»).

Рекомендуется в NetInvestor Professional открыть «Журнал событий». Если программа не сможет обработать ту или иную запись, сообщение об ошибке будет записано в этот журнал. Анализ сообщений поможет нам найти возможные недостатки импорта: ошибки в типах данных, неверные значения полей и т.д.

В НАЧАЛО