﻿<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type='text/css' href='https://stocksharp.com/css/style.css'?>
<?xml-stylesheet type='text/css' href='https://stocksharp.com/css/bbeditor.css'?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title type="html">Конвертация исторических файлов QScalp в формат StockSharp</title>
  <id>~/topic/322/konvertatsiya-istoricheskih-failov-qscalp-v-format-stocksharp/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-06-11T09:43:39Z</updated>
  <logo>https://stocksharp.com/images/logo.png</logo>
  <link href="https://stocksharp.com/handlers/atom.ashx?category=topic&amp;id=322" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.com/posts/m/50811/</id>
    <title type="text">Mikhail Sukhov: Обновил утилиту. Перевел на 17ую версию, заобно пофиксил ошибки. Бинарники так же по...</title>
    <published>2020-07-15T20:11:34Z</published>
    <updated>2020-07-15T20:20:22Z</updated>
    <author>
      <name>zoh</name>
      <uri>https://stocksharp.com/users/129056/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(49587)" rel="nofollow" target="_blank"&gt;Mikhail Sukhov&lt;/a&gt;:&lt;/strong&gt;
Обновил утилиту. Перевел на 17ую версию, заобно пофиксил ошибки. Бинарники так же по ссылке &lt;a href="https://github.com/StockSharp/Qsh2Bin/releases" target="_blank"&gt;https://github.com/StockSharp/Qsh2Bin/releases&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Важный момент при анализе записей. QSH не имеет признака временной зоны у времени. Поэтому понять в какой временной зоне записаны данные невозможно. С большей вероятностью она может быть или Московская или UTC. Точно могу сказать, что Церих и Айти в разных временных зонах пишут данные.&lt;/p&gt;
&lt;p&gt;Как вишенка на торт - временная зона биржевой даты так же может отличаться от временной зоны локальной метки (хотя, это вполне логично, но вдруг для кого-то сюрприз).&lt;/p&gt;
&lt;p&gt;Как решить это проблему. Конечно же, надо писать всё в UTC. Но данные и формат уже легаси, поэтому в утилите две выпадающих списка. Один для установка временной зоны локальной отметки, другой для биржевой.&lt;/p&gt;
&lt;p&gt;После конвертации может Гидрой или через S#.Storage API просмотреть полученные данные на предмет времени. Если начало торгов что-то вроде 7 часов утра - значит временная зона была в UTC.&lt;/p&gt;
&lt;p&gt;Пишите о своём опыте использования. Ошибки старайтесь сами исправить, исходники на Гите. Папку с рефами не заливал, чтобы не захламлять дистрибутив. Думаю, кто умеет код пистать, эту проблему порешает.&lt;/p&gt;
&lt;p&gt;Данные по качестве средней паршивости и для пипсовых алгоритмов совершенно бесполезные из-за недостоверной отметки времени и пропуска ряда цен внутри спреда (я про стакан). Но объемы более менее совпадают по итогу. Сервис уже достоин медали, что столь долго существует, и его ещё кто-то поддерживает.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;А АйТи ещё продолжает шарить записи с qscalp ?&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/49587/</id>
    <title type="text">Обновил утилиту. Перевел на 17ую версию, заобно пофиксил ошибки. Бинарники так же по ссылке https://...</title>
    <published>2020-02-22T11:36:36Z</published>
    <updated>2020-02-22T11:36:59Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.com/users/201/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Обновил утилиту. Перевел на 17ую версию, заобно пофиксил ошибки. Бинарники так же по ссылке &lt;a href="https://github.com/StockSharp/Qsh2Bin/releases" target="_blank"&gt;https://github.com/StockSharp/Qsh2Bin/releases&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Важный момент при анализе записей. QSH не имеет признака временной зоны у времени. Поэтому понять в какой временной зоне записаны данные невозможно. С большей вероятностью она может быть или Московская или UTC. Точно могу сказать, что Церих и Айти в разных временных зонах пишут данные.&lt;/p&gt;
