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


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


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



Код
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)
{

}


}


}
}

Теги:


Спасибо:




4 Ответов
sergun

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


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



Код
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 перечисленных ТС.
Спасибо:

sergun

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


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



Код
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
Спасибо:

Mitz

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


т.е. в плазе такого не будет? как обойти?
Автор топика
Спасибо:

Alexander

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


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


вызывать move order в плазе с regime = 3
Спасибо:


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

loading
clippy