Как узнать отменились ли все заявки?
Atom Ответить
15.10.2013


Я вызываю SmartTrader.CancelOrders. Только после того как я получу подтверждение что все мои заявки отменены я хочу слать новые заявки. Как же мне узнать момент когда все заявки отменились? Не получается найти соответствующее событие. А ведь возможна ситуация что команда CancelOrders закончится не успешно. А события о успешном завершении CancelOrders я не вижу в API. Как же быть?

Теги:


Спасибо:




9 Ответов
Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 15.10.2013
Ответить


Nikolay90 Перейти
Я вызываю SmartTrader.CancelOrders. Только после того как я получу подтверждение что все мои заявки отменены я хочу слать новые заявки. Как же мне узнать момент когда все заявки отменились? Не получается найти соответствующее событие. А ведь возможна ситуация что команда CancelOrders закончится не успешно. А события о успешном завершении CancelOrders я не вижу в API. Как же быть?


А никак. Нет такого события даже у биржи. Не говоря про СмартКом и наш коннектор. Если хотите узнавать гарантированно, то и метод нужно писать с гарантированной отменой.
Спасибо:

Nikolay90

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


Михаил Сухов Перейти
А никак. Нет такого события даже у биржи. Не говоря про СмартКом и наш коннектор.

А вот тут я с вами не могу согласиться. Как это нет? Вот в мануале по Смарткому
http://www.itinvest.ru/e...M_2_2_install_guide.pdf
есть событие OrderCancelSucceeded.
А у биржи на каждую транзакцию приходит ответ, приняла биржа эту транзакцию или нет. Вопрос остается актуальным, как в stocksharp узнать получила ли биржа мою транзакцию об отмене всех моих заявок?

Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 16.10.2013
Ответить


Nikolay90 Перейти
есть событие OrderCancelSucceeded.


В английском языке Order - означает единственно число. А Orders (или OrderGroup) - множественное.
Спасибо:

Nikolay90

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


Михаил Сухов Перейти
Nikolay90 Перейти
есть событие OrderCancelSucceeded.


В английском языке Order - означает единственно число. А Orders (или OrderGroup) - множественное.

Это я в курсе. Вы имеете в виду, что в stocksharp есть событие для успешной отмены одной заявки? Т.е. есть возможность отследить отменилась ли конкретная заявка или нет?
Я видел метод IsCanceled у Order, но никак не пойму когда и у какого ордера его вызывать. Может при отправке заявки складывать отправленные заявки в контейнер и по какому-то событию проходиться по нему и выяснять отменилась она или нет?
Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 16.10.2013
Ответить


Nikolay90 Перейти
Вы имеете в виду, что в stocksharp есть событие для успешной отмены одной заявки?


Да, изучайте примеры и документацию.
Спасибо:

Nikolay90

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


Михаил, подскажите, пожалуйста, какое событие вызывается при успешной отмене заявки. У меня никак не получается это выяснить из документации. Я еще начинающий.
Автор топика
Спасибо:

yar1k0v

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


Привет.
Вот событие =>
{
Код

    OrderChanged += changed =>
    {
       if (changed.Status == OrderStatus.Cancelled)
       {
          /* Заявка Cancelled. */
       }
    };
   

}

Вот код для поиска активных заявок =>
{
Код

   public IEnumerable<Order> GetActiveOrders()
        {
            return (from orders in Trader.Orders
                    where (orders.State == OrderStates.Active)
                    select orders).ToList();
        }
   

}

П.С.

Пользуюсь только поиском активных заявок.
Спасибо: Nikolay90

Nikolay90

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


Спасибо, yar1k0v.
Автор топика
Спасибо:

FlashPlayer

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


ну или через маркет-руул:
Order.WhenCancelled().D0(()=>{....}).Apply(this)
Спасибо:


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

loading
clippy