← Zurück

Снятие заявки

Доброго времени суток. У меня такая проблема: При использовании метода RegisterOrder(Order order) заявка успешно вытавляется, но как только доходит до снятии одной или всех заявок, то это посто беда. Одна и та же ошибка как при использовании метода CancelOrder(Order order), так и при ReRegisterOrder(Order old_order, Order new_order). Текст ошибки: "Код ошибки Failed Сообщение Вы не можете снять данную заявку".

  1. Я использую Sync режим для данной операции
  2. Пробовал устанавливать залипание на секунду
  3. Ждал, когда заявка опубликуется и тогда пытался ее снять (while(order.Staus == OrderStatus.Accepted) { trader.ReRegisterOrder(old_order, order_buy); })
  4. Перечитал и просмотрел все примеры. Прошурстел все форумы и просто вылизал документацию API

В чем может быть причина?

Выставление и снятие заявки выполняется при this.trader.MarketDepthsChanged += depths => this.GuiSync(() => { выставление .... снятие }

Заранее спасибо за ответ!

War dieses Thema hilfreich?

Thema teilen

Kommentare (4)

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

COBRA
COBRA

тоже долго не получалось в свое время. у меня проблема была с полями Order в СтокШарпе важно для снятия заявки - знать два ID Order.ID и Order.TradsactionID и еще Price вроде.

DerBunny
DerBunny Autor

COBRA: тоже долго не получалось в свое время. у меня проблема была с полями Order в СтокШарпе важно для снятия заявки - знать два ID Order.ID и Order.TradsactionID и еще Price вроде.

Т.е. после отправки заявки, мы получаем всю ее информацию, как только она станет активной в Quik. И чтобы снять заявку, мы должны в методе CancelOrder(Order order), указать объект, в отором важными параметрами будут Order.TransactionId, Order.ID и Order.Price?

DerBunny
DerBunny Autor

TtansactionId генерируется программой, поэтому из-за него проблем не должно быть. Выводил через MessageBox.Show(order.TransactionId.ToString()) - выводит все корректно. Что касается ID, то ID генерируется биржей и при выводе этого параметра, он равен 0. При ручном определении order.Id = random, выходит ошибка "Заявка уже имеет номер, возможно она была уже зарегистрирована". Подскажите, в чем все же проблема, не могу снять эту поганую заявку, а API не предоставляет более конкретного описания ошибки, чем "Вы не можете снять данную заявку". У меня даже trader.CancelOrders() не работает.

COBRA
COBRA

"Что касается ID, то ID генерируется биржей и при выводе этого параметра, он равен 0"

ID не должен быть 0. Генерит его биржа посмотреть его можно в QUIK

TransactionId тоже можно увидеть в QUIK в таблице транзакции

у вас портится Order.ID похоже. Попробуйте пример СтокШарповский