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


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


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

Обнаружил, следующую проблему: лимитированная заявка на покупку выставляется по цене 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