Mikhail Sukhov
|
Date: 11/15/2011
InsiderHSE Насколько я понимаю, сейчас стратегия TheorPriceQuotingStrategy определяет, нужно ли что-либо делать, по правилу изменения стакана котируемого опциона. Хотелось бы, чтобы было аналогичное правило, но которое срабатывает при изменении стакана базового актива. Это возможно сделать, не имея доступа к TheorPriceQuotingStrategy? Может лучше на событие изменения инструмента (опциона)? Если мы котируем не по IV, зачем нам базовый актив? Имеет смысл только в том случае, если мы теор цену сами расчитываем. Вы ее сами расчитываете или берете из терминала?
|
|
Thanks:
|
|
|
|
|
InsiderHSE
|
Date: 11/15/2011
Mikhail Sukhov InsiderHSE Насколько я понимаю, сейчас стратегия TheorPriceQuotingStrategy определяет, нужно ли что-либо делать, по правилу изменения стакана котируемого опциона. Хотелось бы, чтобы было аналогичное правило, но которое срабатывает при изменении стакана базового актива. Это возможно сделать, не имея доступа к TheorPriceQuotingStrategy? Может лучше на событие изменения инструмента (опциона)? Если мы котируем не по IV, зачем нам базовый актив? Имеет смысл только в том случае, если мы теор цену сами расчитываем. Вы ее сами расчитываете или берете из терминала? Да, я ее сам рассчитываю, так как в терминале она обновляется раз в 30 секунд где-то, а за это время цена базового актива далеко убежать может...
|
|
Thanks:
|
|
|
|
|
InsiderHSE
|
Date: 11/15/2011
Михаил, а как организована логика правила на изменение стакана? пробую что-то типа Code
if (NeedRegister())
{
RegisterQuotingOrder(Order);
}
if (NeedReRegister(GetNewPrice(),GetNewVolume()))
{
ReRegisterOrder(Order,Order.ReRegisterClone(GetNewPrice(), GetNewVolume()));
}
не работает... Я правильно понимаю, что через метод GetNewPrice() определяется цена как теоретическая, сдвинутая на bestPriceOffset. И заявка переставляется, если разница между ценой заявки и GetNewPrice() превысит theorPriceOffset?
|
|
Thanks:
|
|
|
|
|
Mikhail Sukhov
|
Date: 11/15/2011
InsiderHSE Михаил, а как организована логика правила на изменение стакана? пробую что-то типа Code
if (NeedRegister())
{
RegisterQuotingOrder(Order);
}
if (NeedReRegister(GetNewPrice(),GetNewVolume()))
{
ReRegisterOrder(Order,Order.ReRegisterClone(GetNewPrice(), GetNewVolume()));
}
не работает.. А где вы это пишите?
|
|
Thanks:
|
|
|
|
|
InsiderHSE
|
Date: 11/16/2011
В переопределенном OnStarting Code
this
.When(UnderlyingSecurity.MarketDepthChanged()).Do(DoQouting);
Соответственно Code
private void DoQouting()
{
if (NeedRegister())
{
RegisterQuotingOrder(Order);
}
if (NeedReRegister(GetNewPrice(),GetNewVolume()))
{
ReRegisterOrder(Order,Order.ReRegisterClone(GetNewPrice(), GetNewVolume()));
}
}
Этот метод должен быть таким же, как и в правиле на изменение стакана опциона. Однако мне не до конца понятна логика работы котировальщика. В частности, GetNewPrice() должен выдавать цену с учтом оффсета, или оффсет прибавляется при регистрации заявки и т.п.
|
|
Thanks:
|
|
|
|
|
InsiderHSE
|
Date: 11/27/2011
Как правильно в версии 4.0.6 запускать котирование при изменении базового актива?
this .When(UnderlyingSecurity.MarketDepthChanged()).Do(ProcessQuoting); ?
нужно ли это правило добавить в коллекцию GetNotificationRules()?
Чтобы котирование не производилось по изменению стакана инструмента, достаточно ли удалить правило из коллекции GetNotificationRules()?
|
|
Thanks:
|
|
|
|
|
Mikhail Sukhov
|
Date: 11/27/2011
InsiderHSE this .When(UnderlyingSecurity.MarketDepthChanged()).Do(ProcessQuoting); ?
нужно ли это правило добавить в коллекцию GetNotificationRules()?
Или напрямую вызываете ProcessQuoting или переопределяете GetNotificationRules
|
|
Thanks:
|
|
|
|
|
InsiderHSE
|
Date: 11/28/2011
Делаю так: Code
base.OnStarting();
this.Rules.RemoveWhere(r => r.Name.Contains("Изменение стакана инструмента") || r.Name.Contains("Изменение инструмента"));
this.When(UnderlyingSecurity.MarketDepthChanged()).Do(ProcessQuoting);
При этом ProcessQuoting вызывается, но котирования не происходит, то есть методы NeedRegister, GetNewPrice и др. не вызываются. Каким образом в версии 4.0.6 можно привязать котирование к изменению стакана базового актива?
|
|
Thanks:
|
|
|
|
|
Mikhail Sukhov
|
Date: 11/28/2011
А в лог что-нибудь пишется? Само правило срабатывает?
|
|
Thanks:
|
|
|
|
|
InsiderHSE
|
Date: 11/28/2011
|
|
|
|
Лог следующий: Code
17:25:03.690 | Warning | SOQS | Правило 'Изменение стакана инструмента SRZ1@RTS' не может быть обработано так как приостановлено исполнение правил.
17:25:03.811 | Warning | SOQS | Правило 'Изменение стакана инструмента SRZ1@RTS' не может быть обработано так как приостановлено исполнение правил.
17:25:04.048 | Warning | SOQS | Правило 'Изменение стакана инструмента SRZ1@RTS' не может быть обработано так как приостановлено исполнение правил.
17:25:04.510 | Warning | SOQS | Правило 'Изменение стакана инструмента SRZ1@RTS' не может быть обработано так как приостановлено исполнение правил.
17:25:05.150 | | SOQS | Правило 'Изменение стакана инструмента SRZ1@RTS' активировано.
17:25:10.235 | | SOQS | Правило 'Изменение стакана инструмента SRZ1@RTS' активировано.
17:25:10.236 | | SOQS | Правило 'Изменение стакана инструмента SRZ1@RTS' активировано.
17:25:11.815 | | SOQS | Правило 'Изменение стакана инструмента SRZ1@RTS' активировано.
При этом методы NeedRegister, GetNewPrice не вызывались ни разу.
|
|
Thanks:
|
|
|
|