Security.BestAsk == null~/topic/2136/security_bestask--null/Copyright @ StockSharp Platform LLC 2010 - 20242024-03-28T23:43:42Zhttps://stocksharp.ru/images/logo.pnghttps://stocksharp.ru/posts/m/13841/Ну так у вас стакан ещё пустой, а вы пытаетесь получить данные из него. Естественно падает, ничего у...2011-11-22T16:33:42Z2011-11-22T16:33:42ZAlexanderhttps://stocksharp.ru/users/2826/info@stocksharp.ruНу так у вас стакан ещё пустой, а вы пытаетесь получить данные из него.<br />Естественно падает, ничего удивительного.Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/13839/15795606 22.11.2011 19:44:26 15797742 22.11.2011 19:44:26 15799884 22.11.2011 19:44:26 15800184 22.1...2011-11-22T16:00:01Z2011-11-22T16:00:01Zvaderhttps://stocksharp.ru/users/28223/info@stocksharp.ru15795606 22.11.2011 19:44:26<br />15797742 22.11.2011 19:44:26<br />15799884 22.11.2011 19:44:26<br />15800184 22.11.2011 19:44:26<br />15801671 22.11.2011 19:44:26<br />15804911 22.11.2011 19:44:26<br />15804914 22.11.2011 19:44:26<br />15808007 22.11.2011 19:44:26<br />15811279 22.11.2011 19:44:26<br />15813304 22.11.2011 19:44:26<br />15814551 22.11.2011 19:44:26<br />15821865 22.11.2011 19:44:26<br />15823016 22.11.2011 19:44:26<br />15823983 22.11.2011 19:44:26<br />15824023 22.11.2011 19:44:26<br />15826239 22.11.2011 19:44:26<br />Asks.Count= 0 Bids.Count= 0<br />There is no BestAsk<br />There is no BestBid<br /><br />Здесь вылетела ошибка. // Это я вписал руками<br /><br />Asks.Count= 15 Bids.Count= 20<br />BestAsk.Price= 31629<br />BestBid.Price= 31584<br /><br />Код<br /><div class="code"><strong>Код</strong><div class="innercode"><pre class="brush:csharp">
private void SetStartExpertPrice()
{
if(Security.LastTrade != null && Security.LastTrade.Time.AddMinutes(_validTimeForLastTrade) >= DateTime.Now){
_expertPrice = new ExpertPrice(Security.LastTrade);
}
else{
MarketDepth myGlass = MainWindow.Instance.Trader.GetMarketDepth(Security);
string info = "";
info += "Asks.Count= " + myGlass.Asks.Count() + " Bids.Count= " + myGlass.Bids.Count() + "\n";
if(Security.BestAsk != null){
info += "BestAsk.Price= " + Security.BestAsk.Price + "\n";
}
else{
info += "There is no BestAsk" + "\n";
}
if(Security.BestBid != null){
info += "BestBid.Price= " + Security.BestBid.Price + "\n";
}
else{
info += "There is no BestBid" + "\n";
}
System.Diagnostics.Debug.WriteLine(info);
_expertPrice = new ExpertPrice((Security.BestAsk.Price + Security.BestBid.Price) / 2, DateTime.Now);
}
this.lblPrice.Content = _expertPrice.Price; //Строка 131, на ней вылетела ошибка.
}
</pre>
</div></div><br /><br /><br />Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/13782/Так, стоп. Вначале вы говорили что падает в том числе при обращении к последней сделки. Сейчас же пр...2011-11-19T13:59:24Z2011-11-19T13:59:24ZAlexanderhttps://stocksharp.ru/users/2826/info@stocksharp.ruТак, стоп. Вначале вы говорили что падает в том числе при обращении к последней сделки.<br />Сейчас же приводите код на котором падает при обращении к BestAsk \ BestBid.<br />Давайте либо то либо другое.<br /><br />Если всё же речь о BestAsk \ BestBid - запущен ли экспорт стакана?<br />Также распечатайте размер стакана (размер массивов Asks и Bids, распечатайте BestBid и BestAsk перед обращением. сделайте проверку на null перед печатью)Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/13718/Лог 46228656 18.11.2011 15:31:47 46229702 18.11.2011 15:31:47 46229709 18.11.2011 15:31:47 46230899 ...2011-11-18T11:49:00Z2011-11-18T11:52:08Zvaderhttps://stocksharp.ru/users/28223/info@stocksharp.ruЛог<br /><br />46228656 18.11.2011 15:31:47<br />46229702 18.11.2011 15:31:47<br />46229709 18.11.2011 15:31:47<br />46230899 18.11.2011 15:31:47<br />46231024 18.11.2011 15:31:47<br />46231058 18.11.2011 15:31:47<br />46231070 18.11.2011 15:31:47<br />46231097 18.11.2011 15:31:47<br />46233094 18.11.2011 15:31:47<br />46233798 18.11.2011 15:31:47<br />46259438 18.11.2011 15:31:47<br />46263921 18.11.2011 15:31:47<br />LastTrade 46263921 18.11.2011 15:31:50<br />LastTrade 46263921 18.11.2011 15:31:53<br /><br />Код, вызывающий ошибку<br /><br /><div class="code"><strong>Код</strong><div class="innercode"><pre class="brush:csharp">
private void SetStartExpertPrice()
{
System.Diagnostics.Debug.WriteLine("LastTrade " + Security.LastTrade.Id.ToString() + " " + DateTime.Now.ToString());
decimal aaa = Security.LastTrade.Price;
if(Security.LastTrade != null && Security.LastTrade.Time.AddMinutes(_validTimeForLastTrade) >= DateTime.Now){
_expertPrice = new ExpertPrice(Security.LastTrade);
}
else{
_expertPrice = new ExpertPrice((Security.BestAsk.Price + Security.BestBid.Price) / 2, DateTime.Now);
}
this.lblPrice.Content = _expertPrice.Price;
}
</pre>
</div></div><br /><br /><br />Ошибка, которая вылетела при первом нажатии. Также при этом была выведена запись в лог(предпоследняя строка) - <br />LastTrade 46263921 18.11.2011 15:31:50<br /><br />строка. которая вызвала ошибку <br /><div class="code"><strong>Код</strong><div class="innercode"><pre class="brush:csharp">
_expertPrice = new ExpertPrice((Security.BestAsk.Price + Security.BestBid.Price) / 2, DateTime.Now);
</pre>
</div></div>Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/13674/Если у вас в лог вывелся Exception по LastTrade, то как вы его тут же смогли распечатать? :) Приведи...2011-11-16T15:51:08Z2011-11-16T15:51:08ZAlexanderhttps://stocksharp.ru/users/2826/info@stocksharp.ruЕсли у вас в лог вывелся Exception по LastTrade, то как вы его тут же смогли распечатать? :)<br />Приведите Stack Trace.Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/13671/45400392 16.11.2011 19:36:39 45400759 16.11.2011 19:36:39 45400774 16.11.2011 19:36:39 45401121 16.1...2011-11-16T15:42:56Z2011-11-16T15:42:56Zvaderhttps://stocksharp.ru/users/28223/info@stocksharp.ru45400392 16.11.2011 19:36:39<br />45400759 16.11.2011 19:36:39<br />45400774 16.11.2011 19:36:39<br />45401121 16.11.2011 19:36:39<br />45401254 16.11.2011 19:36:39<br />45402485 16.11.2011 19:36:39<br />45402735 16.11.2011 19:36:39<br />45403663 16.11.2011 19:36:39<br />45403891 16.11.2011 19:36:39<br />45404257 16.11.2011 19:36:39<br />45404276 16.11.2011 19:36:39<br />45404310 16.11.2011 19:36:39<br />45404966 16.11.2011 19:36:39<br />45406613 16.11.2011 19:36:39<br />45407508 16.11.2011 19:36:39<br />45407553 16.11.2011 19:36:39<br />45407569 16.11.2011 19:36:39<br />45407896 16.11.2011 19:36:39<br />45408181 16.11.2011 19:36:39<br />45410170 16.11.2011 19:36:39<br />45410171 16.11.2011 19:36:39<br />45410348 16.11.2011 19:36:39<br />45410529 16.11.2011 19:36:39<br />45414371 16.11.2011 19:36:39<br />45414444 16.11.2011 19:36:39<br />45416006 16.11.2011 19:36:39<br />45418062 16.11.2011 19:36:39<br />45418250 16.11.2011 19:36:39<br />45442295 16.11.2011 19:36:39<br />45452116 16.11.2011 19:36:39<br />45453425 16.11.2011 19:36:39<br />45454071 16.11.2011 19:36:39<br />45461937 16.11.2011 19:36:39<br />45461972 16.11.2011 19:36:39<br />45462884 16.11.2011 19:36:39<br />45463923 16.11.2011 19:36:39<br />45463975 16.11.2011 19:36:39<br />45464653 16.11.2011 19:36:39<br />45468840 16.11.2011 19:36:39<br />45470391 16.11.2011 19:36:39<br />45490130 16.11.2011 19:36:39<br />45502265 16.11.2011 19:36:39<br />45518137 16.11.2011 19:36:39<br />45519552 16.11.2011 19:36:39<br />45523205 16.11.2011 19:36:39<br />45523237 16.11.2011 19:36:39<br />45523348 16.11.2011 19:36:39<br />45523362 16.11.2011 19:36:39<br />45523427 16.11.2011 19:36:39<br />45524721 16.11.2011 19:36:39<br />45524828 16.11.2011 19:36:39<br />45524888 16.11.2011 19:36:39<br />45524976 16.11.2011 19:36:39<br />45525044 16.11.2011 19:36:39<br />45525087 16.11.2011 19:36:39<br />45525096 16.11.2011 19:36:39<br />45529557 16.11.2011 19:36:39<br />45529561 16.11.2011 19:36:39<br />45531562 16.11.2011 19:36:39<br />45531583 16.11.2011 19:36:39<br />45537414 16.11.2011 19:36:39<br />45551153 16.11.2011 19:36:39<br />45551154 16.11.2011 19:36:39<br />45551705 16.11.2011 19:36:39<br />45564005 16.11.2011 19:36:39<br />45570963 16.11.2011 19:36:39<br />45570970 16.11.2011 19:36:39<br />45579735 16.11.2011 19:36:39<br />45579791 16.11.2011 19:36:39<br />45579844 16.11.2011 19:36:39<br />45596928 16.11.2011 19:36:39<br />45601544 16.11.2011 19:36:39<br />45602606 16.11.2011 19:36:39<br />45602654 16.11.2011 19:36:39<br />45625419 16.11.2011 19:36:39<br />45626269 16.11.2011 19:36:39<br />45640580 16.11.2011 19:36:39<br />45643257 16.11.2011 19:36:39<br />45643266 16.11.2011 19:36:39<br />45644114 16.11.2011 19:36:39<br />45644146 16.11.2011 19:36:39<br />45644314 16.11.2011 19:36:39<br />45644319 16.11.2011 19:36:39<br />45644374 16.11.2011 19:36:39<br />45661649 16.11.2011 19:36:39<br />45663573 16.11.2011 19:36:39<br />45664456 16.11.2011 19:36:39<br />45665663 16.11.2011 19:36:39<br />45665784 16.11.2011 19:36:39<br />45666019 16.11.2011 19:36:39<br />45666049 16.11.2011 19:36:39<br />45673018 16.11.2011 19:36:39<br />45678967 16.11.2011 19:36:39<br />45680214 16.11.2011 19:36:39<br />45680262 16.11.2011 19:36:39<br />45680453 16.11.2011 19:36:39<br />45680478 16.11.2011 19:36:39<br />45682695 16.11.2011 19:36:39<br />45682700 16.11.2011 19:36:39<br />45682882 16.11.2011 19:36:39<br />45689789 16.11.2011 19:36:39<br />45694624 16.11.2011 19:36:39<br />45697300 16.11.2011 19:36:39<br />45697655 16.11.2011 19:36:39<br />45702026 16.11.2011 19:36:39<br />45703439 16.11.2011 19:36:39<br />45703451 16.11.2011 19:36:39<br />45706532 16.11.2011 19:36:39<br />45717888 16.11.2011 19:36:39<br />45718122 16.11.2011 19:36:39<br />45720915 16.11.2011 19:36:39<br />45721058 16.11.2011 19:36:39<br />45721116 16.11.2011 19:36:39<br />LastTrade 45721116 16.11.2011 19:36:42<br />LastTrade 45721116 16.11.2011 19:36:43<br /><br />Я нажал на кнопку, вылетел эксепшон и с ним появился лог - LastTrade 45721116 16.11.2011 19:36:42<br />Сразу нажа второй раз - все прошло хорошо - лог такой- LastTrade 45721116 16.11.2011 19:36:43<br />Все время в логах получено через вызов DateTime.NewCopyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/13667/Заметил такую вещь. Вообще обращение происходит в момент нажатия на кнопку. если в первый раз вылете...2011-11-16T12:11:59Z2011-11-16T12:11:59ZAlexanderhttps://stocksharp.ru/users/2826/info@stocksharp.ru<div class="quote"><span class="quotetitle">vader <a href="https://stocksharp.ru/posts/m/13664/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote">Заметил такую вещь.<br />Вообще обращение происходит в момент нажатия на кнопку.<br />если в первый раз вылетел эксепшон,то после нажатия второй раз он не вылетает, все происходит правильно.<br />Если перед нажатием кнопки подождать 10 секнд(в расчет на то что данные прогрузятся) эксепшон вылетит все равно.<br />Экспорт ДДЕ запускается перед нажатием кнопки.</div></div><br /><br />Сделайте вывод в лог события NewTrades и обращения к Security.LastTrade (с указанием времени).Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/13664/Заметил такую вещь. Вообще обращение происходит в момент нажатия на кнопку. если в первый раз вылете...2011-11-16T12:00:52Z2011-11-16T12:00:52Zvaderhttps://stocksharp.ru/users/28223/info@stocksharp.ruЗаметил такую вещь.<br />Вообще обращение происходит в момент нажатия на кнопку.<br />если в первый раз вылетел эксепшон,то после нажатия второй раз он не вылетает, все происходит правильно.<br />Если перед нажатием кнопки подождать 10 секнд(в расчет на то что данные прогрузятся) эксепшон вылетит все равно.<br />Экспорт ДДЕ запускается перед нажатием кнопки.Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/13661/А как можно определить, когда они загрузятся? Чтобы эксепшоны не летали? Если загрузилась хоть одна ...2011-11-16T11:21:18Z2011-11-16T11:21:37ZAlexanderhttps://stocksharp.ru/users/2826/info@stocksharp.ru<div class="quote"><span class="quotetitle">vader <a href="https://stocksharp.ru/posts/m/13659/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote">А как можно определить, когда они загрузятся?<br />Чтобы эксепшоны не летали?</div></div><br /><br />Если загрузилась хоть одна сделка - значит Security.LastTrade не null.<br />Quik поточно передаёт данные по DDE, он их не заканчивает передавать.<br />Логично предположить, что после старта экспорта у нас всё вскоре проставляется. Насколько вскоре - несколько секунд может доходить, DDE не такой шустрый как хотелось бы, для HFT не предназначен.<br /><br />На null проверка не лишняя, имхо.Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/13659/А как можно определить, когда они загрузятся? Чтобы эксепшоны не летали?2011-11-16T11:17:05Z2011-11-16T11:17:05Zvaderhttps://stocksharp.ru/users/28223/info@stocksharp.ruА как можно определить, когда они загрузятся?<br />Чтобы эксепшоны не летали?Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/13656/Часто при первом обращении к последней сделке или к лучшему биду, выскакиевет ошибка "Ссылка на объе...2011-11-16T11:10:43Z2011-11-16T11:10:43ZAlexanderhttps://stocksharp.ru/users/2826/info@stocksharp.ru<div class="quote"><span class="quotetitle">vader <a href="https://stocksharp.ru/posts/m/13654/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote">Часто при первом обращении к последней сделке или к лучшему биду, выскакиевет ошибка "Ссылка на объект не указывает на экземпляр объекта". При повторном обращении объект есть на месте и все работает корректно.<br /></div></div><br /><br />Видимо, они ещё не загрузились при первом обращении.Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/13654/Часто при первом обращении к последней сделке или к лучшему биду, выскакиевет ошибка "Ссылка на объе...2011-11-16T10:49:17Z2011-11-16T10:49:17Zvaderhttps://stocksharp.ru/users/28223/info@stocksharp.ruЧасто при первом обращении к последней сделке или к лучшему биду, выскакиевет ошибка "Ссылка на объект не указывает на экземпляр объекта". При повторном обращении объект есть на месте и все работает корректно.<br />Copyright @ StockSharp Platform LLC 2010 - 2024