Пытаюсь зарегистрировать стоп заявку
public void NewOrder(Order order) { if (order == null) throw new ArgumentNullException("order"); order.Portfolio = (Portfolio)this.Portfolios.SelectedValue;
this._trader.RegisterOrder(order);
}
мне выдает
Вызывающий поток не может получить доступ к данному объекту, так как владельцем этого объекта является другой поток.
Kommentare (12)
Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen
Всё правильно пишет. Значит NewOrder работает в другом потоке чем был создан this.Portfolios. Поэтому доступ к объекту this.Portfolios.SelectedValue невозможен
Используйте Dispatcher и Invoke, или this.GuiAsync(Action), которую Михаил написал - можно в примерах посмотреть.
спасибо)
еще такой вопросик возник))) насколько я понял id в стоп-заявке не возвращается, но есть TransactionId, но по TransactionId не получается отменить стоп-заявку( как можно отменить конкретную стоп-заявку или узнать что именно она исполнилась?
В примере Sample для стоп заявок ID появляется?
нет) но там же мы сами ручками выбираем ордер который снимем
Таблица стоп заявок довольно сложная. Думаю колонку какую забыли добавить.
А дальше пример как Квику говорит что снять? Вот ту, третьей с верху?
))))) var order = this.SelectedOrder; this.CancelOrder.IsEnabled = order != null && order.State == OrderStates.Active;
я пробую снять заявку таким образом var or = base.Trader.Orders.First(o => o.Id == _id); base.Trader.CancelOrder(or);
на что получаю ответ что последовательность не содержит соответствующий элемент хотя заявка уже зарегистрированна
Дык, это значит, что по _id нет такой заявки. Может она еще не пришла, может сам _id неправильный. Запустите отладчик и посмотрите, что за значение и какие есть заявки?
на обычные ордера id получается сразу а на стоп-ордера null насколько понимаю надо через StopOrdersFailed проверять регистрацию заявки и оттуда брать id??
StopOrdersFailed возникает , когда заявка не может быть выставлена, например. Тогда ее и не будет в ITrader.Orders. А для обычных заявок Вы где _id берете? Там же и для стоп ордеров берите.
Для обычных заявок сразу после регистрации заявки получаю id но почему-то с стоп-заявкой так не проходит
получаю таким образом, но id всегда пустой а ids через раз(