Стратегия создается следующим образом:
_strategy = new MarketDepthStrategy()
{
Volume = 1,
Security = _security,
Portfolio = _portfolio,
Trader = _trader,
};
_logManager.Sources.Add(_strategy);
_strategy.Start();
В самой стратегии пытаюсь создать и зарегистрировать заявку
следующим образом:
var order = this.CreateOrder(OrderDirections.Buy, Security.BestBid.Price, 1);
order
.WhenNewTrades()
.Do(OnNewOrderTrades)
.Apply(this);
order
.WhenRegisterFailed()
.Do(LogFailure)
.Apply(this);
RegisterOrder(order);
Регистрации заявки не происходит и в логе получаю:
2012.10.18 14:57:47.065| |MDS_MTLR@EQBR_191600|Стратегия запущена. [0,-1]. Позиция при старте 0.
2012.10.18 14:57:48.892|Error |MDS_MTLR@EQBR_191600|Заявка 53862713 не была принята по причине StockSharp.Quik.ApiException: Код ошибки Failed Сообщение Неверный код клиента.
2012.10.18 14:57:48.904| |MDS_MTLR@EQBR_191600|Заявка 53862713 больше не активна.
Если заявку в стратегии пытаюсь создать и зарегистрировать другим образом:
var order = new Order
{
Price = this.Security.BestBid.Price,
Volume = 1,
Direction = OrderDirections.Buy,
};
order
.WhenNewTrades()
.Do(OnNewOrderTrades)
.Apply(this);
order
.WhenRegisterFailed()
.Do(LogFailure)
.Apply(this);
RegisterOrder(order);
В таком случае заявка регистрируется, но при срабатывании дочерних стратегий
типа TakeProfitStrategy получаю туже самую проблему с "Неверный код клиента".
Так что я бы не сказал, что этот код работает как хотелось бы.
Готов оплатить консультацию/тех. поддержку так как не уверен, что проблема в библиотеке.
Спасибо!