Поженлание по Order.Comment в MQS
Atom Ответить
17.01.2012


Добрый день! Возможно ли, чтобы исходное Order.Comment сохранялось при исполнении заявок котировщиком? Сейчас все заявки, генерируемые в квик котировщиком, в поле комментарий имеют просто код клиента, а свойство comment исходной заявки игнорируется. Когда торгуется много стратегий,удобно различать заявки по комментарию, а MQS его не выставляет. Делаю так
order.Comment="MyStrategy";
strategy = new MarketQuotingStrategy(order, new Unit(),new Unit());
S# 4.0.15

Теги:


Спасибо:




14 Ответов
Alexander

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


если просто создать заявку с комментарием и послать - комментарий остаётся и передаётся в квик?
я это фиксил, там свои особенности в квике есть с комментами.

и какая версия квика?
Спасибо:

Garry

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


Да, если просто послать, все ок, комментарий остается, в квике в поле комментарий получается так "код клиента/комментарий". Квик 5.24.0.58
Автор топика
Спасибо:

Alexander

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


Сделал. Если будет релиз ещё в 4.0 - это попадёт. Нет - значит только в 4.1
Спасибо: Garry

Garry

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


Добрый день! Еще раз подниму тему, вышел релиз S# 4.0.18, комментарий при котировании не появился. Пока не включили фишку в релиз, или что-то я не так делаю?
Автор топика
Спасибо:

Alexander

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


При вызове order.Clone() копируется комментарий?
Спасибо:

Garry

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


Да все ok, при Order order1=order.Clone(), order1 благополучно получает комментарий от order.
Автор топика
Спасибо:

Alexander

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


И второй вопрос - перед созданием MarketQuotingStrategy у вас order.TransactionId != 0? Должно быть так, иначе заявка создаётся уже внутри стратегии и комментарий туда особо не протащишь. Если только уже у вас перебрать QuotingOrders и установить Comment
Спасибо:

Garry

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


Id и TransactionId равно 0 заявку создаю внутри своей стратегии вот так:
var order = new Order
{
Portfolio = this.prt,
Price = this.Security.BestBid.Price,
Security = this.Security,
Volume = (int)Math.Abs(pos.CurrentValue),
Direction = OrderDirections.Buy,
Comment = _instr1
};
strategy = new MarketQuotingStrategy(order, new Unit(),new Unit());
this.ChildStrategies.Add(strategy);
strategy.Start();

Как сделать, чтобы TransactionId != 0 ?
Автор топика
Спасибо:

Alexander

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


Вызвать RegisterOrder
Спасибо:

Garry

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


У блин тогда получается, что у меня при каждой итерации будет вызываться base.RegisterOrder(order) и заявки в квике плодятся по одной на каждую итерацию, пока заявка не исполнится, такая уж логика стратегии.
var order = new Order
{
Portfolio = this.prt,
Price = this.Security.BestBid.Price,
Security = this.Security,
Volume = (int)Math.Abs(pos.CurrentValue),
Direction = OrderDirections.Buy,
Comment = _instr1
};
base.RegisterOrder(order);
strategy = new MarketQuotingStrategy(order, new Unit(),new Unit());
this.ChildStrategies.Add(strategy);
strategy.Start();

А перебрать QuotingOrders это как?
Автор топика
Спасибо:

Alexander

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


Garry Перейти
А перебрать QuotingOrders это как?


как обычный массив.
Спасибо:

Garry

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


Понял теперь, что это свойство MQS, не знал просто про него, но вот все равно ничего не выходит. Свойство readonly пробовал вот так результата 0
foreach (Order or in strategy.QuotingOrders)
{
or.Comment = _instr1;
}
Автор топика
Спасибо:

Alexander

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


Кстати, ещё проще - переопределите RegisterQuotingOrder.
Устанавливайте свой коммент и вызывайте base.RegisterQuotingOrder, передавая новую заявку с новым комментарием
Спасибо:

Garry

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


Ура! спасибо, получилось.
Автор топика
Спасибо:


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

loading
clippy