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


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

Теги:


Спасибо:

Именинники: konydima

1 2  >
Mikhail Sukhov

Фотография
Дата: 15.11.2011
Ответить


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


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

InsiderHSE

Фотография
Дата: 15.11.2011
Ответить


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


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


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

InsiderHSE

Фотография
Дата: 15.11.2011
Ответить


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

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

Код

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



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

Mikhail Sukhov

Фотография
Дата: 15.11.2011
Ответить


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

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

Код

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



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


А где вы это пишите?
Спасибо:

InsiderHSE

Фотография
Дата: 16.11.2011
Ответить


В переопределенном OnStarting
Код

this
.When(UnderlyingSecurity.MarketDepthChanged()).Do(DoQouting);

Соответственно
Код

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

Этот метод должен быть таким же, как и в правиле на изменение стакана опциона. Однако мне не до конца понятна логика работы котировальщика. В частности, GetNewPrice() должен выдавать цену с учтом оффсета, или оффсет прибавляется при регистрации заявки и т.п.
Спасибо:

InsiderHSE

Фотография
Дата: 27.11.2011
Ответить


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

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

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

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

Mikhail Sukhov

Фотография
Дата: 27.11.2011
Ответить


InsiderHSE Перейти

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

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


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

InsiderHSE

Фотография
Дата: 28.11.2011
Ответить


Делаю так:
Код

base.OnStarting();
this.Rules.RemoveWhere(r => r.Name.Contains("Изменение стакана инструмента") || r.Name.Contains("Изменение инструмента"));
this.When(UnderlyingSecurity.MarketDepthChanged()).Do(ProcessQuoting);

При этом ProcessQuoting вызывается, но котирования не происходит, то есть методы NeedRegister, GetNewPrice и др. не вызываются. Каким образом в версии 4.0.6 можно привязать котирование к изменению стакана базового актива?
Спасибо:

Mikhail Sukhov

Фотография
Дата: 28.11.2011
Ответить


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

InsiderHSE

Фотография
Дата: 28.11.2011
Ответить


Лог следующий:
Код

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 не вызывались ни разу.
Спасибо:
1 2  >

Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy