3.1.6 MarketQuotingStrategy баг?
Atom
01.05.2011
Garry


Михаил, добрый день! Перешел на 3.1.6 c 3.1.1 Перестала работать MarketQuotingStrategy. После того как один раз заявка снимается, стратегия подвисает, после ее принудительной остановки пытается убить несуществующую заявку. Вот лог:

MQS 01.05.2011 13:58:35 Регистрация новой заявки на Buy с ценой 99.64 и объемом 3. MQS 01.05.2011 13:58:36 Заявка 50272367 на Buy отправлена с ценой 99.64 объемом 3. MQS 01.05.2011 13:58:40 Котирование заявки 50272367 на Buy с ценой 99.64 объемом 3. MQS 01.05.2011 13:58:40 Цена текущей 99.64 и лучшей 99.69. MQS 01.05.2011 13:58:40 Отмена заявки 50272367.

Заявка отменяется, MQS виснет. Далее принудительно ее останавливаю, пытается убить уже несущесвующую заявку:

MQS 01.05.2011 13:59:46 Стратегия останавливается. MQS 01.05.2011 13:59:47 Котирование отменяет заявку 50272367. MQS 01.05.2011 13:59:47 Ошибка System.ArgumentException: Транзакции 'CLASSCODE=QJSIM; SECCODE=SBER03; TRANS_ID=50272369; ACTION=KILL_ORDER; ORDER_KEY=1199915739;' не была зарегистрирована. Причина 'Вы не можете снять данную заявку'. Имя параметра: transactionTxt в #=qhKG8RtfGVww7eZIAkvFBI1xL6leMRLhWXlYuldG3xi4=.#=q1$n3X3R95hfBt0lXIw0gd592zQL49Pvwv24pjPqutAg=(String #=qRoY7Nt6B5m0Fj1yxkFndyw==, OrderStatus& #=qEzpm3nWQplQT7CavV9Ps6w==, UInt32& #=qzQ4byfcQSvO073OhhbBKPw==, Int64& #=qnF0705Wdr_qmOlb6D7WoAg==, String& #=qp3R$jGQXUdd2tFIwstrbNQ==) в Ecng.Trading.Quik.QuikTrader.#=q9Yz4CZGz_k3rckOM8XLlQQj8rL5Xum0$PH2gpcFuL7s=(Order #=qJq4Hn1w49mesxa$RyMn$6Q==, TransactionBuilder #=qa3L7aES2N4f1oP4U9oXn2A==) в Ecng.Trading.Quik.QuikTrader.OnCancelOrder(Order order) в Ecng.Trading.Algo.BaseTrader.CancelOrder(Order order) в Ecng.Trading.Algo.Strategies.QuotingStrategy.OnProcess() в Ecng.Trading.Algo.Strategies.Strategy.#=qpQ272Xx_dvOaKhhInTHFf9Sq3vtdJ0cSymO74LcXaS8=.#=qHJ8E8Lriu9rmZEdxpxEkmQ==() MQS 01.05.2011 13:59:48 Котирование отменяет заявку 50272367. MQS 01.05.2011 13:59:48 Ошибка System.ArgumentException: Транзакции 'CLASSCODE=QJSIM; SECCODE=SBER03; TRANS_ID=50272370; ACTION=KILL_ORDER; ORDER_KEY=1199915739;' не была зарегистрирована. Причина 'Вы не можете снять данную заявку'. Имя параметра: transactionTxt в #=qhKG8RtfGVww7eZIAkvFBI1xL6leMRLhWXlYuldG3xi4=.#=q1$n3X3R95hfBt0lXIw0gd592zQL49Pvwv24pjPqutAg=(String #=qRoY7Nt6B5m0Fj1yxkFndyw==, OrderStatus& #=qEzpm3nWQplQT7CavV9Ps6w==, UInt32& #=qzQ4byfcQSvO073OhhbBKPw==, Int64& #=qnF0705Wdr_qmOlb6D7WoAg==, String& #=qp3R$jGQXUdd2tFIwstrbNQ==) в Ecng.Trading.Quik.QuikTrader.#=q9Yz4CZGz_k3rckOM8XLlQQj8rL5Xum0$PH2gpcFuL7s=(Order #=qJq4Hn1w49mesxa$RyMn$6Q==, TransactionBuilder #=qa3L7aES2N4f1oP4U9oXn2A==) в Ecng.Trading.Quik.QuikTrader.OnCancelOrder(Order order) в Ecng.Trading.Algo.BaseTrader.CancelOrder(Order order) в Ecng.Trading.Algo.Strategies.QuotingStrategy.OnProcess() в Ecng.Trading.Algo.Strategies.Strategy.#=qpQ272Xx_dvOaKhhInTHFf9Sq3vtdJ0cSymO74LcXaS8=.#=qHJ8E8Lriu9rmZEdxpxEkmQ==() MQS 01.05.2011 13:59:49 Котирование отменяет заявку 50272367. MQS 01.05.2011 13:59:49 Ошибка System.ArgumentException: Транзакции 'CLASSCODE=QJSIM; SECCODE=SBER03; TRANS_ID=50272371; ACTION=KILL_ORDER; ORDER_KEY=1199915739;' не была зарегистрирована. Причина 'Вы не можете снять данную заявку'. Имя параметра: transactionTxt в #=qhKG8RtfGVww7eZIAkvFBI1xL6leMRLhWXlYuldG3xi4=.#=q1$n3X3R95hfBt0lXIw0gd592zQL49Pvwv24pjPqutAg=(String #=qRoY7Nt6B5m0Fj1yxkFndyw==, OrderStatus& #=qEzpm3nWQplQT7CavV9Ps6w==, UInt32& #=qzQ4byfcQSvO073OhhbBKPw==, Int64& #=qnF0705Wdr_qmOlb6D7WoAg==, String& #=qp3R$jGQXUdd2tFIwstrbNQ==) в Ecng.Trading.Quik.QuikTrader.#=q9Yz4CZGz_k3rckOM8XLlQQj8rL5Xum0$PH2gpcFuL7s=(Order #=qJq4Hn1w49mesxa$RyMn$6Q==, TransactionBuilder #=qa3L7aES2N4f1oP4U9oXn2A==) в Ecng.Trading.Quik.QuikTrader.OnCancelOrder(Order order) в Ecng.Trading.Algo.BaseTrader.CancelOrder(Order order) в Ecng.Trading.Algo.Strategies.QuotingStrategy.OnProcess() в Ecng.Trading.Algo.Strategies.Strategy.#=qpQ272Xx_dvOaKhhInTHFf9Sq3vtdJ0cSymO74LcXaS8=.#=qHJ8E8Lriu9rmZEdxpxEkmQ==()


