← Zurück

Проблема с переносом заявок с вечерней сессии.

у них как-то странно инициализируется поле Security - там везде null, кроме Security.Id - оно заполнено как обычно. У сделок так же. При этом тип у фьюча (например RIU1) - Equity. Это баг или фича ? Версия s# 3.2.5

War dieses Thema hilfreich?

Thema teilen

Kommentare (18)

Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen

Mikhail Sukhov
Mikhail Sukhov

Maxim K.: у них как-то странно инициализируется поле Security - там везде null, кроме Security.Id - оно заполнено как обычно. У сделок так же. При этом тип у фьюча (например RIU1) - Equity. Это баг или фича ? Версия s# 3.2.5

Какой код у инструментов?

Maxim K.
Maxim K. Autor

Поле Code у низ не инициализируется вообще никак - null. При попытке обращения - NullReference. А так проблема была с RIU1, с другими не знаю как.

Alexander
Alexander

Попробовал у себя - всё ок. Покажите как вы

  1. создаёте стратегию и инициализируете поля Trader, Security
  2. создаёте и посылаете заявку.
Mikhail Sukhov
Mikhail Sukhov

Maxim K.: Поле Code у низ не инициализируется вообще никак - null. При попытке обращения - NullReference. А так проблема была с RIU1, с другими не знаю как.

Сорри, имел ввиду класс и что отображается в Квике а не в роботе.

Maxim K.
Maxim K. Autor

Я не создаю стратегию, я просто запускаю экспорт таблиц "заявки" и "мои сделки". У сделок с вечерней сессии по RIU1 с Security проблемы, которые описал выше. Код класса в QUIK - FUTEVN, Код бумаги - RIU1. Код наподобие такого:


trader.NewMyTrades+=trades=>
{
   if(trades.FirstOrDefault(t=>t.Order.Security.Code==selectedSecurity.Code)!=null)
   {
     //что-то делается
   }
};

Но в этой строчке вылетает нулреференс. Нашел потом в trades сделки по RIU1-FUTENV - у них поле Code - null.

Maxim K.
Maxim K. Autor

Извиняюсь, сильно затупил - просто в таблице "инструменты" не были добавлены Фьючерсы доп. сессия (( Сейчас добавил их - всё нормально.

Alexander
Alexander

Не знаю насчёт затупили или нет...

У меня в таблицу Инструменты добавлен только фьюч ртс из списков FORTS. Код класса - SPBFUT, на вечерке нормально работает, класс - не меняется в таблице.

Как у вас было сделано \ стало сделано?

Maxim K.
Maxim K. Autor

Просто в таблице "инструменты" не было такого инструмента - RIU1-FUTEVN, соответственно параметры его взять неоткуда, я так понял. Добавил его в таблицу - все доступные поля стали инициализироваться.

Alexander
Alexander

Maxim K.: Просто в таблице "инструменты" не было такого инструмента - RIU1-FUTEVN, соответственно параметры его взять неоткуда, я так понял. Добавил его в таблицу - все доступные поля стали инициализироваться.

Максим, можно чуть подробнее - какой код был, SPBFUT? По нему сделки приходили, потом, с наступлением вечерки, код изменился на FUTEVN?

Из какого класса (Связь->списки) был добавлен инструмент в таблицу инструментов?

Хочется понять как это можно исправить программно, если вообще стоит.

Maxim K.
Maxim K. Autor

Инструмент был добавлен из FORTS:Фьючерсы дополнительная сессия. У всех фьючей и опционов, добавляемых таким образом код - FUTEVN. Как изменился код я не знаю, торговал не я. Но просто пришел с утра и возникла такая проблема. На самом деле, по-моему, с точки зрения s# всё в порядке - если инструмента нет в таблице "инструменты", то вполне логично, что взять информацию по нему неоткуда и он не инициализируется. Исправлять нечего просто-напросто. UPD: про опционы - у них код OPTEVN.

Maxim K.
Maxim K. Autor

Теперь возникла такая проблема: Для опционов с вечерней сессии не работают методы Delta, Gamma, и т.п., так как тип у них выставляется Equity. Ошибка:

Неправильный тип Equity инструмента. Имя параметра: option

В методе Delta.

Mikhail Sukhov
Mikhail Sukhov

Maxim K.: Теперь возникла такая проблема: Для опционов с вечерней сессии не работают методы Delta, Gamma, и т.п., так как тип у них выставляется Equity.

Правильно. Вечерние инструменты - это фейк. Используйте реальные.

Maxim K.
Maxim K. Autor

Бывают ситуации, когда заявка с вечерней сессии должна быть перенесена в дневную. При этом заявка с вечерней сессии снимается, вместо нее выставляется такая же заявка с таким же номером, но уже с другим классом инструмента (например для фьюча было FUTEVN на вечерке, а на дневной стало SPBFUT). В результате в таблице "заявки" получается две заявки с одинаковым номером. Вроде бы ничего страшного, но при экспорте ДДЕ вылетает ошибка - Дублированный ДДЕ пакет, имя параметра - айтем. При этом все заявки, которые находятся выше этих двух с одинаковыми номерами обрабатываются нормально, а дальше экспорт не идет. Сначала лечил это установкой фильтра только на активные и исполненные, но от такого решения пришлось отказаться, так как иногда нужна информация и по снятым заявкам. Сейчас я подписываюсь на PreProcessDDEData и в нем удаляю "лишнюю" заявку.

Пробовал так же гуглить этот вопрос, но однозначного ответа не нашел - кто-то пеняет на биржу, кто-то на брокера. Если еще у кого-нибудь возникает подобная проблема просьба отписаться.

Alexander
Alexander

Тоже наблюдал, буду смотреть как можно пофиксить.

Alexander
Alexander

Объединил 2 темы.

Исследовал этот вопрос, ситуация в следующем - есть по сути 1 инструмент. К примеру, RIZ1. По нему возможно выставлять заявки в дневную и в вечернюю сессию. Для данного торгового дня везде заявки \ сделки по этому инструменту будут отображаться с классом SPBFUT.

На следующий торговый день сделки, сделанные на вечерней сессии, меняют свой класс с SPBFUT на FUTEVN - это вспомогательный, информационный класс, чтоб можно было посмотреть свои сделки на вечерней сессии. Если с вечерней сессии заявки переносились активными, то они:

  1. снимаются - с классом вечерней сессии FUTEVN
  2. выставляются заново - с классом SPBFUT

В связи с этим считаю логичным игнорировать все сделки\заявки для вечерней сессии предыдущего дня - с классом FUTEVN. Кому необходимо получать информацию за предыдущие дни - могут скидывать информацию в БД.

Alexander
Alexander

Класс FUTEVN будет игнорироваться начиная с версии 3.2.12

vvt
vvt

Alexander: Класс FUTEVN будет игнорироваться начиная с версии 3.2.12 По опционам есть класс OPTEVN для вечерней сессии и класс SPBOPT соответственно. Предлагаю также игнорировать класс OPTEVN.

Alexander
Alexander

vvt:

Alexander: Класс FUTEVN будет игнорироваться начиная с версии 3.2.12 По опционам есть класс OPTEVN для вечерней сессии и класс SPBOPT соответственно. Предлагаю также игнорировать класс OPTEVN.

Уже. Я сразу сделал и для опционов, и для фьючерсов.