Михаил Сухов Koal Такая же проблема при отправке ордеров через квик по дде. Не всегда отрабатывает событие регистрации заявки. Заявка появляется в системе, но статус у нее Accepted и State = None. При попытке ее отменить выдается исключение - Заявка была ранее отправлена на отмену.
Переход на 4.1.13.1 не помог. Ошибка появляется стабильно.
Через Sample это можно воспроизвести?
На счет Sample не знаю. Приведу текст, как я подписываюсь на сообщения ордера, может в этом какая-то проблема.
StockSharp.BusinessEntities.Order ssOrd = new StockSharp.BusinessEntities.Order()
{
Trader = tr,
Portfolio = tConnection.Trade.Account.ssPortfolio,
Security = tConnection.Trade.Instrument.ssInstrument,
Comment = "",
Direction = _order.type.HasFlag(GISMO.Trade.Order.OrderType.Buy) ? StockSharp.BusinessEntities.OrderDirections.Buy : StockSharp.BusinessEntities.OrderDirections.Sell,
Price = (decimal)_order.price,
Type = StockSharp.BusinessEntities.OrderTypes.Limit,
Volume = _order.amount
};
var ruleRegFail = ssOrder.WhenRegisterFailed();
var ruleReg = ssOrder.WhenRegistered();
ruleReg.Do((StockSharp.BusinessEntities.Order _ssOrd) =>
{
//...
})
.Apply()
.Exclusive(ruleRegFail);
ruleRegFail.Do((StockSharp.BusinessEntities.OrderFail f) =>
{
//...
})
.Apply()
.Exclusive(ruleReg);
var ruleCancelled = ssOrder.WhenCanceled();
ruleCancelled.Do((StockSharp.BusinessEntities.Order _ssOrd) =>
{
//...
})
.Apply();
ssOrder.WhenCancelFailed().Do((StockSharp.BusinessEntities.OrderFail f) =>
{
//...
})
.Apply();
var ruleMatched = ssOrder.WhenMatched();
ruleMatched.Do(() =>
{
StockSharp.Algo.MarketRuleHelper.DefaultRuleContainer.Rules.RemoveRulesByToken(ruleMatched.Token, ruleMatched);
//...
})
.Apply();
ssOrder.WhenPartiallyMatched().Do(() =>
{
//...
}).Apply();
ssOrder.WhenNewTrades().Do((IEnumerable<MyTrade> trades) =>
{
//...
})
.Apply();
Trader.RegisterOrder(ssOrd);