← Zurück

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

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

War dieses Thema hilfreich?

Thema teilen

Kommentare (9)

Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen

Mikhail Sukhov
Mikhail Sukhov

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

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

Nikolay90
Nikolay90 Autor

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

Mikhail Sukhov
Mikhail Sukhov

Nikolay90: есть событие OrderCancelSucceeded.

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

Nikolay90
Nikolay90 Autor

Михаил Сухов:

Nikolay90: есть событие OrderCancelSucceeded.

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

Mikhail Sukhov
Mikhail Sukhov

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

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

Nikolay90
Nikolay90 Autor

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

yar1k0v
yar1k0v

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


 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
Nikolay90 Autor

Спасибо, yar1k0v.

FlashPlayer
FlashPlayer

ну или через маркет-руул: Order.WhenCancelled().D0(()=>).Apply(this)