При тестировании на истории заявка исполнилась по неправильной цене

При тестировании на истории заявка исполнилась по неправильной цене
Atom
30.10.2012
Yury Smykalov


Запустил исторический тест. Решил по логам проверить, все ли в порядке.

Обнаружил, следующую проблему: лимитированная заявка на покупку выставляется по цене 141850, а исполняется по 141770. При этом я вижу, что моя стратегия не обновляла заявку.

Вот выдержка из лога:
Код
2012.10.30 10:10:32.851|       |MQS_RIZ2@RTS_test account|Стратегия запущена. [0,324]. Позиция при старте 0.
2012.10.30 10:10:32.851|       |EmulationTrader|RegisterOrder: 58453309/0 Покупка Цена=141850 Объем=1 Сост=None Бал=1 
2012.10.30 10:10:32.851|       |EmulationTrader|New order: 58453309/324 Покупка Цена=141850 Объем=1 Сост=Active Бал=1 
2012.10.30 10:10:33.128|       |EmulationTrader|Order changed: 58453309/324 Покупка Цена=141850 Объем=1 Сост=Done Бал=0 
2012.10.30 10:10:33.128|       |MVWAPS_RIZ2@RTS_test account|Новая позиция: test account-RIZ2@RTS=0.
2012.10.30 10:10:33.128|       |MQS_RIZ2@RTS_test account|Новая позиция: test account-RIZ2@RTS=1.
2012.10.30 10:10:33.128|       |MQS_RIZ2@RTS_test account|Заявка 58453309 больше не активна.
2012.10.30 10:10:33.128|       |MQS_RIZ2@RTS_test account|Стратегия останавливается. [0,324]. Позиция при старте 1.
2012.10.30 10:10:33.128|       |MQS_RIZ2@RTS_test account|Ожидание снятия всех активных заявок.
2012.10.30 10:10:33.128|       |MQS_RIZ2@RTS_test account|Стратегия остановлена. [0,324]. Позиция при старте 1.
2012.10.30 10:10:33.128|       |MVWAPS_RIZ2@RTS_test account|Новая Buy сделка 324 по цене 141770 на 1 заявки 58453309.
2012.10.30 10:10:33.128|       |MQS_RIZ2@RTS_test account|Новая Buy сделка 324 по цене 141770 на 1 заявки 58453309.
2012.10.30 10:10:33.561|       |MQS_RIZ2@RTS_test account|Стратегия запущена. [0,325]. Позиция при старте 0.


MQS - это не стандартная стратегия котирования S#, а моя собственная, похожая. Выставляется заявка примерно так:
Код
ActiveOrder = this.CreateOrder(Direction, StartPrice, Volume);
ActiveOrder.ShrinkPrice();
ActiveOrder.Security = Security;
while (!Trader.IsConnected) Trader.Reconnect();
base.RegisterOrder(ActiveOrder);
ActiveOrder.WhenMatched()
    .Do(Finish)
    .Apply(this);


Цена закрытия (141770) ниже обоих границ спреда и цен последних сделок:
Код
MarketTime;DepthTime;BestBid;BestAsk;LastTradeTime;LastTrade
30.10.2012 10:10:31,097;30.10.2012 10:10:31,079;141850;141860;30.10.2012 10:10:30,930;141850
30.10.2012 10:10:31,714;30.10.2012 10:10:31,641;141850;141860;30.10.2012 10:10:31,097;141850
30.10.2012 10:10:31,754;30.10.2012 10:10:31,715;141850;141860;30.10.2012 10:10:31,714;141850
30.10.2012 10:10:31,839;30.10.2012 10:10:31,761;141860;141870;30.10.2012 10:10:31,754;141860
30.10.2012 10:10:31,849;30.10.2012 10:10:31,761;141860;141870;30.10.2012 10:10:31,839;141860
30.10.2012 10:10:31,863;30.10.2012 10:10:31,761;141860;141870;30.10.2012 10:10:31,849;141860
30.10.2012 10:10:32,142;30.10.2012 10:10:32,077;141850;141870;30.10.2012 10:10:31,863;141860
30.10.2012 10:10:32,631;30.10.2012 10:10:32,532;141860;141870;30.10.2012 10:10:32,142;141870
30.10.2012 10:10:32,658;30.10.2012 10:10:32,532;141860;141870;30.10.2012 10:10:32,631;141870
30.10.2012 10:10:32,851;30.10.2012 10:10:32,810;141860;141870;30.10.2012 10:10:32,658;141870
30.10.2012 10:10:33,561;30.10.2012 10:10:33,480;141860;141870;30.10.2012 10:10:32,851;141870
30.10.2012 10:10:33,621;30.10.2012 10:10:33,566;141860;141870;30.10.2012 10:10:33,561;141870
30.10.2012 10:10:33,720;30.10.2012 10:10:33,668;141870;141880;30.10.2012 10:10:33,621;141870
30.10.2012 10:10:33,967;30.10.2012 10:10:33,937;141860;141870;30.10.2012 10:10:33,720;141870
30.10.2012 10:10:34,780;30.10.2012 10:10:34,741;141870;141880;30.10.2012 10:10:33,967;141870


Вот выдержка из report.xls:
Код
Номер сделки	Номер транзакции	Время	Цена	Цена заявки	Объем	Направление	Номер заявки	Проскальзывание	Проскальзывание (котирование)	Комментарий	Прибыль в рублях	Прибыль в пунктах	Прибыль в рублях (суммарная)	Прибыль в пунктах (суммарная)	Позиция		Номер заявки	Номер транзакции	Направление	Зарегистрирована	Изменена	Продолжительность	Цена	Цена (усредн.)	Статус	Состояние	Баланс	Объем	Тип	Проскальзывание	Задержка регистрации	Задержка отмены	Комментарий
324	58453309	30.10.2012 10:10:33	141770	141850	1	Покупка	324	0	-80	MQS_RIZ2@RTS_test account	55,8	90	2653,6	4280	0		324	58453309	Покупка	30.10.2012 10:10:32	30.10.2012 10:10:33	00:00:00	141850	141770	Не активна	Исполнена	0	1	Лимитная	-80	00:00:00	00:00:00	MQS_RIZ2@RTS_test account


Версия из транка (20514).



Спасибо:


< 1 2 
Igor123

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


Yury Smykalov
Igor123
У меня проблема не решилась, как было так и осталось, скачен был файл stocksharp-20984.zip и заменены файлы в Reference, что то не так?


Решение-то пересобрали после обновления dll-ек? Возможно, файлы библиотеки берутся по другому пути?

Я обычно обновляю S#, копируя новое содержимое References прямо в папку bin/Debug, рядом с роботом. После пересборки решения подхватываются обновленные файлы.


нет, все пересобрал, dll поменялись, проблема осталась(
Спасибо:

Igor123

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


http://stocksharp.codepl...com/releases/view/97689 в этой версии такая же проблема
Спасибо:

pyhta4og

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


Igor123
http://stocksharp.codeplex.com/releases/view/97689 в этой версии такая же проблема


Прикрепите файлы данных со сделками и стаканами и тестовую стратегию на которой можно воспроизвести ошибку. Укажите ID проблемной сделки.
Спасибо:

Igor123

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


хорошо попробую
Спасибо:
< 1 2 

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

loading
clippy