Экспорт по DDE Позиции по инструментам

Страницы: 1
RSS
Экспорт по DDE Позиции по инструментам
 
Я экспортирую в свою программу по DDE и с позициями по инструментам есть такая проблема:
1. Покупаю один лот чего-нибудь - появляется строчка Т2 с позицией. Она выгружается, всё хорошо.
2. Продаю это же самое день в день - строчка пропадает, но при этом ничего не выгружается и у меня зависает фантомная позиция.

Есть ли какие-нибудь варианты? Хорошо бы, чтобы уведомления о нуле приходили.
 
Здравствуйте, foobar.

Пожалуйста, продемонстрируйте описываемый эффект при экспорте по DDE на примере снимка экрана, в котором было бы видно таблицу, в которой было бы видно результате экспорта до/после появления "фантомной позиции", желательно, чтобы при этом аналогично было видно что по конкретно этой позиции отображается в рабочем месте QUIK. Также просим представить параметры, с которыми выполняется экспорт таблицы. Дополнительно, если на снимках экрана не будет видно - просим уточнить версию рабочего места QUIK (указано в заголовке окна).

Касательно уведомлений - настроить оповещения в рабочем месте по тому, или иному изменению позиций в таблицах "Позиции по деньгам", "Позиции по инструментам", "Состояние счёта" и др. в текущей реализации нельзя. Можем зарегистрировать пожелание на соответствующую доработку. Правильно понимаем, что данный функционал Вас интересует независимо от ситуации, возникающей при экспорте, и Вам хотелось бы иметь возможность настраивать оповещения в рабочем месте в случае, если позиция по инструменту оказывается нулевой, правильно, регистрируем? При необходимости - просьба уточнить суть пожелания.
 
Мне кажется, мы используем разные термины.
Проблема такая:
1. При входе в позицию при DDE экспорте формируется массив строк (в формате xltable).
2. При выходе из позиции формируется массив строк, в нём не будет строки с данными закрытой позиции, она пропадёт из таблицы и не породит запись в формате xltable.

Говоря об "уведомлениях" я имел ввиду, что я не получу запись о том, что конкретно закрытая позиция была закрыта по dde.

Пример (формат таблицы https://imgur.com/igWaevZ )

1. Создание рыночного ордера покупки 1 лота мечела
Терминал создаёт 2 DDE сообщения:

{isin=RU000A0JPV70, ticker=MTLRP, period=T2, openingLots=0,  currentLots=0, inBuy=0, inSell=10, total=0, available=0, balance=0,  price=0.0, terminalCode=OPEN}
{"isin":"RU000A0JPV70","ticker":"MTLRP","period":"T2","openingLots":0,"currentLots":10,"inBuy":0,"inSell":0,"total":10,"available":10,"balance":10,"price":107.85,"terminalCode":"OPEN"}

Первое - это обновление "строки по изменению в покупке" (видимо, я ошибочно ее назвал inSell у себя в программе, но это не суть).

Второе - ордер удовлетворён, в периоде Т2 мы получаем 10 бумаг мечела (ошибочно названных лотами, но так же не суть)

2. Совершение оффетной сделки:

Терминал выгружает одно DDE сообщение

{isin=RU000A0JPV70, ticker=MTLRP, period=T2, openingLots=0,  currentLots=10, inBuy=10, inSell=0, total=10, available=0, balance=10,  price=107.85, terminalCode=OPEN}

Тут указывается, что мы получили 10 бумаг мечела в продаже
После удовлетворения ордера, строка исчезает из таблицы, DDE сообщения не выгружаются.

Ожидание: выгрузить строку с нулевыми данными (позиции нет).

Сырой DDE обмен у меня записан и может быть предоставлен. Там информация выгрядит аналогично.

Терминал версии 8.1.0.30
 
Мои настройки https://imgur.com/bS5zMXl
 
https://imgur.com/YZYYbRq
https://imgur.com/bu6HY5j
 
Здравствуйте, foobar.

Не вполне понятно где Вы наблюдаете эти сообщения и каким образом их формируете, если делаете это самостоятельно (полагаем, что это так исходя из Ваших комментариев о том, что некоторые поля у Вас есть возможность назвать самостоятельно). Лог, который предоставляет наш модуль dde2excel.dll записывается в файл quik_dde.log, если такой файл заранее создан в каталоге с рабочим местом, и записи об экспорте, вставке и обновлении строк там выглядят иначе, нежели демонстрируете Вы. По всей видимости, Ваши сообщения каким-либо образом формируются на основании обновления таблицы Excel.

Экспорт по DDE-предполагает обновление и изменение соответствующих записей в таблице-приёмнике, при их изменении в таблице-источнике. У Вас для таблицы "Позиции по инструментам" выключена опция "Показывать нулевые позиции". Это приводит к тому, что при закрытии позиции - запись удаляется из таблицы-источника QUIK, т.к. она удаляется оттуда, то она не экспортируется в Excel, это приводит к тому, что соответствующая запись в таблице Excel не обновляется, и для неё отображаются данные до её закрытия.
Если открыть позицию по другому инструменту - то "фантомная" закрытая позиция в таблице-приёмнике будет переписана на эту новую открытую позицию.

Исходя из вышеизложенных соображений полагаем, что именно об этой ситуации Вы и говорите, и задача может быть решена настройками отображения таблицы QUIK и/или соответствующими модификациями Вашей программы. Соответственно, чтобы оперативно отслеживать закрытие позиций - рекомендуем включить опцию "Показывать нулевые позиции". В этом случае закрытие позиции будет также фиксироваться в таблице Excel, и может быть соответствующим образом обработано Вашей программой.
 
Цитата
foobar написал:
Есть ли какие-нибудь варианты? Хорошо бы, чтобы уведомления о нуле приходили.
Такое ощущение что порой поддержка специально не понимает о чем речь :)

Смотри.
Позиция по Т2, которую ты хочешь анализировать, она существует только тогда когда позиция переносится через торговую сессию (грубо говоря через день).
А в твоём случае, ты открыл сегодня, у тебя появилось Т0, надо контролировать, потом закрыл в этот же день и Т0 исчезла. Все, позиция закрыта, Т2 не будет.

Другими словами Т2 - это послезавтра. Т0 - сегодня. Поскольку ты сегодня же закрыл позицию, то в Т2 ее и нет.

Мне кажется тебе вообще будет достаточно контролировать только позицию по Т0 и все будет считаться нормально.
 
А с Т0 будут аналогичные проблемы, разве нет? Проблема скорее в том, что для пользователей экселя проблемы нет - у них вся область перерисуется.
Идея была в том, что при закрытии позиции получать подтверждение по таблице Лимитов, что позиция была действительно закрыта. Я сейчас повесил анализ на доступный остаток = 0, это немного криво, так как позиция закрывается до исполнения ордера, но хоть что-то
Страницы: 1
Читают тему
Наверх