[3.0.13] RealTimeTestTrader котирование
Atom Ответить
10.03.2011


vvt

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

Цитата:
Регистрация новой заявки на 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==()
Стратегия останавливается.
Котирование закончилось.
Стратегия остановлена.



Спасибо:




8 Ответов
Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 10.03.2011
Ответить


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

vvt

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


В [3.0.15] вылезает новая ошибка:
Цитата:
Регистрация новой заявки на 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==()
Стратегия останавливается.
Котирование закончилось.
Стратегия остановлена.
Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 11.03.2011
Ответить


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

vvt

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


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

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

vvt

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


в [3.0.17] ошибка осталась
Цитата:
Регистрация новой заявки на 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==()
Стратегия останавливается.
Котирование закончилось.
Стратегия остановлена.
Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 15.03.2011
Ответить


vvt Перейти
в [3.0.17] ошибка осталась


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

vvt

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


Код
        private static QuikTrader _trader;
        //private static RealTimeTestTrader<QuikTrader> _trader;

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

Код
                        _trader.IsAsyncMode = true;
                        //_trader.Trader.IsAsyncMode = true;

Код
                        _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);

Код
                        _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 комментирую и раскомментирую приведенные участки кода, в стратегии ничего не меняю.
Автор топика
Спасибо: lshaton

vvt

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


[3.0.18]
Теперь не вываливается, но судя по логу, котирование работает как-то странно:
Цитата:
Производим подключение...
Подключение было произведено успешно.
Инструмент 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 контрактов.
Стратегия останавливается.
Стратегия остановлена.


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

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


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

loading
clippy