&lt;p&gt;Как вишенка на торт - временная зона биржевой даты так же может отличаться от временной зоны локальной метки (хотя, это вполне логично, но вдруг для кого-то сюрприз).&lt;/p&gt;
&lt;p&gt;Как решить это проблему. Конечно же, надо писать всё в UTC. Но данные и формат уже легаси, поэтому в утилите две выпадающих списка. Один для установка временной зоны локальной отметки, другой для биржевой.&lt;/p&gt;
&lt;p&gt;После конвертации может Гидрой или через S#.Storage API просмотреть полученные данные на предмет времени. Если начало торгов что-то вроде 7 часов утра - значит временная зона была в UTC.&lt;/p&gt;
&lt;p&gt;Пишите о своём опыте использования. Ошибки старайтесь сами исправить, исходники на Гите. Папку с рефами не заливал, чтобы не захламлять дистрибутив. Думаю, кто умеет код пистать, эту проблему порешает.&lt;/p&gt;
&lt;p&gt;Данные по качестве средней паршивости и для пипсовых алгоритмов совершенно бесполезные из-за недостоверной отметки времени и пропуска ряда цен внутри спреда (я про стакан). Но объемы более менее совпадают по итогу. Сервис уже достоин медали, что столь долго существует, и его ещё кто-то поддерживает.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/49185/</id>
    <title type="text">Я не трейдер, меня попросили сконвертировать данные в csv или txt, нашел вашу утилиту, но она выдает...</title>
    <published>2019-12-20T00:56:21Z</published>
    <updated>2019-12-20T00:56:21Z</updated>
    <author>
      <name>Di</name>
      <uri>https://stocksharp.com/users/98974/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Я не трейдер, меня попросили сконвертировать данные в csv или txt, нашел вашу утилиту, но она выдает ошибку при конвертации.
qsh.7z исходные файлы и то что получается SBER@FORTS.7z&lt;/p&gt;
&lt;p&gt;Что делаю не так?&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/49093/</id>
    <title type="text">Здравствуйте, у меня Qsh2bin не видит файлы QSH </title>
    <published>2019-11-30T09:17:02Z</published>
    <updated>2019-11-30T09:17:02Z</updated>
    <author>
      <name>samosh</name>
      <uri>https://stocksharp.com/users/116373/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Здравствуйте, у меня Qsh2bin не видит файлы QSH&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/49013/</id>
    <title type="text">Позвольте глупый вопрос... При импорте данных QSH по инструменту RIZ2019 за 20.11.19 первая строка: ...</title>
    <published>2019-11-22T03:07:30Z</published>
    <updated>2019-11-22T03:07:30Z</updated>
    <author>
      <name>GIP</name>
      <uri>https://stocksharp.com/users/116045/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Позвольте глупый вопрос... При импорте данных QSH по инструменту RIZ2019 за 20.11.19 первая строка: 064624425;+03:00;637098399844250000;38091733454;143780;1;Buy;Done;PutInQueue;;;; 64624425 это время в миллисекундах с начала дня, получается 18 часов? Или это 06:46? Первая сделка должна проходить в 10:00 мск.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/48959/</id>
    <title type="text">Писал подобную утилиту для TSLab и тоже заметил проблему рассинхронизации стакана и сделок. Как я по...</title>
    <published>2019-11-15T14:25:32Z</published>
    <updated>2019-11-15T14:29:00Z</updated>
    <author>
      <name>MichaelShpin</name>
      <uri>https://stocksharp.com/users/16700/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Писал подобную утилиту для TSLab и тоже заметил проблему рассинхронизации стакана и сделок.
Как я понял эту проблему:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Есть лаг между событием на бирже и записью в локальный фаил. Он может достигать существенное количество секунд.&lt;/li&gt;
&lt;li&gt;Записанный отдельно стакан в Quotes.qsh не имеет того самого реального (биржевого события), а только время локальной записи.&lt;/li&gt;
&lt;li&gt;Сделка же летит сразу со временем, и можно увидеть этот лаг между временем записи и времен в самой сделке.&lt;br /&gt;
При генерации из ордер лога всё хорошо, так как в логе есть все записи, а вот с акциями придётся наворачивать.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Как поступил я.&lt;/p&gt;
&lt;p&gt;Если акция я просто создаю сразу 2  QshReader для Deals.qsh и Quotes.qsh. И начинаю их читать опираясь на внутреннее время записи  QshReader CurrentDateTime, и стакан синхронизирую относительно времени сделки.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;

