Garry
|
Дата: 10.12.2012
Неупорядоченность по времени исключена, сделал необходимую проверку при добавлении данных. Такой же эксепшн вылазает при попытке скачать данные с ФТП РТС и записать данные новой гидрой(4.1.6) в папку с данными от старой гидры(4.1.3). Вот нашел тему на форуме http://stocksharp.com/forum/3089/Oshibka--Hydra-ver20011/
|
|
|
|
Спасибо:
|
|
|
|
|
|
Mikhail Sukhov
|
Дата: 10.12.2012
Garry:
Неупорядоченность по времени исключена, сделал необходимую проверку при добавлении данных.
А какая проверка?
|
|
|
|
Спасибо:
|
|
|
|
|
|
Garry
|
Дата: 10.12.2012
Сортировка List по Time для сделок и LastChangeTime для стаканов.
|
|
|
|
Спасибо:
|
|
|
|
|
|
Mikhail Sukhov
|
Дата: 10.12.2012
Garry:
Сортировка List по Time для сделок и LastChangeTime для стаканов.
Не все так просто. Надо сравнивать не только поступающие данные, но так же и с последней меткой, что записана в файл. И удостоверится, что объекты не изменяются (особенно стаканы).
|
|
|
|
Спасибо:
|
|
|
|
|
|
Garry
|
Дата: 10.12.2012
Ну то что не изменяются это точно, кроме меня изменить не кому, они ни к чему не привязаны, использую как структуру, заполняю по таймеру, перед добавлением в лист проверяю MarketDepth.Verify(), а вот что по поводу метки в файле, как ее сравнить?
|
|
|
|
Спасибо:
|
|
|
|
|
|
Mikhail Sukhov
|
Дата: 10.12.2012
Garry:
Ну то что не изменяются это точно, кроме меня изменить не кому, они ни к чему не привязаны, использую как структуру, заполняю по таймеру, перед добавлением в лист проверяю MarketDepth.Verify(), а вот что по поводу метки в файле, как ее сравнить?
Скорее всего самостоятельно где-то запоминать.
|
|
|
|
Спасибо:
|
|
|
|
|
|
Garry
|
Дата: 11.12.2012
Михаил, такой вопрос, метка ставится при сохранении, непосредственно в файл с данными bin? Как она вычисляется, допустим в коллекции у меня стаканы с временем Нью Йорка, какая будет метка? Время изменения последнего элемента коллекции? Может быть проблема из-за часовых поясов или чего нибудь подобного? Сохранение IMarketDataStorage<TData>.Save идет в отдельном потоке? могут, например, данные не успеть дописаться до конца, а запрошено уже новое сохранение?
|
|
|
|
Спасибо:
|
|
|
|
|
|
Mikhail Sukhov
|
Дата: 11.12.2012
Garry:
Михаил, такой вопрос, метка ставится при сохранении, непосредственно в файл с данными bin? Как она вычисляется, допустим в коллекции у меня стаканы с временем Нью Йорка, какая будет метка? Время изменения последнего элемента коллекции? Может быть проблема из-за часовых поясов или чего нибудь подобного? Сохранение IMarketDataStorage.Save идет в отдельном потоке? могут, например, данные не успеть дописаться до конца, а запрошено уже новое сохранение?
Думаю проще всего будет записать блок данных в какое-то промежуточное хранилище, и потом его перегнать в S#. Там быстрее найдете ошибку. Сейчас 3 места: ваш код (я так понял это не Гидра, а следовательно косяков может быть где угодно, и мне можно только гадать об этом), наш код, неправильные данные. Надо сокращать область поиска.
|
|
|
|
Спасибо:
|
|
|
|
|
|
Garry
|
Дата: 14.12.2012
|
|
|
|
|
В упор не могу понять почему выскакивает эксепшн, начал писать по одному стакану, раз в 500 Мс по таймеру. Все отлично: пишется пишется пишется, раз проскочил этот эксепшн, в обработчике эксепшена стакан удаляю, дальше все ок пишется пишется, потом опять эксепшн и т.д. специально скидывал в текстовик время последнего изменения стакана, во времени точно нет ошибки(хотя эксепшн именно об этом) в дебагере сравнивал косячный стакан с предыдущим нормальным никаких отличий, абсолютно одинаковые, стакан собирается вручную раз в 500мс непосредственно перед записью, каждый раз создается новый класс, всегда проверка Verify. В какие еще поля посмотреть стакана(косячного и нормального)? Реально не понимаю что править, хочется записывать америку очень удобный формат для хранения данных, но вот то пишется, то не пишется.
Пример жирным косячный стакан:
14 29 2012 02:29:54:0548
14 29 2012 02:29:55:0688
14 29 2012 02:29:55:0688
14 29 2012 02:29:55:5698
14 29 2012 02:29:56:0829
14 29 2012 02:29:56:5829
Попытка записать неупорядоченные стаканы.
Parameter name: time
14 29 2012 02:29:57:1089
Попытка записать неупорядоченные стаканы.
Parameter name: time
14 29 2012 02:29:57:6120
14 29 2012 02:29:58:7131
14 29 2012 02:29:59:2221
14 29 2012 02:29:59:7301
14 30 2012 02:30:00:2361
14 30 2012 02:30:00:7362
14 30 2012 02:30:01:2502
14 30 2012 02:30:01:7512
14 30 2012 02:30:02:2653
14 30 2012 02:30:02:7693
14 30 2012 02:30:03:2773
14 30 2012 02:30:03:7773
14 30 2012 02:30:04:2914
14 30 2012 02:30:04:7924
14 30 2012 02:30:05:3054
14 30 2012 02:30:05:8065
14 30 2012 02:30:06:3195
Попытка записать неупорядоченные стаканы.
Parameter name: time
14 30 2012 02:30:06:8255
14 30 2012 02:30:07:3335
14 30 2012 02:30:07:8336
|
|
|
|
Спасибо:
|
|
|
|
|
|
Mikhail Sukhov
|
Дата: 15.12.2012
Garry:
Реально не понимаю что править, хочется записывать америку очень удобный формат для хранения данных, но вот то пишется, то не пишется.
Да причем тут формат. Вы пишите неправильно данные. О чем S# и предупреждает. Ищите ошибку у себя. Ну или пишите данные как есть. Только потом не удивляйтесь, почему эквити на 90 градусов отличается от реального.[laugh]
|
|
|
|
Спасибо:
|
|
|
|
|