выставление стоп заявок

выставление стоп заявок
Atom
2/9/2011


Пытаюсь зарегистрировать стоп заявку


public void NewOrder(Order order)
{
if (order == null)
throw new ArgumentNullException("order");
order.Portfolio = (Portfolio)this.Portfolios.SelectedValue;

this._trader.RegisterOrder(order);
}


мне выдает

Вызывающий поток не может получить доступ к данному объекту, так как владельцем этого объекта является другой поток.


Tags:


Thanks:


1 2  >
Alexander

Avatar
Date: 2/10/2011
Reply


mr leng Go to
Пытаюсь зарегистрировать стоп заявку


public void NewOrder(Order order)
{
if (order == null)
throw new ArgumentNullException("order");
order.Portfolio = (Portfolio)this.Portfolios.SelectedValue;

this._trader.RegisterOrder(order);
}


мне выдает

Вызывающий поток не может получить доступ к данному объекту, так как владельцем этого объекта является другой поток.




Всё правильно пишет.
Значит NewOrder работает в другом потоке чем был создан this.Portfolios.
Поэтому доступ к объекту this.Portfolios.SelectedValue невозможен
Thanks:

Greene-nsk

Avatar
Date: 2/10/2011
Reply


mr leng Go to
Пытаюсь зарегистрировать стоп заявку


public void NewOrder(Order order)
{
if (order == null)
throw new ArgumentNullException("order");
order.Portfolio = (Portfolio)this.Portfolios.SelectedValue;

this._trader.RegisterOrder(order);
}


мне выдает

Вызывающий поток не может получить доступ к данному объекту, так как владельцем этого объекта является другой поток.



Используйте Dispatcher и Invoke, или this.GuiAsync(Action), которую Михаил написал - можно в примерах посмотреть.
Thanks: mr leng

mr leng

Avatar
Date: 2/10/2011
Reply


спасибо)
Thanks:

mr leng

Avatar
Date: 2/10/2011
Reply


еще такой вопросик возник))) насколько я понял id в стоп-заявке не возвращается, но есть TransactionId, но по TransactionId не получается отменить стоп-заявку(
как можно отменить конкретную стоп-заявку или узнать что именно она исполнилась?
Thanks:

Mikhail Sukhov

Avatar
Date: 2/10/2011
Reply


mr leng Go to
еще такой вопросик возник))) насколько я понял id в стоп-заявке не возвращается, но есть TransactionId, но по TransactionId не получается отменить стоп-заявку(
как можно отменить конкретную стоп-заявку или узнать что именно она исполнилась?


В примере Sample для стоп заявок ID появляется?
Thanks:

mr leng

Avatar
Date: 2/10/2011
Reply


нет)
но там же мы сами ручками выбираем ордер который снимем
Thanks:

Mikhail Sukhov

Avatar
Date: 2/10/2011
Reply


mr leng Go to
нет)


Таблица стоп заявок довольно сложная. Думаю колонку какую забыли добавить.

mr leng Go to

но там же мы сами ручками выбираем ордер который снимем


А дальше пример как Квику говорит что снять? Вот ту, третьей с верху?
Thanks:

mr leng

Avatar
Date: 2/10/2011
Reply


)))))
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);

на что получаю ответ что последовательность не содержит соответствующий элемент хотя заявка уже зарегистрированна
Thanks:

Mikhail Sukhov

Avatar
Date: 2/10/2011
Reply


mr leng Go to
)))))
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 неправильный. Запустите отладчик и посмотрите, что за значение и какие есть заявки?
Thanks:

mr leng

Avatar
Date: 2/10/2011
Reply


на обычные ордера id получается сразу а на стоп-ордера null
насколько понимаю надо через StopOrdersFailed проверять регистрацию заявки и оттуда брать id??
Thanks:
1 2  >

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

loading
clippy