При перестановке заявки большее кол-во, чем в остатке старой


При перестановке заявки большее кол-во, чем в остатке старой
Atom
10/24/2011


столкнулся с проблемой набора большей позиции чем нужно при перевыставлении заявки. бывает так что пока удовлетворяют мою заявку она снимается и перевыставляется с количеством большим чем в остатке снятой заявки. как решить?



Code
foreach (Order or in Trader.Orders)
{

if (or.State == OrderStates.Active) {

Order order = new Order();
if (or.Type == OrderTypes.Conditional) continue;
order.Portfolio = or.Portfolio;
order.Price = or.Security.LastTrade.Price;
order.Direction = or.Direction;
order.Security = or.Security;
order.Volume = or.Balance;
try
{
Trader.ReRegisterOrder(or, order);
}
catch (Exception e)
{

}


}


}
}

Tags:


Thanks:


sergun

Avatar
Date: 10/24/2011
Reply


Mitz Go to
столкнулся с проблемой набора большей позиции чем нужно при перевыставлении заявки. бывает так что пока удовлетворяют мою заявку она снимается и перевыставляется с количеством большим чем в остатке снятой заявки. как решить?



Code
foreach (Order or in Trader.Orders)
{

if (or.State == OrderStates.Active) {

Order order = new Order();
if (or.Type == OrderTypes.Conditional) continue;
order.Portfolio = or.Portfolio;
order.Price = or.Security.LastTrade.Price;
order.Direction = or.Direction;
order.Security = or.Security;
order.Volume = or.Balance;
try
{
Trader.ReRegisterOrder(or, order);
}
catch (Exception e)
{

}


}


}
}


От себя могу предположить, что логически корректное изменение объема при MOVE наверное возможно не во всех торговых системах. Проблема в том, что при простановке order.Volume хочется воспользоваться or.Balance, а ситуация со значением последнего может измениться в тот момент, пока команда летит на сервер. В MOVE было бы прикольно оперировать не абсолютным значением объема для новой заявки, а дельтой относительно оставшегося объема старой.

В целом присоединяюсь к вопросу, как обстоят дела с этой проблемой в реализации Квика? И про ПЛАЗУ2 тоже интересно (в доках у них фигурирует параметр regime=0,1,2, но его семантика описана на-редкость паршиво).

PS. Вопрос в конечном счете не про S#, а про API перечисленных ТС.
Thanks:

sergun

Avatar
Date: 10/24/2011
Reply


sergun Go to
Mitz Go to
столкнулся с проблемой набора большей позиции чем нужно при перевыставлении заявки. бывает так что пока удовлетворяют мою заявку она снимается и перевыставляется с количеством большим чем в остатке снятой заявки. как решить?



Code
foreach (Order or in Trader.Orders)
{

if (or.State == OrderStates.Active) {

Order order = new Order();
if (or.Type == OrderTypes.Conditional) continue;
order.Portfolio = or.Portfolio;
order.Price = or.Security.LastTrade.Price;
order.Direction = or.Direction;
order.Security = or.Security;
order.Volume = or.Balance;
try
{
Trader.ReRegisterOrder(or, order);
}
catch (Exception e)
{

}


}


}
}


От себя могу предположить, что логически корректное изменение объема при MOVE наверное возможно не во всех торговых системах. Проблема в том, что при простановке order.Volume хочется воспользоваться or.Balance, а ситуация со значением последнего может измениться в тот момент, пока команда летит на сервер. В MOVE было бы прикольно оперировать не абсолютным значением объема для новой заявки, а дельтой относительно оставшегося объема старой.

В целом присоединяюсь к вопросу, как обстоят дела с этой проблемой в реализации Квика? И про ПЛАЗУ2 тоже интересно (в доках у них фигурирует параметр regime=0,1,2, но его семантика описана на-редкость паршиво).

PS. Вопрос в конечном счете не про S#, а про API перечисленных ТС.


OFF: В Плазе оно появилось: regime=3
Thanks:

Mitz

Avatar
Date: 11/10/2011
Reply


т.е. в плазе такого не будет? как обойти?
Thanks:

Alexander

Avatar
Date: 11/10/2011
Reply


Mitz Go to
т.е. в плазе такого не будет? как обойти?


вызывать move order в плазе с regime = 3
Thanks:


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

loading
clippy