Level1Change в API 4.2.1~/topic/4163/level1change-v-api-4_2_1/Copyright @ StockSharp Platform LLC 2010 - 20242024-03-29T05:04:16Zhttps://stocksharp.ru/images/logo.pnghttps://stocksharp.ru/posts/m/28537/Так не получиться. Под месседжи будет свой формат, отдельный. Будет основан на протоколе FAST. А SC ...2013-11-29T08:30:41Z2016-08-16T00:15:46Zvk37https://stocksharp.ru/users/6296/info@stocksharp.ru<div class="quote"><span class="quotetitle">vk37 <a href="https://stocksharp.ru/posts/m/28453/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote"><div class="quote"><span class="quotetitle">Михаил Сухов <a href="https://stocksharp.ru/posts/m/28345/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote">Так не получиться. Под месседжи будет свой формат, отдельный. Будет основан на протоколе FAST. А SC - это комбинация L1 и L1Msg.</div></div>SC.Time брать из L1Msg.LocalTimeStamp?<br /><br /></div></div>Ответ: <a href="http://stocksharp.com/posts/m/28536/
" title="http://stocksharp.com/posts/m/28536/
">http://stocksharp.com/posts/m/28536/
</a><br /><br />Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/28533/Я выбираю "Помощь зала" )) Ну в общем, этот код возвращает большое количество Level1ChangeMessage у ...2013-11-29T07:58:37Z2013-11-29T07:58:37Zvk37https://stocksharp.ru/users/6296/info@stocksharp.ru<div class="quote"><span class="quotetitle">Михаил Сухов <a href="https://stocksharp.ru/posts/m/28508/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote">Я выбираю "Помощь зала"</div></div> )) Ну в общем, этот код возвращает большое количество Level1ChangeMessage у которого в коллекции Changes отсутствуют элементы.<div class="code"><strong>Код</strong><div class="innercode"><pre class="brush:csharp">
readonly HashSet<Level1Fields> _level1Fields = new HashSet<Level1Fields>(new[]
{
Level1Fields.AsksCount,
Level1Fields.AsksVolume,
Level1Fields.BidsCount,
Level1Fields.BidsVolume,
Level1Fields.HistoricalVolatility,
Level1Fields.ImpliedVolatility,
Level1Fields.MarginBuy,
Level1Fields.MarginSell,
Level1Fields.StepPrice,
Level1Fields.PriceStep,
Level1Fields.OpenInterest,
});
private void OnSecuritiesChanged(IEnumerable<Security> securities)
{
foreach (var security in securities)
{
var changeMessage = security.GetNewChanges(_level1Fields);
if (!changeMessage.Changes.Any())
continue;
}
}</pre>
</div></div><br />Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/28508/Не совсем понял фразы. Огромное количество отсутствующих изменений? Это как? :-)!changeMessage.Chang...2013-11-28T17:30:07Z2013-11-28T17:30:07ZMikhail Sukhovhttps://stocksharp.ru/users/201/info@stocksharp.ru<div class="quote"><span class="quotetitle">vk37 <a href="https://stocksharp.ru/posts/m/28476/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote"><div class="quote"><span class="quotetitle">Михаил Сухов <a href="https://stocksharp.ru/posts/m/28474/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote">Не совсем понял фразы. Огромное количество отсутствующих изменений? Это как? :-)</div></div><div class="code"><strong>Код</strong><div class="innercode"><pre class="brush:csharp">
!changeMessage.Changes.Any()</pre>
</div></div><br /><br /></div></div><br /><br />Я выбираю "Помощь зала"Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/28476/Не совсем понял фразы. Огромное количество отсутствующих изменений? Это как? :-)!changeMessage.Chang...2013-11-28T06:30:32Z2013-11-28T06:30:32Zvk37https://stocksharp.ru/users/6296/info@stocksharp.ru<div class="quote"><span class="quotetitle">Михаил Сухов <a href="https://stocksharp.ru/posts/m/28474/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote">Не совсем понял фразы. Огромное количество отсутствующих изменений? Это как? :-)</div></div><div class="code"><strong>Код</strong><div class="innercode"><pre class="brush:csharp">
!changeMessage.Changes.Any()</pre>
</div></div><br /><br />Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/28474/Кстати при вызове security.GetNewChanges приходит огромное количество Level1ChangeMessage с отсутств...2013-11-28T03:06:41Z2013-11-28T03:06:41ZMikhail Sukhovhttps://stocksharp.ru/users/201/info@stocksharp.ru<div class="quote"><span class="quotetitle">vk37 <a href="https://stocksharp.ru/posts/m/28455/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote">Кстати при вызове security.GetNewChanges приходит огромное количество Level1ChangeMessage с отсутствующими изменениями.</div></div><br /><br />Не совсем понял фразы. Огромное количество отсутствующих изменений? Это как? :-)Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/28455/Кстати при вызове security.GetNewChanges приходит огромное количество Level1ChangeMessage с отсутств...2013-11-27T08:30:52Z2013-11-27T08:30:52Zvk37https://stocksharp.ru/users/6296/info@stocksharp.ruКстати при вызове security.GetNewChanges приходит огромное количество Level1ChangeMessage с отсутствующими изменениями.Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/28453/Так не получиться. Под месседжи будет свой формат, отдельный. Будет основан на протоколе FAST. А SC ...2013-11-27T07:36:23Z2013-11-27T07:36:23Zvk37https://stocksharp.ru/users/6296/info@stocksharp.ru<div class="quote"><span class="quotetitle">Михаил Сухов <a href="https://stocksharp.ru/posts/m/28345/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote">Так не получиться. Под месседжи будет свой формат, отдельный. Будет основан на протоколе FAST. А SC - это комбинация L1 и L1Msg.</div></div>SC.Time брать из L1Msg.LocalTimeStamp?<br /><br />Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/28347/ Так не получиться. Под месседжи будет свой формат, отдельный. Будет основан на протоколе FAST. А SC...2013-11-21T07:05:54Z2013-11-21T07:05:54Zvk37https://stocksharp.ru/users/6296/info@stocksharp.ru<div class="quote"><span class="quotetitle">Михаил Сухов <a href="https://stocksharp.ru/posts/m/28345/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote"><br /><br />Так не получиться. Под месседжи будет свой формат, отдельный. Будет основан на протоколе FAST. А SC - это комбинация L1 и L1Msg.</div></div>Тогда получается как-то так:<div class="code"><strong>Код</strong><div class="innercode"><pre class="brush:csharp">
var messagesBySecurity =
from c in messagesFromQueue
group c by c.SecurityId
into g
select g;
foreach (var messageBySecurity in messagesBySecurity)
{
var security = new Security() {Id = messageBySecurity.Key.Native.ToString()};
var securityChangeStorage = _storageRegistry.GetSecurityChangeStorage(security, _defaultDrive);
try
{
var securityChanges = new List<SecurityChange>();
foreach (var message in messageBySecurity)
foreach (var change in message.Changes)
securityChanges.Add(new SecurityChange(security, message.LocalTimeStamp, change.Type, change.Value));
securityChangeStorage.Save(securityChanges);
}
catch (Exception e)
{
Log.Error("Ошибка при сохранении изменений инструментов", e);
}
}</pre>
</div></div><br />Или есть способ проще?Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/28345/Работаю над закачкой маркет данных (свой аналог Гидры). Плаза коннектор. Попробовал перевести закачк...2013-11-20T22:49:12Z2013-11-20T22:49:12ZMikhail Sukhovhttps://stocksharp.ru/users/201/info@stocksharp.ru<div class="quote"><span class="quotetitle">vk37 <a href="https://stocksharp.ru/posts/m/28344/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote">Работаю над закачкой маркет данных (свой аналог Гидры). Плаза коннектор. Попробовал перевести закачку SecurityChanges на Level1Change.</div></div><br /><br />Так не получиться. Под месседжи будет свой формат, отдельный. Будет основан на протоколе FAST. А SC - это комбинация L1 и L1Msg.Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/28344/Работаю над закачкой маркет данных (свой аналог Гидры). Плаза коннектор. Попробовал перевести закачк...2013-11-20T21:32:19Z2013-11-20T21:43:40Zvk37https://stocksharp.ru/users/6296/info@stocksharp.ruРаботаю над закачкой маркет данных (свой аналог Гидры). Плаза коннектор. Попробовал перевести закачку SecurityChanges на Level1Change. Получаю данные так: <div class="code"><strong>Код</strong><div class="innercode"><pre class="brush:csharp">
readonly HashSet<Level1Fields> _level1Fields = new HashSet<Level1Fields>(new[]
{
Level1Fields.AsksCount,
Level1Fields.AsksVolume,
Level1Fields.BidsCount,
Level1Fields.BidsVolume,
Level1Fields.HistoricalVolatility,
Level1Fields.ImpliedVolatility,
Level1Fields.MarginBuy,
Level1Fields.MarginSell,
Level1Fields.StepPrice,
Level1Fields.PriceStep,
Level1Fields.OpenInterest,
});
private void OnSecuritiesChanged(IEnumerable<Security> securities)
{
foreach (var security in securities)
{
var changeMessage = security.GetNewChanges(_level1Fields);
_saveManager.Level1ChangeMessages.Enqueue(changeMessage);
}
}</pre>
</div></div>Сохраняю данные так: <div class="code"><strong>Код</strong><div class="innercode"><pre class="brush:csharp">
var level1ChangeMessagesBySecurity =
from c in level1ChangeMessagesFromQueue
group c by c.SecurityId
into g
select g;
foreach (var level1ChangeMessageBySecurity in level1ChangeMessagesBySecurity)
{
var level1ChangeStorage = _storageRegistry.GetLevel1ChangeStorage(new Security() { Id = level1ChangeMessageBySecurity.Key.Native.ToString()}, _defaultDrive);
try
{
level1ChangeStorage.Save(level1ChangeMessageBySecurity);
}
catch (Exception e)
{
Log.Error("Ошибка при сохранении изменений инструментов", e);
}
}</pre>
</div></div>При сохранении получаю ошибку: <div class="code"><strong>Код</strong><div class="innercode"><pre class="brush:plain">
{"Unable to cast object of type 'Grouping[StockSharp.Messages.SecurityId,StockSharp.Messages.Level1ChangeMessage]' to type 'System.Collections.Generic.IEnumerable`1[StockSharp.Algo.Storages.SecurityChange]'."}</pre>
</div></div>Не понятно почему идет попытка привести StockSharp.Messages.Level1ChangeMessage к типу StockSharp.Algo.Storages.SecurityChange. Предполагаю это баг.Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/28342/Не совсем понятно в API 4.2.1: Level1Change заменит SecurityChange?2013-11-20T21:07:45Z2013-11-20T21:08:02Zvk37https://stocksharp.ru/users/6296/info@stocksharp.ruНе совсем понятно в API 4.2.1: Level1Change заменит SecurityChange?Copyright @ StockSharp Platform LLC 2010 - 2024