if (readers.Count &amp;gt; 1)
				{
					while (true)
					{
						if (readers.All(qr =&amp;gt; qr.CurrentDateTime == DateTime.MaxValue))
							break;

						QshReader rd = readers.OrderBy(qr =&amp;gt; qr.CurrentDateTime).First();
						rd.Read(true);
					}

					foreach (QshReader r in readers)
						r.Dispose();
				}
				else 
				{
					QshReader qr = readers[0];

					while (qr.CurrentDateTime != DateTime.MaxValue)
						qr.Read(true);

					qr.Dispose();
				}

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Есть засада, что стаканы до первой сделки придётся проигнорировать, но в моей задаче была цель узнать лучший Бид/Аск в момент сделки и я её так решил.&lt;/p&gt;
&lt;p&gt;Надеюсь помог.&lt;/p&gt;
&lt;p&gt;Думаю скоро погружусь в эту задачу и для StokSharp&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/48933/</id>
    <title type="text">Тип Unknown для quotes действительно надо фильтровать, в файле MainWindow.xaml.cs я добавил Where va...</title>
    <published>2019-11-12T17:12:03Z</published>
    <updated>2019-11-12T17:12:03Z</updated>
    <author>
      <name>traveller</name>
      <uri>https://stocksharp.com/users/115646/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Тип Unknown для quotes действительно надо фильтровать, в файле MainWindow.xaml.cs я добавил Where
