[3.0.13] RealTimeTestTrader котирование

[3.0.13] RealTimeTestTrader котирование
Atom
3/10/2011
vvt


При запуске стратегии с котированием через RealTimeTestTrader<QuikTrader> вылезает ошибка:

Quote:
Регистрация новой заявки на Sell с ценой 198755 и объемом 1.
Заявка 0 на Sell отправлена с ценой 198755 объемом 1.
Цена текущей 198755 и лучшей 198750.
Котирование заявки 0 на Sell с ценой 198755 объемом 1.
System.ArgumentException: Заявка не имеет информацию о шлюзе.
в Ecng.Trading.Algo.TraderHelper.GuarantyCancelOrder(Order order)
в Ecng.Trading.Algo.Strategies.Strategy.ReRegisterOrder(Order oldOrder, Func`
1 getNewPrice, Func`1 getNewVolume, Boolean isForts)
в Ecng.Trading.Algo.Strategies.QuotingStrategy.OnProcess()
в Ecng.Trading.Algo.Strategies.Strategy.#=q_7aAU8b_zEypCQ8s7GI9rpJ4uiSQ4jqTKo
3$1bhmZoo=.#=q1xDZDIblA8UZbmo72Ys1aA==()
Стратегия останавливается.
Котирование закончилось.
Стратегия остановлена.



Thanks:


Mikhail Sukhov

Avatar
Date: 3/10/2011
Reply


Это бага. Нашел, исправил.
Thanks:

vvt

Avatar
Date: 3/11/2011
Reply


В [3.0.15] вылезает новая ошибка:
Quote:
Регистрация новой заявки на Sell с ценой 192615 и объемом 1.
Заявка 0 на Sell отправлена с ценой 192615 объемом 1.
Цена текущей 192615 и лучшей 192580.
Котирование заявки 0 на Sell с ценой 192615 объемом 1.
Перекотирование зарегистрировано для заявки 0 на Sell с ценой 192580 объемом 1.
Регистрация новой заявки на Sell с ценой 192575 и объемом 1.
System.ArgumentException: Элемент с тем же ключом уже был добавлен.
в System.ThrowHelper.ThrowArgumentException(ExceptionResource resource)
в System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Bool
ean add)
в System.Collections.Generic.Dictionary`2.Add(TKey key, TValue value)
в Ecng.Collections.SynchronizedDictionary`2.Add(TKey key, TValue value)
в Ecng.Trading.Algo.Testing.MarketEmulator.RegisterOrder(Order order)
в Ecng.Trading.Algo.Testing.RealTimeTestTrader`1.RegisterOrder(Order order)
в Ecng.Trading.Algo.Strategies.Strategy.RegisterOrder(Order order)
в Ecng.Trading.Algo.Strategies.QuotingStrategy.OnProcess()
в Ecng.Trading.Algo.Strategies.Strategy.#=qlk_i3K12UJa3_LLaMVMXYPk$7APjSIk44H
EUYVw9YJo=.#=qhXUBFTZNCmdZlGRY6660QQ==()
Стратегия останавливается.
Котирование закончилось.
Стратегия остановлена.
Thanks:

Mikhail Sukhov

Avatar
Date: 3/11/2011
Reply


У вас какая-то интересная ошибка, если еще судить и по тому, что Вы пишите в форуме Смарт. Вы точно второй раз котирование для одной и той же заявки не вызываете?
Thanks:

vvt

Avatar
Date: 3/12/2011
Reply


Quote:
У вас какая-то интересная ошибка, если еще судить и по тому, что Вы пишите в форуме Смарт. Вы точно второй раз котирование для одной и той же заявки не вызываете?

Я в той теме привел кусок кода, в котором вызывается котирование, посмотрите, пожалуйста.
Thanks:

vvt

Avatar
Date: 3/15/2011
Reply


в [3.0.17] ошибка осталась
Quote:
Регистрация новой заявки на Sell с ценой 185370 и объемом 1.
Заявка 0 на Sell отправлена с ценой 185370 объемом 1.
Цена текущей 185370 и лучшей 185380.
Котирование заявки 0 на Sell с ценой 185370 объемом 1.
Перекотирование зарегистрировано для заявки 0 на Sell с ценой 185380 объемом 1.
Регистрация новой заявки на Sell с ценой 185390 и объемом 1.
System.ArgumentException: Элемент с тем же ключом уже был добавлен.
в System.ThrowHelper.ThrowArgumentException(ExceptionResource resource)
в System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Bool
ean add)
в System.Collections.Generic.Dictionary`2.Add(TKey key, TValue value)
в Ecng.Collections.SynchronizedDictionary`2.Add(TKey key, TValue value)
в Ecng.Trading.Algo.Testing.MarketEmulator.RegisterOrder(Order order)
в Ecng.Trading.Algo.Testing.RealTimeTestTrader`1.RegisterOrder(Order order)
в Ecng.Trading.Algo.Strategies.Strategy.RegisterOrder(Order order)
в Ecng.Trading.Algo.Strategies.QuotingStrategy.OnProcess()
в Ecng.Trading.Algo.Strategies.Strategy.#=qlk_i3K12UJa3_LLaMVMXYPk$7APjSIk44H
EUYVw9YJo=.#=qH9mLm2wisiWKeD6XmUBF1w==()
Стратегия останавливается.
Котирование закончилось.
Стратегия остановлена.
Thanks:

