[BLOCKER] [3.0] котирование не срабатывает
Atom Ответить
22.02.2011


Случается часто, что котирование не срабатывает. Использую SmartTrader и котирование вида BestByPriceQuotingStrategy(_Order, 4.Pips(_Order.Security)).

Два примера.

1. Ордер был выставлен, но цена ушла далеко против него. Ордер должен был переставиться. Но этого не произошло. Реально ордер выставился, затем был отменен, а новый не поставился. Соответственно сделка не прошла.

Код

22.02.2011 0:22:59 [OpenWealth.StockSharp.SmartCOM.<Smart_NewOrders>b__18] RTS-3.11 +1*187110 Limit
22.02.2011 0:23:55 [OpenWealth.HeadRealTrade.OnLog] ERROR: ЛОГ стратегии Name: BBPQS errorStates: Error str: System.InvalidOperationException: В процессе снятия заявки '0' случился тайм-аут.
в 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.#=q3UdZn4RtstjLq$DRetpesrMPkbpqY9D7UhsAwBvksoY=.#=qYw$3xI3MUzQpTQq5ga9LOw==()


2. Ордер был выставлен, цена резко пошла в сторону ордера. Ордер выполнился. Но стратегия котирования выдала ошибку.

Код

22.02.2011 16:14:38 [OpenWealth.StockSharp.SmartCOM.<Smart_NewOrders>b__18] RTS-3.11 +1*183565 Limit
22.02.2011 16:14:39 [OpenWealth.StockSharp.SmartCOM.<Smart_NewMyTrades>b__16] 275103030 RTS-3.11 +1*183515
22.02.2011 16:14:39 [OpenWealth.HeadRealTrade.OnLog] ERROR: ЛОГ стратегии Name: BBPQS errorStates: Warning str: Заявка 57996368 не имеет состояния.
22.02.2011 16:15:01 [OpenWealth.HeadRealTrade.OnLog] ERROR: ЛОГ стратегии Name: BBPQS errorStates: Error str: System.InvalidOperationException: В процессе снятия заявки '0' случился тайм-аут.
в 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.#=q3UdZn4RtstjLq$DRetpesrMPkbpqY9D7UhsAwBvksoY=.#=qYw$3xI3MUzQpTQq5ga9LOw==()

Теги:


Спасибо:




33 Ответов
< 1 2 
Mikhail Sukhov

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


Greene-nsk Перейти
SmartTrader, S# 3.0.14

Проблема так и не исправлена.


Пишите в саппорт Смарта. Это не нормально, когда по пол минуте от заявки не приходят уведомления.
Спасибо:

Greene-nsk

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


Mikhail Sukhov Перейти
Greene-nsk Перейти
SmartTrader, S# 3.0.14

Проблема так и не исправлена.


Пишите в саппорт Смарта. Это не нормально, когда по пол минуте от заявки не приходят уведомления.


Это расшифровывается как "бросайте этот глючный смарт, переходите на квик"? )
Автор топика
Спасибо:

Mikhail Sukhov

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


vvt Перейти

Код
    internal class TestStrategy : ActionStrategy
    {
        protected override void OnRunning()
        {
            const OrderDirections direction = OrderDirections.Sell;
            const int priceDelta = 5;

            var order = base.CreateOrder(direction, base.Security.GetMarketPrice(direction), base.Volume);
            var strategy = new MarketQuotingStrategy(order, new Unit(), new Unit(priceDelta));
            base.ChildStrategies.Add(strategy);

            base.OnRunning();
        }
}


Выведите в лог момент создания MarketQuotingStrategy
Спасибо:

vvt

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