var quotes2 = quotes**.Where(q =&amp;gt; q.Type != QuoteType.Unknown)**.Select(...
что позволяет сразу выкинуть этот тип из рассмотрения.&lt;/p&gt;
&lt;p&gt;И цена бывает иногда нулевая, тоже можно фильтровать при желании.&lt;/p&gt;
&lt;p&gt;Для правки времени согласен с постом выше, можно использовать
ServerTime = qr.CurrentDateTime.ApplyTimeZone(TimeHelper.Moscow)
и тогда присвоение currentDate выше можно удалить, оно нигде не используется.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/47367/</id>
    <title type="text">Опытным путем разобрался с проблемой времени! Если у вас в папке, из которой вы конвертируете, лежат...</title>
    <published>2019-04-28T12:26:18Z</published>
    <updated>2019-04-28T16:46:49Z</updated>
    <author>
      <name>Sun_Storm</name>
      <uri>https://stocksharp.com/users/104266/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Опытным путем разобрался с проблемой времени!
Если у вас в папке, из которой вы конвертируете, лежат сразу 3 файла на день из архива &lt;a href="http://erinrv.qscalp.ru" rel="nofollow" target="_blank"&gt;http://erinrv.qscalp.ru&lt;/a&gt; (Deals, Quotes &lt;strong&gt;И AuxInfo&lt;/strong&gt;), то конвертация будет некорректной!
Я скачивал сразу все 3 файла, и из одной папки конвертировал, поэтому была ошибка.
Если в папке лежат 2 файла на день - Deals, Quotes, то всё конвертируется нормально (если не считать ошибки по акциям, описанной мной выше)&lt;/p&gt;
&lt;p&gt;UPD:
В общем это я поспешил, что разобрался, всё равно время некорректно ставится.
Ошибка плавающая... Я в потоках этих не разбираюсь...
Однако, если прописать вместо
ServerTime = currentDate.ApplyTimeZone(TimeHelper.Moscow),
ServerTime = qr.CurrentDateTime.ApplyTimeZone(TimeHelper.Moscow),
то вроде будет работать и время сменяться. Только в файлах начало дня при таком раскладе будет 4 часа.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/47366/</id>
    <title type="text">Добрый день. Пробую сейчас сконвертировать данные через этот конвертер. Данные беру отсюда: http://e...</title>
    <published>2019-04-28T09:17:33Z</published>
    <updated>2019-04-28T09:18:42Z</updated>
    <author>
      <name>Sun_Storm</name>
      <uri>https://stocksharp.com/users/104266/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Добрый день.
Пробую сейчас сконвертировать данные через этот конвертер. Данные беру отсюда: &lt;a href="http://erinrv.qscalp.ru" rel="nofollow" target="_blank"&gt;http://erinrv.qscalp.ru&lt;/a&gt;, за апрель
Возникли следующие ошибки:
При загрузке данных стаканов по акциям Сбербанка возникала ошибка и данные не грузились.
Проблему я решил, порывшись в исходниках. там в исходном файле в начале торгов есть строки с ценой и объемом 0 и типом Unknown. Когда тип Unknown, программа сразу выдает исключение:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;
switch (q.Type)
{
	case QuoteType.Unknown:
	case QuoteType.Free:
	case QuoteType.Spread:
		throw new ArgumentException(q.Type.ToString());

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Написал пока так для себя, не знаю, как в С# принято такое обрабатывать, когда у нас только 2 значения side:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;
switch (q.Type)
{
	case QuoteType.Free:
	case QuoteType.Spread:
		throw new ArgumentException(q.Type.ToString());
	case QuoteType.Unknown:
		\\throw new ArgumentException(q.Type.ToString());
		side = 0;
		break;

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Второй ошибкой является то, что для всех стаканов (файл quotes) время проставляется одно и то же для каждой строчки на весь файл.
Эта ошибка проявляется и для акций и для фьючерсов.
Пока не могу её побороть. сохранение в файл делается средствами StockSharp.Algo.Storages, все исходники там, как я понимаю. По отладке не могу понять, какие параметры должны быть у pair, чтобы в строке registry.GetQuoteMessageStorage(pair.Key, format: format).Save(pair.Value.Item1); запись происходила как надо. Пробовал менять LocalTime и ServerTime для каждого набора, всё равно сохраняет неправильно (со временем 35517549, например)&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/46899/</id>
    <title type="text">Viacheslav: Коллеги, правильно ли я понимаю, что файлы сделок и стаканов на athistory.zerich.com и h...</title>
    <published>2019-03-11T09:12:36Z</published>
    <updated>2019-03-11T09:12:36Z</updated>
    <author>
      <name>torontoxx</name>
      <uri>https://stocksharp.com/users/50737/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(46878)" rel="nofollow" target="_blank"&gt;Viacheslav&lt;/a&gt;:&lt;/strong&gt;
Коллеги, правильно ли я понимаю, что файлы сделок и стаканов на athistory.zerich.com и &lt;a href="http://qsh.qscalp.ru/scalping.pro" rel="nofollow" target="_blank"&gt;http://qsh.qscalp.ru/scalping.pro&lt;/a&gt; - это данные по Московской бирже?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Надо полагать, да&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/46878/</id>
    <title type="text">Коллеги, правильно ли я понимаю, что файлы сделок и стаканов на athistory.zerich.com и http://qsh.qs...</title>
    <published>2019-03-08T14:20:28Z</published>
    <updated>2019-03-08T14:20:28Z</updated>
    <author>
      <name>Viacheslav</name>
      <uri>https://stocksharp.com/users/103998/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Коллеги, правильно ли я понимаю, что файлы сделок и стаканов на athistory.zerich.com и &lt;a href="http://qsh.qscalp.ru/scalping.pro" rel="nofollow" target="_blank"&gt;http://qsh.qscalp.ru/scalping.pro&lt;/a&gt; - это данные по Московской бирже?&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/46871/</id>
    <title type="text">Дмитрий Антипов: torontoxx: Дмитрий Антипов: Добрый день. Подскажите пожалуйста. Почему так получает...</title>
    <published>2019-03-06T13:49:39Z</published>
    <updated>2019-03-06T13:49:39Z</updated>
    <author>
      <name>torontoxx</name>
      <uri>https://stocksharp.com/users/50737/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(46870)" rel="nofollow" target="_blank"&gt;Дмитрий Антипов&lt;/a&gt;:&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(46867)" rel="nofollow" target="_blank"&gt;torontoxx&lt;/a&gt;:&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(46856)" rel="nofollow" target="_blank"&gt;Дмитрий Антипов&lt;/a&gt;:&lt;/strong&gt;
Добрый день.&lt;/p&gt;
&lt;p&gt;Подскажите пожалуйста.&lt;/p&gt;
&lt;p&gt;Почему так получается?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Может надо цену умножать на шаг (priceStep) по аналогии с заявками из ордерлога?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Подскажите пожалуйста, на какой строке проекта находится данная &amp;quot;аналогия с заявками из ордерлога&amp;quot;?&lt;/p&gt;
&lt;p&gt;Отследил чтение. Нужно в этом методе что-то менять?
&lt;img src="/file/108681/Снимок.PNG" alt="Снимок.PNG" /&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Попробуйте поменять строку №380 в файле MainWindow.xaml.cs:&lt;/p&gt;
&lt;p&gt;Старая строка: TradePrice = deal.Price,
Исправленная срока: TradePrice = deal.Price * priceStep,&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/46870/</id>
    <title type="text">torontoxx: Дмитрий Антипов: Добрый день. Подскажите пожалуйста. Почему так получается? Может надо це...</title>
    <published>2019-03-06T13:41:16Z</published>
    <updated>2019-03-06T13:43:26Z</updated>
    <author>
      <name>Дмитрий_</name>
      <uri>https://stocksharp.com/users/62269/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(46867)" rel="nofollow" target="_blank"&gt;torontoxx&lt;/a&gt;:&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(46856)" rel="nofollow" target="_blank"&gt;Дмитрий Антипов&lt;/a&gt;:&lt;/strong&gt;
Добрый день.&lt;/p&gt;
&lt;p&gt;Подскажите пожалуйста.&lt;/p&gt;
&lt;p&gt;Почему так получается?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Может надо цену умножать на шаг (priceStep) по аналогии с заявками из ордерлога?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Подскажите пожалуйста, на какой строке проекта находится данная &amp;quot;аналогия с заявками из ордерлога&amp;quot;?&lt;/p&gt;
&lt;p&gt;Отследил чтение. Нужно в этом методе что-то менять?
&lt;img src="/file/108681/Снимок.PNG" alt="Снимок.PNG" /&gt;&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/46867/</id>
    <title type="text">Дмитрий Антипов: Добрый день. Подскажите пожалуйста. Почему так получается? Может надо цену умножать...</title>
    <published>2019-03-05T16:58:30Z</published>
    <updated>2019-03-05T16:58:30Z</updated>
    <author>
      <name>torontoxx</name>
      <uri>https://stocksharp.com/users/50737/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(46856)" rel="nofollow" target="_blank"&gt;Дмитрий Антипов&lt;/a&gt;:&lt;/strong&gt;
Добрый день.&lt;/p&gt;
&lt;p&gt;Подскажите пожалуйста.&lt;/p&gt;
&lt;p&gt;Почему так получается?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Может надо цену умножать на шаг (priceStep) по аналогии с заявками из ордерлога?&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/46856/</id>
    <title type="text">Добрый день. Подскажите пожалуйста. Имею данные (c ftp://athistory.zerich.com/). GAZP.2019-01-30.Dea...</title>
    <published>2019-03-04T20:35:53Z</published>
    <updated>2019-03-04T20:50:43Z</updated>
    <author>
      <name>Дмитрий_</name>
      <uri>https://stocksharp.com/users/62269/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Добрый день.&lt;/p&gt;
&lt;p&gt;Подскажите пожалуйста.&lt;/p&gt;
&lt;p&gt;Имею данные (c &lt;a href="ftp://athistory.zerich.com/" rel="nofollow" target="_blank"&gt;ftp://athistory.zerich.com/&lt;/a&gt;).
&lt;a href="/file/108668/GAZP.2019-01-30.Deals.qsh"&gt;GAZP.2019-01-30.Deals.qsh&lt;/a&gt;
&lt;a href="/file/108669/GAZP.2019-01-30.Quotes.qsh"&gt;GAZP.2019-01-30.Quotes.qsh&lt;/a&gt;
&lt;a href="/file/108670/LKOH.2019-01-30.Deals.qsh"&gt;LKOH.2019-01-30.Deals.qsh&lt;/a&gt;
&lt;a href="/file/108671/LKOH.2019-01-30.Quotes.qsh"&gt;LKOH.2019-01-30.Quotes.qsh&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="/file/108672/Снимок.PNG" alt="Снимок.PNG" /&gt;
Пробовал ставить и MICEX площадку и бинарные данные.&lt;/p&gt;
&lt;p&gt;Стаканы грузятся корректно, но сделки не совсем.&lt;/p&gt;
&lt;p&gt;Для Газпрома цену нужно разделить на 100 и тогда ок.
&lt;img src="/file/108673/Снимок.PNG" alt="Снимок.PNG" /&gt;&lt;/p&gt;
&lt;p&gt;Для Лукойла цену нужно разделить на 2 и тогда ок.
&lt;img src="/file/108674/Снимок.PNG" alt="Снимок.PNG" /&gt;&lt;/p&gt;
&lt;p&gt;Почему так получается?&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/46845/</id>
    <title type="text">Все-таки интересно, почему лучшие цены в стакане, собранным утилитой (PlazaOrderLogMarketDepthBuilde...</title>
    <published>2019-03-01T19:17:20Z</published>
    <updated>2019-03-01T19:17:20Z</updated>
    <author>
      <name>torontoxx</name>
      <uri>https://stocksharp.com/users/50737/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Все-таки интересно, почему лучшие цены в стакане, собранным утилитой (PlazaOrderLogMarketDepthBuilder) отличаются от лучших цен QScalp. Неужели один из двух дает неверный результат? Или я что-то не понимаю...&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/46825/</id>
    <title type="text">Хотя нет, утилита все еще неудовлетворительно собирает стакан. Стал на истории сравнивать лучшие цен...</title>
    <published>2019-02-26T17:09:58Z</published>
    <updated>2019-02-26T17:09:58Z</updated>
    <author>
      <name>torontoxx</name>
      <uri>https://stocksharp.com/users/50737/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Хотя нет, утилита все еще неудовлетворительно собирает стакан. Стал на истории сравнивать лучшие цены, рассчитанные утилитой с лучшими ценами, выводимыми QScalp и обнаружил, что разница между ними большая. Для &lt;a href="ftp://zerich.qscalp.ru/2019-02-25/RTS-3.19.2019-02-25.OrdLog.qsh" rel="nofollow" target="_blank"&gt;фьючерса на индекс РТС за 25 февраля&lt;/a&gt;, например разница составляет 2-3 шага цены (20-30 пунктов)&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/46809/</id>
    <title type="text">Mikhail Sukhov: Поправил утилиту, чтобы поддерживала новый формат. Утилитой кто-то пользуется? Или О...</title>
    <published>2019-02-25T08:01:25Z</published>
    <updated>2019-02-25T08:01:25Z</updated>
    <author>
      <name>torontoxx</name>
      <uri>https://stocksharp.com/users/50737/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(46243)" rel="nofollow" target="_blank"&gt;Mikhail Sukhov&lt;/a&gt;:&lt;/strong&gt;
&lt;a href="https://github.com/StockSharp/Qsh2Bin/releases/tag/4.4.14" target="_blank"&gt;Поправил утилиту&lt;/a&gt;, чтобы поддерживала новый формат.&lt;/p&gt;
&lt;p&gt;Утилитой кто-то пользуется? Или ОЛ уже интересен только единицам?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Здравствуйте. Я пользуюсь утилитой. Огромное за нее спасибо - очень полезная вещь. Но я обнаружил, что утилита неправильно собирает стакан.
Как я это обнаружил. Я добавил в утилиту функцию подсчета суммарного объема стакана по бидам и аскам (глубина стакана 50) и сохранения суммарного объема, а также лучшей цены в файл.
Т.е. я добавил после строки 509 метода ConvertFile файла MainWindow.xaml.cs следующий код (под спойлером):&lt;/p&gt;
&lt;div class="spoiler"&gt;
&lt;pre&gt;&lt;code&gt;
var bestBidQuote = builder.Depth.GetBestBid();

decimal BestBidPrice = (bestBidQuote == null) ? 0 : bestBidQuote.Price;

decimal BidVolume = 0;

var quotes = builder.Depth.Bids.Take(orderBookMaxDepth).ToArray();

foreach (var item in quotes)
{

	BidVolume += item.Volume;
}

var bestAskQuote = builder.Depth.GetBestAsk();

decimal BestAskPrice = (bestAskQuote == null) ? 0 : bestAskQuote.Price;

decimal AskVolume = 0;

var quotes = builder.Depth.Asks.Take(orderBookMaxDepth).ToArray();

foreach (var item in quotes)
{

	AskVolume += item.Volume;
}

... сохраняем BestBidPrice, BidVolume, BestAskPrice, AskVolume в файл ...


&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;Далее я протестировал утилиту на исторических данных фьючерса на индекс РТС (RTS-3.19), скаченных с сайта цериха и сравнил полученные объемы стакана с объемами, которые выводит QScalp на этих же исторических данных.
Результаты отличались: объемы, рассчитанные утилитой на порядок превышали объемы QScalp. Я пришел к выводу, что проблема в коде в строках 438 - 441 метода ConvertFile файла MainWindow.xaml.cs:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;
else if (ol.Flags.Contains(OrdLogFlags.Moved))
{

	status |= 0x100000;
}

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;По совету пользователя vk37 от 26.01.2016 я установил OrderState = Done для заявок с флагом Moved:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;
else if (ol.Flags.Contains(OrdLogFlags.Moved))
{

    status |= 0x100000;
    msg.OrderState = OrderStates.Done;
}

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;И утилита стала считать объемы стакана правильно. Скажите пожалуйста, насколько мое решение верно?
Пользователь vk37 в своем сообщении от 26.01.2016 вообще советует устанавливать OrderState = Done для всех заявок из ордерлога, кроме добавляемых заявок (с флагом Add). Скажите пожалуйста, насколько его совет правильный?&lt;/p&gt;
&lt;p&gt;Но это еще не все. Когда я стал сравнивать лучшие цены и суммарные объемы стакана после вечернего клиринга с данными, выводимыми QScalp, то обнаружил, что они отличаются: объемы рассчитанные утилитой в разы превышали объемы QScalp.
Я пришел к выводу, что утилита при сборке стакана некорректно обрабатывает вечерний клиринг, фактически не очищая стакан. Вот пример результата работы утилиты в вечерний клиринг:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Перед вечерним клирингом (время 18:44:59.926) суммарный объем по бидам = 2186, по аскам = 1889.&lt;/li&gt;
&lt;li&gt;При обработке всех последующих заявок из ордерлога в период вечернего клиринга получаем пустой стакан (список котировок по бидам и аскам, а также лучшие цены пустые).&lt;/li&gt;
&lt;li&gt;Начало вечерней сессии (время 19:0:0.347). Поступила заявка, в результате которой получаем лучшую цену по аскам, а суммарный объем по аскам = 2612, что фактически составляет суммарный объем до клиринга плюс объем заявок, поступивших в период вечернего клиринга.&lt;/li&gt;
&lt;li&gt;Аналогично с бидами: время 19:0:0.505, поступает заявка, в результате которой получаем лучшую цену по бидам, а суммарный объем по бидам = 2536, что фактически составляет суммарный объем до клиринга плюс объем заявок, поступивших в период вечернего клиринга.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Я решил очищать стакан в вечерний клиринг просто создавая новый экземпляр builder:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;
builder = new PlazaOrderLogMarketDepthBuilder(securityId);

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Теперь результаты утилиты и QScalp совпадают.&lt;/p&gt;
&lt;p&gt;Скажите пожалуйста, насколько мое решение верно и каким еще образом можно очищать стакан (мой метод мне кажется слишком грубым).&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/46570/</id>
    <title type="text">Я юзаю сею утиль </title>
    <published>2019-02-04T15:56:08Z</published>
    <updated>2019-02-04T15:56:08Z</updated>
    <author>
      <name>Константин</name>
      <uri>https://stocksharp.com/users/98279/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Я юзаю сею утиль&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/46243/</id>
    <title type="text">Поправил утилиту, чтобы поддерживала новый формат. Утилитой кто-то пользуется? Или ОЛ уже интересен ...</title>
    <published>2019-01-13T23:48:06Z</published>
    <updated>2019-01-13T23:48:06Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.com/users/201/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;&lt;a href="https://github.com/StockSharp/Qsh2Bin/releases/tag/4.4.14" target="_blank"&gt;Поправил утилиту&lt;/a&gt;, чтобы поддерживала новый формат.&lt;/p&gt;
&lt;p&gt;Утилитой кто-то пользуется? Или ОЛ уже интересен только единицам?&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>