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

При перестановке заявки большее кол-во, чем в остатке старой
Atom
10/24/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)
                        {
                                                  
                        }
                      

                    }


                }
            }

Tags:


Thanks:


sergun

Avatar
Date: 10/24/2011
Reply


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 перечисленных ТС.
Thanks:

sergun

Avatar
Date: 10/24/2011
Reply


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
Thanks:

Mitz

Avatar
Date: 11/10/2011
Reply


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

Thanks:

Alexander

Avatar
Date: 11/10/2011
Reply


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

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

Thanks:


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

loading
clippy