Mikhail Sukhov

Avatar
Date: 3/15/2011
Reply


vvt
в [3.0.17] ошибка осталась


Каким образом тот пример с котированием необходимо переделать, чтобы использовался RealTimeTestTrader?
Thanks:

vvt

Avatar
Date: 3/15/2011
Reply


Code
        private static QuikTrader _trader;
        //private static RealTimeTestTrader<QuikTrader> _trader;

Code
                    using (_trader = new QuikTrader(@"C:\FinamJunior\info.exe"))
                    //using (_trader = new RealTimeTestTrader<QuikTrader>(new QuikTrader(@"C:\FinamJunior\info.exe")))

Code
                        _trader.IsAsyncMode = true;
                        //_trader.Trader.IsAsyncMode = true;

Code
                        _trader.Terminal.StartDde(_trader.SecuritiesTable, _trader.DerivativePortfoliosTable, _trader.OrdersTable, _trader.MyTradesTable);
                        //_trader.Trader.Terminal.StartDde(_trader.Trader.SecuritiesTable, _trader.Trader.DerivativePortfoliosTable, _trader.Trader.OrdersTable, _trader.Trader.MyTradesTable);

Code
                        _trader.Terminal.StopDde(_trader.SecuritiesTable, _trader.DerivativePortfoliosTable, _trader.OrdersTable, _trader.MyTradesTable);
                        //_trader.Trader.Terminal.StopDde(_trader.Trader.SecuritiesTable, _trader.Trader.DerivativePortfoliosTable, _trader.Trader.OrdersTable, _trader.Trader.MyTradesTable);


Я при проверке RealTimeTestTrader комментирую и раскомментирую приведенные участки кода, в стратегии ничего не меняю.
Thanks: lshaton

vvt

Avatar
Date: 3/16/2011
Reply


[3.0.18]
Теперь не вываливается, но судя по логу, котирование работает как-то странно:
Quote:
Производим подключение...
Подключение было произведено успешно.
Инструмент RIM1 появился.
Портфель SPBFUT00835 появился.
Экспорт по DDE запущен.
Заявка на продажу создана.
Заявка зарегистрирована.
Котирование закончено.
Стратегия запущена.
Стратегия запущена.
Чтобы закончить, нажмите любую клавишу...
Регистрация новой заявки на Sell с ценой 186170 и объемом 1.
Заявка 59007113 на Sell отправлена с ценой 186170 объемом 1.
Заявка 59007113 не имеет состояния.
Заявка 59007113 не имеет состояния.
Заявка 59007113 не имеет состояния.
Заявка 59007113 не имеет состояния.
Заявка 59007113 не имеет состояния.
Заявка 59007113 не имеет состояния.
Заявка 59007113 не имеет состояния.
Заявка 59007113 не имеет состояния.
Цена текущей 186170 и лучшей 186160.
Котирование заявки 59007113 на Sell с ценой 186170 объемом 1.
Перекотирование зарегистрировано для заявки 59007114 на Sell с ценой 186160 объемом 1.
Заявка 59007114 не имеет состояния.
Цена текущей 186160 и лучшей 186170.
Котирование заявки 59007114 на Sell с ценой 186160 объемом 1.
Перекотирование зарегистрировано для заявки 59007115 на Sell с ценой 186170 объемом 1.
Заявка 59007115 не имеет состояния.
Цена текущей 186170 и лучшей 186175.
Котирование заявки 59007115 на Sell с ценой 186170 объемом 1.
Перекотирование зарегистрировано для заявки 59007116 на Sell с ценой 186175 объемом 1.
Цена текущей 186175 и лучшей 186180.
Котирование заявки 59007116 на Sell с ценой 186175 объемом 1.
Перекотирование зарегистрировано для заявки 59007117 на Sell с ценой 186180 объемом 1.
Цена текущей 186180 и лучшей 186195.
Котирование заявки 59007117 на Sell с ценой 186180 объемом 1.
Перекотирование зарегистрировано для заявки 59007118 на Sell с ценой 186195 объемом 1.
Заявка 59007118 не имеет состояния.
Цена текущей 186195 и лучшей 186165.
Котирование заявки 59007118 на Sell с ценой 186195 объемом 1.
Перекотирование зарегистрировано для заявки 59007119 на Sell с ценой 186165 объемом 1.
Заявка 59007119 не имеет состояния.
Заявка 59007119 не имеет состояния.