Теги:


Спасибо:


< 1 2 
Garry

Фотография
Дата: 02.05.2011
Ответить


Mikhail Sukhov: У вас OrdersChanged так часто вызывается?

Да почему-то вот так происходит. На 3.1.1 на том же квике, с теми же настройками, все в порядке.

Спасибо:

Mikhail Sukhov

Фотография
Дата: 02.05.2011
Ответить


Garry:

Mikhail Sukhov: У вас OrdersChanged так часто вызывается?

Да почему-то вот так происходит. На 3.1.1 на том же квике, с теми же настройками, все в порядке.

И такой же логирующий код присутствует?

  • попробуйте QuikTrader.CancelOrderInstantly = true.
Спасибо:

Garry

Фотография
Дата: 02.05.2011
Ответить


Mikhail Sukhov:

Garry:

Mikhail Sukhov: У вас OrdersChanged так часто вызывается?

Да почему-то вот так происходит. На 3.1.1 на том же квике, с теми же настройками, все в порядке.

И такой же логирующий код присутствует?

  • попробуйте QuikTrader.CancelOrderInstantly = true.

Спасибо огромное QuikTrader.CancelOrderInstantly = true помогло,а с логированием напутал конечно, не в том месте на скорую руку добавил, так часто не должно событие вызываться.

Спасибо:

Mikhail Sukhov

Фотография
Дата: 02.05.2011
Ответить


Garry: Спасибо огромное QuikTrader.CancelOrderInstantly = true помогло,а с логированием напутал конечно, не в том месте на скорую руку добавил, так часто не должно событие вызываться.

Тоесть события все же вызываются не так часто? Даже при QuikTrader.CancelOrderInstantly = false?

Спасибо:

Garry

Фотография
Дата: 02.05.2011
Ответить


Mikhail Sukhov:

Garry: Спасибо огромное QuikTrader.CancelOrderInstantly = true помогло,а с логированием напутал конечно, не в том месте на скорую руку добавил, так часто не должно событие вызываться.

Тоесть события все же вызываются не так часто? Даже при QuikTrader.CancelOrderInstantly = false?

Нет вызываются нормально даже при QuikTrader.CancelOrderInstantly = false. Просто не там поставил скобку, и получилось, что весь код логирования оказался в обработчике события новых сделок из таблицы всех сделок.

Спасибо:

Mikhail Sukhov

Фотография
Дата: 02.05.2011
Ответить


Garry:

Mikhail Sukhov:

Garry: Спасибо огромное QuikTrader.CancelOrderInstantly = true помогло,а с логированием напутал конечно, не в том месте на скорую руку добавил, так часто не должно событие вызываться.

Тоесть события все же вызываются не так часто? Даже при QuikTrader.CancelOrderInstantly = false?

Нет вызываются нормально даже при QuikTrader.CancelOrderInstantly = false. Просто не там поставил скобку, и получилось, что весь код логирования оказался в обработчике события новых сделок из таблицы всех сделок.

Я новую версию залил с фиксом вашей ситуации. Можете ее проверить? QuikTrader.CancelOrderInstantly = false

Спасибо:

Garry

Фотография
Дата: 03.05.2011
Ответить


Mikhail Sukhov:

Garry:

Mikhail Sukhov:

Garry: Спасибо огромное QuikTrader.CancelOrderInstantly = true помогло,а с логированием напутал конечно, не в том месте на скорую руку добавил, так часто не должно событие вызываться.

Тоесть события все же вызываются не так часто? Даже при QuikTrader.CancelOrderInstantly = false?

Нет вызываются нормально даже при QuikTrader.CancelOrderInstantly = false. Просто не там поставил скобку, и получилось, что весь код логирования оказался в обработчике события новых сделок из таблицы всех сделок.

Я новую версию залил с фиксом вашей ситуации. Можете ее проверить? QuikTrader.CancelOrderInstantly = false

Проверил, работает и при QuikTrader.CancelOrderInstantly = false, Спасибо!

Спасибо:
< 1 2 

Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy