← Назад

Сеттер у QuotingStrategy.Order

Михаил, верните пожалуйста сеттер у QuotingStrategy.Order. У меня котировщик, унаследованный от QuotingStrategy и переопределяющий OnProcess, но использующий вспомогательные методы QuotingStrategy, ему никак без сеттера.

Комментарии (6)

Вход или Создать аккаунт, Войдите или зарегистрируйтесь, чтобы оставить комментарий

Mikhail Sukhov
Mikhail Sukhov

Alter: Михаил, верните пожалуйста сеттер у QuotingStrategy.Order. У меня котировщик, унаследованный от QuotingStrategy и переопределяющий OnProcess, но использующий вспомогательные методы QuotingStrategy, ему никак без сеттера.

Сеттер убрал потому есть два пути. Или напрямую передавать конструктор, или переопределять QuotingStrategy.CreateOrder.

Alter
Alter Автор

Что-то я не понимаю. Вот у меня в OnProcess вызывается ReRegisterOrder, он возвращает некий newOrder, который потом в случае ошибки пересоздается через CreateOrder и в итоге присваивается свойству Order для следующего цикла котирования. Что мне даст переопределение CreateOrder?

Mikhail Sukhov
Mikhail Sukhov

Alter: Что-то я не понимаю. Вот у меня в OnProcess вызывается ReRegisterOrder, он возвращает некий newOrder, который потом в случае ошибки пересоздается через CreateOrder и в итоге присваивается свойству Order для следующего цикла котирования. Что мне даст переопределение CreateOrder?

Приведите код (хотя бы схематично). Я не все понял.

Alter
Alter Автор

В OnProcess что-то типа


if (newOrder != null)
{
	Order = newOrder;
}
else if (...)
{
	newOrder = CreateOrder(Order.Direction, Order.Price, GetNewVolume());
}

...

 if (CanReRegister(GetNewPrice()))
{
	newOrder = ReRegisterOrder(Order, GetNewPrice, GetNewVolume, IsForts);
	...
}

Alter
Alter Автор

Я просто не понимаю, зачем скрывать от наследников сеттер. Пусть он будет protected, но будет.

Mikhail Sukhov
Mikhail Sukhov

Alter: Я просто не понимаю, зачем скрывать от наследников сеттер. Пусть он будет protected, но будет.

Я предложил переопределить QuotingStrategy.CreateOrder, а не Strategy.Order.

Скрывать, чтобы было меньше путей для ошибок. Вот например то, что Вы привели, выглядит на первый взгляд как ошибка. Вы сами переставляете заявку, хотя это нужно чтобы делало котирование, раз уж от него наследуетесь. Попробуйте обойтись базовой логикой. Я подозреваю что переопределение QuotingStrategy.CreateOrder будет как раз в этом случае удобнее, чем установка через сеттер.