← Voltar

Регистрация инструмента через Connector.RegisterSecurity(Security)

Здравствуйте,

Есть ли в S# возможность подписаться на событие успешной регистрации инструмента? Мне нужно значение ГО и мин/макс значения цены фьючера _future. На сколько понял, чтобы эти данные были не null нужно инструмент предварительно зарегистрировать: Connector.RegisterSecurity(_future);

Но видимо данные регистрируемого инструмента приходят не сразу и после исполнения этого метода параметры BestBid, MarginSell, MinPrice и т.д. некоторое время остаются null. Приложение падает, когда после регистрации я начинаю манипулировать с этими параметрами. Как решить данную проблему?

Este tópico foi útil?

Compartilhar tópico

Comentários (6)

Entrar ou Criar conta, Faça login ou cadastre-se para deixar um comentário

Support
Support

Проверять значение этих параметров на null...

JaguarFX
JaguarFX

Известная проблема, была решена мной так: при старте стратегии по расписанию (в 9:59) из сохраненного списка инструментов (WarmUpList) генерируются объекты вида Security и передаются Connector.RegisterSecurity. Если затем в течение дня по ним возникает сделка, то к это моменту все данные уже нормально получены с вероятностью 99,9%. Исключения конечно составляют сильные рывки рынка, как при открытии 7 апреля, они как раз и есть оставшиеся 0,1%. В такой ситуации приходится ставить заявки по рынку, что в целом оправдано, т.к. при такой волатильности лимитные заявки с большой вероятностью остаются неисполнными, рынок уходит..

Knup
Knup Autor

Смысл в том, что делаю транслятор сделок с одного счёта на другой. Подписываюсь на событие изменения портфеля счёта источника. Но опять же - заранее не известно сделка по какому инструменту придёт от счёта источника - приходится регистрировать инструмент в реальном времени, как сделка от него пришла.

Параметры через на null проверять можно и пропускать дальнейшие действия, если они null, то повторного события изменения портфеля счёта источника уже не будет. Что ж, придётся каждую секунду-две проверять портфель на предмет его изменения, но тогда и смысл событийной модели теряется. Сделка от источника пришла - регистрируем инструмент, естественно все параметры инструмента будут null. Через секунду опять пробуем исполнить транслируемую сделку по счёту приёмнику. Т.е. реально сделки по новым незарегистрированным инструментам будут проходить с запаздыванием. Не регистрировать же все 20000 инструментов квика заранее

Support
Support
  1. Какую модель использовать зависит от типа задачи.., и нет нечего плохого в "опросе" через определенный интервал...
  2. Вы можете использовать другие события (SecuritiesChanged, ValuesChanged, NewTrades)
  3. Опишите Вашу задачу поподробнее, мы подскажем оптимальный способ ее решения...
JaguarFX
JaguarFX

Если набор инструментов не ограничен, то можно исходить из ликвидности и/или исторической частоты сделок на копируемом счете - выбрать 10ку наиболее часто встречающихся (если доступна история) или ликвидных (например на Фортс их как раз с десяток) и предзагружать список как описано мной выше. А по остальным брать цену сделки от источника и расширять ее на 10% в сторону стакана, это и будет 'рыночная заявка'.

Support
Support

...