Цена текущей 186165 и лучшей 186150.
Котирование заявки 59007119 на Sell с ценой 186165 объемом 1.
Перекотирование зарегистрировано для заявки 59007120 на Sell с ценой 186150 объемом 1.
Цена текущей 186150 и лучшей 186175.
Котирование заявки 59007120 на Sell с ценой 186150 объемом 1.
Перекотирование зарегистрировано для заявки 59007121 на Sell с ценой 186175 объемом 1.
Заявка 59007121 не имеет состояния.
Цена текущей 186175 и лучшей 186180.
Котирование заявки 59007121 на Sell с ценой 186175 объемом 1.
Перекотирование зарегистрировано для заявки 59007122 на Sell с ценой 186180 объемом 1.
Заявка 59007122 не имеет состояния.
Цена текущей 186180 и лучшей 186200.
Котирование заявки 59007122 на Sell с ценой 186180 объемом 1.
Перекотирование зарегистрировано для заявки 59007123 на Sell с ценой 186200 объемом 1.
Заявка 59007123 не имеет состояния.
Цена текущей 186200 и лучшей 186215.
Котирование заявки 59007123 на Sell с ценой 186200 объемом 1.
Перекотирование зарегистрировано для заявки 59007124 на Sell с ценой 186215 объемом 1.
Цена текущей 186215 и лучшей 186240.
Котирование заявки 59007124 на Sell с ценой 186215 объемом 1.
Перекотирование зарегистрировано для заявки 59007125 на Sell с ценой 186240 объемом 1.
Заявка 59007125 не имеет состояния.
Цена текущей 186240 и лучшей 186190.
Котирование заявки 59007125 на Sell с ценой 186240 объемом 1.
Перекотирование зарегистрировано для заявки 59007126 на Sell с ценой 186190 объемом 1.
Цена текущей 186190 и лучшей 186220.
Котирование заявки 59007126 на Sell с ценой 186190 объемом 1.
Перекотирование зарегистрировано для заявки 59007127 на Sell с ценой 186220 объемом 1.
Цена текущей 186220 и лучшей 186240.
Котирование заявки 59007127 на Sell с ценой 186220 объемом 1.
Перекотирование зарегистрировано для заявки 59007128 на Sell с ценой 186240 объемом 1.
Заявка 59007128 не имеет состояния.
Цена текущей 186240 и лучшей 186190.
Котирование заявки 59007128 на Sell с ценой 186240 объемом 1.
Перекотирование зарегистрировано для заявки 59007129 на Sell с ценой 186190 объемом 1.
Заявка 59007129 не имеет состояния.
Цена текущей 186190 и лучшей 186150.
Котирование заявки 59007129 на Sell с ценой 186190 объемом 1.
Перекотирование зарегистрировано для заявки 59007130 на Sell с ценой 186150 объемом 1.
Цена текущей 186150 и лучшей 186175.
Котирование заявки 59007130 на Sell с ценой 186150 объемом 1.
Перекотирование зарегистрировано для заявки 59007131 на Sell с ценой 186175 объемом 1.
Заявка 59007131 не имеет состояния.
Заканчиваем котирование с неисполненным объемом равный 0 контрактов.
Стратегия останавливается.
Стратегия остановлена.


Смущают записи вида
Quote:
Заявка 59007121 не имеет состояния.

И судя по потому, что дальше ничего по стратегии не выполняется, заявка так и не исполнилась (по коду дальше When(order.Matched()).Do(...)), а котирование остановилось.
До этого запускал пару раз, после нескольких сообщений "Заявка ..... не имеет состояния.", условие исполнения заявки срабатывало и стратегия продолжала работать.
Thanks:


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

loading
clippy