trader.FormatTransaction += transaction => transaction.SetClientCode("100820");
trader.FormatTransaction += transaction => transaction.SetVolume(100);
указав явно в транзакции код, как оказалось, пришлось указывать и обьем...
все заработало, но теперь снимать эти заявки через trader.CancelOrders(фильтр) или еще как то - нельзя.
Выдает вот что:
2013/06/06 13:59:20.237| |SSS_CEEN@UX_100820|Стратегия запущена. [0,-1]. Позиция при старте 0.
2013/06/06 13:59:20.282| |MQS_CEEN@UX_100820|Стратегия запущена. [0,1]. Позиция при старте 0.
2013/06/06 13:59:20.283| |MQS_CEEN@UX_100820|Котирование на Sell объема 1.
2013/06/06 13:59:20.284| |MQS_CEEN@UX_100820|Приостановка правил. _rulesSuspendCount 1.
2013/06/06 13:59:20.302| |MQS_CEEN@UX_100820|Возобновление правил. _rulesSuspendCount 0.
2013/06/06 13:59:20.317| |MQS_CEEN@UX_100820|Цена текущей NULL и лучшей 4,403.
2013/06/06 13:59:20.317| |MQS_CEEN@UX_100820|Лучший бид NULL и лучший аск NULL.
2013/06/06 13:59:20.324| |MQS_CEEN@UX_100820|Регистрация новой Limit (0x374A867) заявки на Sell с ценой 4,403 и объемом 1.
2013/06/06 13:59:20.461|Error |MQS_CEEN@UX_100820|Заявка 50352676 (0x374A867) не была принята по причине System.Threading.LockRecursionException: В этом режиме не разрешены рекурсивные приобретения блокировки записи.
в StockSharp.Quik.QuikTrader.RegisterTransaction(Transaction transaction)
в StockSharp.Quik.QuikTrader.OnRegisterOrder(Order order)
в StockSharp.Algo.BaseTrader.RegisterOrder(Order order).
2013/06/06 13:59:20.466|Error |MQS_CEEN@UX_100820|Заявка 50352676 не принята биржей по причине 'В этом режиме не разрешены рекурсивные приобретения блокировки записи.'.
2013/06/06 13:59:20.467| |MQS_CEEN@UX_100820|Текущее кол-во ошибок 1. Максимальное 100.
2013/06/06 13:59:20.467| |MQS_CEEN@UX_100820|Цена текущей NULL и лучшей 4,403.
2013/06/06 13:59:20.467| |MQS_CEEN@UX_100820|Лучший бид 4,38 и лучший аск 4,404.
2013/06/06 13:59:20.467| |MQS_CEEN@UX_100820|Регистрация новой Limit (0x341345D) заявки на Sell с ценой 4,403 и объемом 1.
2013/06/06 13:59:20.721| |SSS_CEEN@UX_100820|Новая позиция: 100820-CEEN@UX=99.
2013/06/06 13:59:20.726| |MQS_CEEN@UX_100820|Новая позиция: 100820-CEEN@UX=99.
2013/06/06 13:59:20.914| |MQS_CEEN@UX_100820|Позиция изменилась на 99. Оставшийся объем -98.
2013/06/06 13:59:20.914| |MQS_CEEN@UX_100820|Заканчиваем котирование.
2013/06/06 13:59:20.916| |MQS_CEEN@UX_100820|Стратегия останавливается. [0,1]. Позиция при старте 99.
2013/06/06 13:59:20.920| |MQS_CEEN@UX_100820|Правило 'Изменение стакана инструмента CEEN@UX (0x21AF1A5)'. Приостановлено.
2013/06/06 13:59:20.925| |MQS_CEEN@UX_100820|Ожидание снятия всех активных заявок.
2013/06/06 13:59:20.931| |MQS_CEEN@UX_100820|Отмена заявки 50352676.
2013/06/06 13:59:20.989|Error |MQS_CEEN@UX_100820|System.InvalidOperationException: Транзакция 'CLASSCODE=GTS; SECCODE=CEEN; ORDER_KEY=0; ACTION=KILL_ORDER; TRANS_ID=50352678; CLIENT_CODE=100820; QUANTITY=100;' не была зарегистрирована. Причина 'Вы не можете снять данную заявку'.
в StockSharp.Quik.QuikTrader.RegisterTransaction(Transaction transaction)
в StockSharp.Quik.QuikTrader.OnCancelOrder(Order order)
в StockSharp.Algo.BaseTrader.CancelOrder(Order order)
в StockSharp.Algo.Strategies.Strategy.#=qxzPu2iHWuvn_zxvI9KER6E7zV7ZeSx0lx5gmJPCzrF8=(Order #=qmCVH59OmTnP6dM_iH$xuyQ==)
в StockSharp.Algo.Strategies.Strategy.#=qfEdBj0Rc7NnXhD7vCfecDE$T$IQub7LkWbO$_STdqytwqbW4CaJq0mIRYZosAt7T(Order #=qSy7qlVSDDWQnWqFCXlcV0A==)
в Ecng.Collections.CollectionHelper.ForEach[T](IEnumerable`1 source, Action`1 action)
в StockSharp.Algo.Strategies.Strategy.#=q_SvJvUxJcrg5geypnfdBT$0TD_AmaMmMkIlPreredgI=()
в StockSharp.Algo.Strategies.Strategy.#=q4Vjqp5booV7IQdXIgyGlo85pWPA8SEOTHD7k7HoqLVw=(ProcessStates #=qXPUjcWlGh9Cr6gtJEwp6Mg==)
в StockSharp.Algo.Strategies.Strategy.Stop()
в StockSharp.Algo.Strategies.QuotingStrategy.#=quJJ66$B0UoPkEWPFMUbYFUYA4yv4Mnws4aVcYx3xyKw=()
в StockSharp.Algo.MarketRule`2.#=q7L98I26Wj9gUHVZVvYhjfNmvDWVbzzwXggGYrb6OKyQ=.#=qlYQnxf18dU6h8iYG0VgkAQ==(#=qvr5BgeY6d49b0wPGzxamhw== #=ql6p6agGBfPKLz1XmB5CubA==)
в StockSharp.Algo.MarketRule`2.#=q$EDkGbMRa981JHTAbo$_bZPD5A4kZHGnLjsL$YqXasw=()
в StockSharp.Algo.MarketRuleHelper.#=qH2Y4Je3rhWV957$s7ps2yw==(IMarketRuleContainer #=qJpv0YbmmXNN9ri$CoYbEXw==, IMarketRule #=qWka7BzS$FJQ4leJX6BPhPg==, Func`1 #=qdJohKodKMjdrTUKlaOZXCg==)
в StockSharp.Algo.Strategies.Strategy.#=qhBqOxQ5SIAbyY2y6N4BACOwIZpzjdVxd3qFW06_7OgM0tQM6wJbNghxpuK7RYc7MClbCYLtb7iXjJB0B0nSiAA==(IMarketRule #=qNNh7Xd9rPYJBZBVS_X7gig==, Func`1 #=qhxFvJ7$pKfzObQ00FWkAIw==)
2013/06/06 13:59:20.992| |MQS_CEEN@UX_100820|Заявка 50352676 больше не активна.
2013/06/06 13:59:20.992| |MQS_CEEN@UX_100820|Заявка 50352676 больше не активна.
2013/06/06 13:59:20.993|Error |MQS_CEEN@UX_100820|Заявка 50352677 (0x341345D) не была принята по причине System.Threading.LockRecursionException: В этом режиме не разрешены рекурсивные приобретения блокировки записи.
в StockSharp.Quik.QuikTrader.RegisterTransaction(Transaction transaction)
в StockSharp.Quik.QuikTrader.OnRegisterOrder(Order order)
в StockSharp.Algo.BaseTrader.RegisterOrder(Order order).
но это при trader.IsAsyncMode = false.
если асинхронний режим включить, то все работает отлично, но только нужно указать в транзакциях код клиента и обьем.
А это не удобно 😢