Вывел в лог.
Код

    internal class TestStrategy : ActionStrategy
    {
        protected override void OnRunning()
        {
            const OrderDirections direction = OrderDirections.Sell;
            const int priceDelta = 5;

            // создаем заявку
            var order = base.CreateOrder(direction, base.Security.GetMarketPrice(direction), base.Volume);
Console.WriteLine("Заявка на продажу создана.");

            // регистрируем заявку (через котирование)
            var strategy = new MarketQuotingStrategy(order, new Unit(), new Unit(priceDelta));
Console.WriteLine("Заявка зарегистрирована.");
            base.ChildStrategies.Add(strategy);
            Console.WriteLine("Котирование закончено.");

            base.OnRunning();
        }


Лог:
Цитата:
Производим подключение...
Подключение было произведено успешно.
Инструмент RIH1 появился.
Портфель SPBFUT00835 появился.
Экспорт по DDE запущен.
Заявка на продажу создана.
Заявка зарегистрирована.
Котирование закончено.
Стратегия запущена.
Стратегия запущена.

Чтобы закончить, нажмите любую клавишу...
Регистрация новой заявки на Sell с ценой 194100 и объемом 1.
Заявка 59195205 на Sell отправлена с ценой 194100 объемом 1.
Цена текущей 194100 и лучшей 194095.
Котирование заявки 59195205 на Sell с ценой 194100 объемом 1.
Перекотирование зарегистрировано для заявки 59195207 на Sell с ценой 194095 объемом 1.
Цена текущей 194095 и лучшей 194070.
Котирование заявки 59195207 на Sell с ценой 194095 объемом 1.
Перекотирование зарегистрировано для заявки 59195209 на Sell с ценой 194070 объемом 1.
Цена текущей 194070 и лучшей 194065.
Котирование заявки 59195209 на Sell с ценой 194070 объемом 1.
Перекотирование зарегистрировано для заявки 59195211 на Sell с ценой 194065 объемом 1.
Цена текущей 194065 и лучшей 194060.
Котирование заявки 59195211 на Sell с ценой 194065 объемом 1.
Ecng.Trading.Quik.ApiException: Код ошибки Failed Сообщение [FORTS] Не найдена заявка для удаления
Котируемая заявка 59195211 исполнилась.

Регистрация новой заявки на Sell с ценой 194085 и объемом 1.
Заявка 59195213 на Sell отправлена с ценой 194085 объемом 1.
Цена текущей 194085 и лучшей 194080.
Котирование заявки 59195213 на Sell с ценой 194085 объемом 1.
Перекотирование зарегистрировано для заявки 59195215 на Sell с ценой 194080 объемом 1.
Цена текущей 194080 и лучшей 194075.
Котирование заявки 59195215 на Sell с ценой 194080 объемом 1.
Перекотирование зарегистрировано для заявки 59195217 на Sell с ценой 194075 объемом 1.
Цена текущей 194075 и лучшей 194070.
Котирование заявки 59195217 на Sell с ценой 194075 объемом 1.
Перекотирование зарегистрировано для заявки 59195219 на Sell с ценой 194070 объемом 1.
Цена текущей 194070 и лучшей 194060.
Котирование заявки 59195219 на Sell с ценой 194070 объемом 1.
Перекотирование зарегистрировано для заявки 59195221 на Sell с ценой 194060 объемом 1.
Цена текущей 194060 и лучшей 194065.
Котирование заявки 59195221 на Sell с ценой 194060 объемом 1.
Перекотирование зарегистрировано для заявки 59195223 на Sell с ценой 194065 объемом 1.
Цена текущей 194065 и лучшей 194080.
Котирование заявки 59195223 на Sell с ценой 194065 объемом 1.
Перекотирование зарегистрировано для заявки 59195225 на Sell с ценой 194080 объемом 1.
Заявка 59195225 не имеет состояния.
Котируемая заявка 59195225 не принята биржей.

Стратегия останавливается.
Котирование отменяет заявку 59195225.
Стратегия остановлена.

Судя по логу, котирование запускается один раз.
Прошу обратить внимание на
Цитата:
Ecng.Trading.Quik.ApiException: Код ошибки Failed Сообщение [FORTS] Не найдена заявка для удаления
Котируемая заявка 59195211 исполнилась.
Заявка исполнилась, а котирование пытается ее удалить и после этого продолжает выставлять заявки.
И опять после десяти перестановок биржа одиннадцатую не принимает.

Запустил еще раз и еще лог:
Цитата:
Производим подключение...
Подключение было произведено успешно.
Инструмент RIH1 появился.
Портфель SPBFUT00835 появился.
Экспорт по DDE запущен.
Заявка на продажу создана.
Заявка зарегистрирована.
Котирование закончено.
Стратегия запущена.
Стратегия запущена.
Чтобы закончить, нажмите любую клавишу...
Регистрация новой заявки на Sell с ценой 195030 и объемом 1.
Заявка 60704195 на Sell отправлена с ценой 195030 объемом 1.
Цена текущей 195030 и лучшей 195025.
Котирование заявки 60704195 на Sell с ценой 195030 объемом 1.
Перекотирование зарегистрировано для заявки 60704197 на Sell с ценой 195025 объемом 1.
Цена текущей 195025 и лучшей 195010.
Котирование заявки 60704197 на Sell с ценой 195025 объемом 1.
Перекотирование зарегистрировано для заявки 60704199 на Sell с ценой 195010 объемом 1.
Цена текущей 195010 и лучшей 195020.
Котирование заявки 60704199 на Sell с ценой 195010 объемом 1.
Ecng.Trading.Quik.ApiException: Код ошибки Failed Сообщение [FORTS] Не найдена заявка для удаления
Котируемая заявка 60704199 исполнилась.

Регистрация новой заявки на Sell с ценой 195040 и объемом 1.
Заявка 60704201 на Sell отправлена с ценой 195040 объемом 1.
Цена текущей 195040 и лучшей 195035.
Котирование заявки 60704201 на Sell с ценой 195040 объемом 1.
Перекотирование зарегистрировано для заявки 60704203 на Sell с ценой 195035 объемом 1.
Цена текущей 195035 и лучшей 195030.
Котирование заявки 60704203 на Sell с ценой 195035 объемом 1.
Перекотирование зарегистрировано для заявки 60704205 на Sell с ценой 195030 объемом 1.
Цена текущей 195030 и лучшей 195000.
Котирование заявки 60704205 на Sell с ценой 195030 объемом 1.
Перекотирование зарегистрировано для заявки 60704207 на Sell с ценой 195000 объемом 1.
Цена текущей 195000 и лучшей 194990.
Котирование заявки 60704207 на Sell с ценой 195000 объемом 1.
Перекотирование зарегистрировано для заявки 60704209 на Sell с ценой 194990 объемом 1.
Цена текущей 194990 и лучшей 195015.
Котирование заявки 60704209 на Sell с ценой 194990 объемом 1.
Ecng.Trading.Quik.ApiException: Код ошибки Failed Сообщение [FORTS] Не найдена заявка для удаления
Котируемая заявка 60704209 исполнилась
.
Регистрация новой заявки на Sell с ценой 195030 и объемом 2.
Заявка 60704211 на Sell отправлена с ценой 195030 объемом 2.
Цена текущей 195030 и лучшей 195045.
Котирование заявки 60704211 на Sell с ценой 195030 объемом 2.
Перекотирование зарегистрировано для заявки 60704213 на Sell с ценой 195045 объемом 2.
Цена текущей 195045 и лучшей 195025.
Котирование заявки 60704213 на Sell с ценой 195045 объемом 2.
Перекотирование зарегистрировано для заявки 60704215 на Sell с ценой 195025 объемом 2.
Котируемая заявка 60704215 не принята биржей.
Стратегия останавливается.
Котирование отменяет заявку 60704215.
Стратегия остановлена.


Ну и еще раз запустил:
Цитата:
Производим подключение...
Подключение было произведено успешно.
Инструмент RIH1 появился.
Портфель SPBFUT00835 появился.
Экспорт по DDE запущен.
Заявка на продажу создана.
Заявка зарегистрирована.
Котирование закончено.
Стратегия запущена.
Стратегия запущена.
Чтобы закончить, нажмите любую клавишу...
Регистрация новой заявки на Sell с ценой 194685 и объемом 1.
Заявка 63251931 на Sell отправлена с ценой 194685 объемом 1.
Цена текущей 194685 и лучшей 194675.
Котирование заявки 63251931 на Sell с ценой 194685 объемом 1.
Перекотирование зарегистрировано для заявки 63251933 на Sell с ценой 194675 объемом 1.
Цена текущей 194675 и лучшей 194665.
Котирование заявки 63251933 на Sell с ценой 194675 объемом 1.
Перекотирование зарегистрировано для заявки 63251935 на Sell с ценой 194665 объемом 1.
Цена текущей 194665 и лучшей 194670.
Котирование заявки 63251935 на Sell с ценой 194665 объемом 1.
Перекотирование зарегистрировано для заявки 63251937 на Sell с ценой 194670 объемом 1.
Заявка 63251937 не имеет состояния.
Цена текущей 194670 и лучшей 194690.
Котирование заявки 63251937 на Sell с ценой 194670 объемом 1.
Ecng.Trading.Quik.ApiException: Код ошибки Failed Сообщение Вы не можете снять данную заявку
Котируемая заявка 63251937 исполнилась.

Регистрация новой заявки на Sell с ценой 194715 и объемом 1.
Заявка 63251939 на Sell отправлена с ценой 194715 объемом 1.
Цена текущей 194715 и лучшей 194645.
Котирование заявки 63251939 на Sell с ценой 194715 объемом 1.
Перекотирование зарегистрировано для заявки 63251941 на Sell с ценой 194645 объемом 1.
Цена текущей 194645 и лучшей 194635.
Котирование заявки 63251941 на Sell с ценой 194645 объемом 1.
Перекотирование зарегистрировано для заявки 63251943 на Sell с ценой 194635 объемом 1.
Цена текущей 194635 и лучшей 194645.
Котирование заявки 63251943 на Sell с ценой 194635 объемом 1.
Перекотирование зарегистрировано для заявки 63251945 на Sell с ценой 194645 объемом 1.
Цена текущей 194645 и лучшей 194635.
Котирование заявки 63251945 на Sell с ценой 194645 объемом 1.
Перекотирование зарегистрировано для заявки 63251947 на Sell с ценой 194635 объемом 1.
Цена текущей 194635 и лучшей 194625.
Котирование заявки 63251947 на Sell с ценой 194635 объемом 1.
Ecng.Trading.Quik.ApiException: Код ошибки Failed Сообщение [FORTS] Не найдена заявка для удаления
Котируемая заявка 63251947 исполнилась.

Регистрация новой заявки на Sell с ценой 194650 и объемом 3.
Заявка 63251949 на Sell отправлена с ценой 194650 объемом 3.
Заявка 63251949 не имеет состояния.
Котируемая заявка 63251949 исполнилась.
Стратегия останавливается.
Котирование отменяет заявку 63251949.
Стратегия остановлена.
Спасибо:

Mikhail Sukhov

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


Ошибку подтверждаю. Выпущу еще один фикс.
Спасибо:

vvt

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


[3.0.17]
Цитата:
Производим подключение...
Подключение было произведено успешно.
Инструмент RIM1 появился.
Портфель SPBFUT00835 появился.
Экспорт по DDE запущен.
Заявка на продажу создана.
Заявка зарегистрирована.
Котирование закончено.
Стратегия запущена.
Стратегия запущена.
Чтобы закончить, нажмите любую клавишу...
Регистрация новой заявки на Sell с ценой 187495 и объемом 1.
Заявка 46277896 на Sell отправлена с ценой 187495 объемом 1.
Цена текущей 187495 и лучшей 187470.
Котирование заявки 46277896 на Sell с ценой 187495 объемом 1.
Перекотирование зарегистрировано для заявки 46277898 на Sell с ценой 187470 объемом 1.
Цена текущей 187470 и лучшей 187460.
Котирование заявки 46277898 на Sell с ценой 187470 объемом 1.
Перекотирование зарегистрировано для заявки 46277900 на Sell с ценой 187460 объемом 1.
Цена текущей 187460 и лучшей 187485.
Котирование заявки 46277900 на Sell с ценой 187460 объемом 1.
Перекотирование зарегистрировано для заявки 46277902 на Sell с ценой 187485 объемом 1.
Заявка 46277902 не имеет состояния.
Цена текущей 187485 и лучшей 187415.
Котирование заявки 46277902 на Sell с ценой 187485 объемом 1.
Перекотирование зарегистрировано для заявки 46277904 на Sell с ценой 187415 объемом 1.
Цена текущей 187415 и лучшей 187425.
Котирование заявки 46277904 на Sell с ценой 187415 объемом 1.
Перекотирование зарегистрировано для заявки 46277906 на Sell с ценой 187425 объемом 1.
Ecng.Trading.Quik.ApiException: Код ошибки Failed Сообщение [FORTS] Не найдена заявка для удаления

Цена текущей 187425 и лучшей 187465.
Котирование заявки 46277906 на Sell с ценой 187425 объемом 1.
Перекотирование зарегистрировано для заявки 46277908 на Sell с ценой 187465 объемом 1.
Цена текущей 187465 и лучшей 187495.
Котирование заявки 46277908 на Sell с ценой 187465 объемом 1.
Перекотирование зарегистрировано для заявки 46277910 на Sell с ценой 187495 объемом 1.
Цена текущей 187495 и лучшей 187485.
Котирование заявки 46277910 на Sell с ценой 187495 объемом 1.
Перекотирование зарегистрировано для заявки 46277912 на Sell с ценой 187485 объемом 1.
Цена текущей 187485 и лучшей 187475.
Котирование заявки 46277912 на Sell с ценой 187485 объемом 1.
Перекотирование зарегистрировано для заявки 46277914 на Sell с ценой 187475 объемом 1.
Цена текущей 187475 и лучшей 187470.
Котирование заявки 46277914 на Sell с ценой 187475 объемом 1.
Перекотирование зарегистрировано для заявки 46277916 на Sell с ценой 187470 объемом 1.
Заканчиваем котирование с неисполненным объемом равный 0 контрактов.
Стратегия останавливается.
Стратегия остановлена.




Заявка 46277906 исполнилась, а котирование продолжается...
Спасибо:

vvt

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


Михаил, по предыдущему посту и последнему моему сообщению в теме мыслей не появилось? Хотелось бы окончательно снять проблемы с котированием.
Спасибо:

Mikhail Sukhov

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


vvt Перейти
Михаил, по предыдущему посту и последнему моему сообщению в теме мыслей не появилось? Хотелось бы окончательно снять проблемы с котированием.


Я упустил предыдущий пост... Строчка "Ecng.Trading.Quik.ApiException: Код ошибки Failed Сообщение [FORTS] Не найдена заявка для удаления" откуда выводиться? Из Strategy.Log или ProcessDataError? QuikTrader.IsAsyncMode = ? QuotingStrategy.IsForts = ?

Насчет тестирования, пока отложу (есть мнение, что нужно кое-что переделать).
Спасибо:
< 1 2 

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

loading
clippy