Нет информации о главном окне Quik. Возможно, было неуспешное подключение.

Нет информации о главном окне Quik. Возможно, было неуспешное подключение.
Atom
08.06.2010
sergun


В чем может быть причина сообщения об ошибке? Квик запущен, путь к нему прописан.


Теги:


Спасибо:


< 1 2 3 4  >
Mikhail Sukhov

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


Из-за того, что стакан еще пуст.

Спасибо:

ddd888

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


Но тогда должна работать проверка на null? Еще раз проверил аналогичную ситуацию на 1.8 - там такая ошибка обычно иногда возникает при первичном запуске стакана, но раз запустившись потом никогда не появляется. В 2.0.1 она возникает периодически уже при открытом стакане. У меня GetMarketDepth изменилась логика?

Спасибо:

Mikhail Sukhov

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


Периодически - это как? По таймеру? Или пользователь что-то кликает? Или в стратегии?

Спасибо:

ddd888

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


Обновление стакана у меня происходит по событию GetMarketDepth(this.Security).Changed Вот во время периодического обновления иногда и выскакивает эта ошибка.

  • опять-таки иногда при инициализации стакана выскакивает ошибка "последовательность не содержит соответствующего элемента". В отладке при этом this.Security - вроде вполне нормально загруженный.
Спасибо:

ddd888

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


Заметил такую особенность - пока все сделки до конца не подгрузились в S#, при открытии стакана GetMarketDepth может вызывать ошибку ("последовательность не содержит элементов"). А RegisterQuotes - "последовательность не содержит соответствующего элемента".

Спасибо:

Mikhail Sukhov

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


Да, я уже писал о присутствующей ошибке в запуске ДДЕ. Это она. Квик загружен, а S# - нет. S# нажимает на кнопки и ожидает моментального появления окон. Квик же думает, и не всегда может реагировать моментально. Я бы исправил ошибку, если бы она стабильно возникала. Но дело в том, что на моем компе она не возникает практически никогда (да, я шустр!).

Спасибо:

ddd888

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


Да, Вам больше повезло! Хотя вроде у меня тоже комп не слабый. :) При первичном запуске стакана такая ошибка некритична. Хуже когда она возникает уже в процессе от метода GetMarketDepth. В 1.8. такого точно ни разу не было, а сейчас почему-то есть. При этом никак не могу понять такое поведение. Вот, например код:

строка 801. this.BestBid = _marketDepth.Where(t => t.Bid != 0).Max(t => t.Price); строка 802. this.BestAsk = _marketDepth.Where(t => t.Ask != 0).Min(t => t.Price); строка 803. this.MinBid = _marketDepth.Where(t => t.Bid != 0).Min(t => t.Price); строка 804. this.MaxAsk = _marketDepth.Where(t => t.Ask != 0).Max(t => t.Price);

И когда возникает ошибка ("последовательность не содержит элементов"), смотрю куда она указывает и вот странность: каждый раз она указывает на разные строки! Как это может быть? Ведь если коллекция пустая, то ошибка всегда должна появляться на 1-й же строке, т.е. здесь например на 801-й?

Спасибо:

Mikhail Sukhov

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


Стоп, Вы не разделяете проблемы. Есть ошибка с запуском ДДЕ. Я уже описал симптомы. А есть по работе со стаканом. Я пока не могу понять, у меня она или у Вас.

  1. Лучший бид и аск вычисляются и так стаканом.
  2. Ошибки могут быть на разных строчках, если, например, биды заполнены, а офера еще нет.

Еще рас прочитал, что Вы писал выше. MarketDepth.Changed вызывается при любом изменении стакана. Пришла новая котировка и т.д. Тоесть, стакан может быть даже не заполнен, а событие будет выведено. По вышепреведенному коду могу сказать, что Вам нужно событие ITrader.QuotesChanged потому что Вам нужно вычислять по всему стакану (иначе, просто код бессмыслен - вычисление будет показывать ерунду по неполному стакану). Скорее всего, в этом и ошибка. И это точно не зависит от версии.

Спасибо:

ddd888

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


Да, я понимаю, что это уже другая проблема. Про событие QuotesChanged и MarketDepth.Changed тоже помню, но как это влияет на метод GetMarketDepth?

  1. Лучший бид и аск я стал так выводить потому, что у Вас BestBid и BestAsk на самом деле выводят максимальную и минимальные цены стакана почему-то.
  2. Получается, что GetMarketDepth может выводить стакан не полностью в зависимости от того на какое событие QuotesChanged и MarketDepth.Changed подписался?
Спасибо:

Mikhail Sukhov

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


Что-то не так внутри метода GetMarketDepth? Как я понял, проблема с наружи - использование результатов этого метода. Что делать, если программа пытается обратиться к стакану слишком рано?

  1. Ни разу такое не встречал. Как это проверили?
  2. GetMarketDepth возвращает всегда стакан. И этот стакан параллельно наполняется QuikTrader.
Спасибо:
< 1 2 3 4  >

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

loading
clippy