Котирование опциона по теоретической цене

Котирование опциона по теоретической цене
Atom
11/15/2011
InsiderHSE


Насколько я понимаю, сейчас стратегия TheorPriceQuotingStrategy определяет, нужно ли что-либо делать, по правилу изменения стакана котируемого опциона.
Хотелось бы, чтобы было аналогичное правило, но которое срабатывает при изменении стакана базового актива. Это возможно сделать, не имея доступа к TheorPriceQuotingStrategy?

Tags:


Thanks:


1 2  >
Mikhail Sukhov

Avatar
Date: 11/15/2011
Reply


InsiderHSE
Насколько я понимаю, сейчас стратегия TheorPriceQuotingStrategy определяет, нужно ли что-либо делать, по правилу изменения стакана котируемого опциона.
Хотелось бы, чтобы было аналогичное правило, но которое срабатывает при изменении стакана базового актива. Это возможно сделать, не имея доступа к TheorPriceQuotingStrategy?


Может лучше на событие изменения инструмента (опциона)? Если мы котируем не по IV, зачем нам базовый актив? Имеет смысл только в том случае, если мы теор цену сами расчитываем. Вы ее сами расчитываете или берете из терминала?
Thanks:

InsiderHSE

Avatar
Date: 11/15/2011
Reply


Mikhail Sukhov
InsiderHSE
Насколько я понимаю, сейчас стратегия TheorPriceQuotingStrategy определяет, нужно ли что-либо делать, по правилу изменения стакана котируемого опциона.
Хотелось бы, чтобы было аналогичное правило, но которое срабатывает при изменении стакана базового актива. Это возможно сделать, не имея доступа к TheorPriceQuotingStrategy?


Может лучше на событие изменения инструмента (опциона)? Если мы котируем не по IV, зачем нам базовый актив? Имеет смысл только в том случае, если мы теор цену сами расчитываем. Вы ее сами расчитываете или берете из терминала?


Да, я ее сам рассчитываю, так как в терминале она обновляется раз в 30 секунд где-то, а за это время цена базового актива далеко убежать может...
Thanks:

InsiderHSE

Avatar
Date: 11/15/2011
Reply


Михаил, а как организована логика правила на изменение стакана?

пробую что-то типа

Code

if (NeedRegister())
{
	RegisterQuotingOrder(Order);
}
if (NeedReRegister(GetNewPrice(),GetNewVolume()))
{
	ReRegisterOrder(Order,Order.ReRegisterClone(GetNewPrice(), GetNewVolume()));
}



не работает... Я правильно понимаю, что через метод GetNewPrice() определяется цена как теоретическая, сдвинутая на bestPriceOffset. И заявка переставляется, если разница между ценой заявки и GetNewPrice() превысит theorPriceOffset?
Thanks:

Mikhail Sukhov

Avatar
Date: 11/15/2011
Reply


InsiderHSE
Михаил, а как организована логика правила на изменение стакана?

пробую что-то типа

Code

if (NeedRegister())
{
	RegisterQuotingOrder(Order);
}
if (NeedReRegister(GetNewPrice(),GetNewVolume()))
{
	ReRegisterOrder(Order,Order.ReRegisterClone(GetNewPrice(), GetNewVolume()));
}



не работает..


А где вы это пишите?
Thanks:

InsiderHSE

Avatar
Date: 11/16/2011
Reply


В переопределенном 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

Avatar
Date: 11/27/2011
Reply


Как правильно в версии 4.0.6 запускать котирование при изменении базового актива?

this
.When(UnderlyingSecurity.MarketDepthChanged()).Do(ProcessQuoting); ?

нужно ли это правило добавить в коллекцию GetNotificationRules()?

Чтобы котирование не производилось по изменению стакана инструмента, достаточно ли удалить правило из коллекции GetNotificationRules()?
Thanks:

Mikhail Sukhov

Avatar
Date: 11/27/2011
Reply


InsiderHSE

this
.When(UnderlyingSecurity.MarketDepthChanged()).Do(ProcessQuoting); ?

нужно ли это правило добавить в коллекцию GetNotificationRules()?


Или напрямую вызываете ProcessQuoting или переопределяете GetNotificationRules
Thanks:

InsiderHSE

Avatar
Date: 11/28/2011
Reply


Делаю так:
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

Avatar
Date: 11/28/2011
Reply


А в лог что-нибудь пишется? Само правило срабатывает?
Thanks:

InsiderHSE

Avatar
Date: 11/28/2011
Reply


Лог следующий:
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:
1 2  >

Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy