Сомнения в валидности маркет данных
Atom
14.09.2012


Качаю маркет данные со смарта.
Простая стратегия

дает следующий график доходности (см прикрепленный файл).
Подскажите, пожалуйста, куда посмотреть, чтобы поправить маркет данные?
Capture.PNG 115 KB (90)



Спасибо:




1 2  >
pyhta4og

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


я бы начал с того что в стратегии написал проверку
if(Strategy.BestBid.Price=0 || Strategy.BestAsk.Price=0||Strategy.LastTrade.Price=0||
Depth.BestBid.Price=0||Depth.BestAsk.Price=0 || Abs(BestAsk-LastTrade)>много || (BestBid-LastTrade)>много
|| Abs(nextTrade-LastTrade)>много)

где nextTrade - пришедшая сделка, Depth - пришедший стакан.

Это позволит выяснить не было ли действительно кривых данных записано.

Еще вариант - поставить брекпойнт в Strategy.PnLChanged и от туда раскручивать - если PnL стал сильно маленьким, посмотреть по коллстаку на наличие аргументов Trade, Depth с маленькими значениями

Hope it helps.
Спасибо:

vk37

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


Добавил брейкпоинт и логгирование в стратегию:

Лог до брейкпоинта:

Лог после брейкпоинта:

Причина, похоже в том, что на какой-то момент у Security BestBid и BestAsk равны null
Спасибо:

Alexander

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


это может быть в клиринг, когда стакан очищается. или когда планка. сделайте проверку в стратегии.
Спасибо:

vk37

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


Все 5 ошибок на графике до 12:00 )
Спасибо:

Mikhail Sukhov

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


vk37 Перейти
Все 5 ошибок на графике до 12:00 )


А что в самих данных?
Спасибо:

vk37

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


А где посмотреть? Что перебрать? )
Спасибо:

Mikhail Sukhov

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


vk37 Перейти
А где посмотреть? Что перебрать? )


На диске. Данные.
Спасибо:

vk37

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


Провереть SecurityChanges на предмет Security.BestAsk == null и Security.BestBid == null?
Спасибо:

vk37

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


Проверил все сохраненные MarketDepths. Не нашел ни одного со значениями BestBid == null или BestAsk == null. В стратегии на событии MarketDepthChanged, судя по логу, такие появляются:
Код
2012.09.10 10:36:33.288|       |MDS_RIU2@RTS_test account|depth.LastChangeTime: 2012-09-10T10:36:33.0180000, depth.BestBid: null, depth.BestAsk: null, Security.BestBid: 146900, Security.BestAsk: 146910, Security.LastTrade: null

Думаю, ошибка не в данных.
Проверял так:
Код
                    var marketDepthStorage = _storageRegistry.GetMarketDepthStorage(security, _defaultDrive);
                    var marketDepths = marketDepthStorage.Load(_targetTime.Date);

                    foreach (var depth in marketDepths)
                    {
                        if (depth.BestBid == null || depth.BestAsk == null)
                            Debugger.Break();
                    }
Спасибо:

pyhta4og

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


файлы данных можете прикрепить (сделки и стаканы) за проблемный день?
Спасибо:
1 2  >

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

loading
clippy