← 戻る

Сеттер у 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 будет как раз в этом случае удобнее, чем установка через сеттер.