﻿<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type='text/css' href='https://stocksharp.ru/css/style.css'?>
<?xml-stylesheet type='text/css' href='https://stocksharp.ru/css/bbeditor.css'?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title type="html">Временные метки хранилища</title>
  <id>~/topic/4798/vremennye-metki-hranilishsha/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-04-10T13:21:45Z</updated>
  <logo>https://stocksharp.ru/images/logo.png</logo>
  <link href="https://stocksharp.ru/handlers/atom.ashx?category=topic&amp;id=4798" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.ru/posts/m/32056/</id>
    <title type="text">Чтобы еще раз все понимали суть переделки насчет UTC. Эта переделка предполагает, что теперь ВСЕ кон...</title>
    <published>2014-11-04T11:29:42Z</published>
    <updated>2016-08-16T00:19:22Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.ru/users/201/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Чтобы еще раз все понимали суть переделки насчет UTC. Эта переделка предполагает, что теперь ВСЕ коннекторы будут возвращать даты в UTC формате.&lt;br /&gt;&lt;br /&gt;Другими словами, если раньше из QuikTrader получали сделку на открытие с меткой времени, например, 10:00:00.234, то после фикса время будет 07:00:00.234 AM. Если в роботе будет захардкодена проверка времени, то теперь эта проверка должна учитывать временную зону. По-умолчанию время создается в Local тайм-зоне. Сравнение двух объектов DateTime учитывает и разницу во временных зонах (07:00:00.234 AM по UTC будет больше, чем 10:00:00.000 +3).&lt;br /&gt;&lt;br /&gt;Но, если у кого на компьютере временная зона будет НЕ соответствовать биржевой, то будет коллизия, которую нужно устранять логикой кода. Например, я торгую на московской бирже, но живу на Камчате (на компьютере у меня разница от Москвы +7 часов). Если я прописываю в коде 10:00, то это означает 10:00 по локальному времени (тоесть 3 часа ночи по Москве). Другими словами, или задавать время 17:00 (если нужно указать 10 по Москве) или создавать DateTime сразу в UTC.&lt;br /&gt;&lt;br /&gt;Само хранилище при этом не изменяется (там все равно время хранится числом, а что именно означает число хранилищу без разницы).&lt;br /&gt;&lt;br /&gt;Релиз, включающий перевод времени на UTC, будет отмечен в Release Notes &lt;a href="http://stocksharp.com/forum/4139/S--API-4-2/ " title="http://stocksharp.com/forum/4139/S--API-4-2/ "&gt;http://stocksharp.com/forum/4139/S--API-4-2/ &lt;/a&gt;а так же в Твиттере &lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAABtZ_X9nfW60hRv_hM6SVnkbNpI2AeMDn24prOB5cmF9Q" title="https://twitter.com/StockSharp "&gt;https://twitter.com/StockSharp &lt;/a&gt;и Контакте &lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAACXIsjN14rgMbgc6-LR0FWyva5yUioqIOMHSgwqU71-dg" title="https://vk.com/stocksharp"&gt;https://vk.com/stocksharp&lt;/a&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/32110/</id>
    <title type="text">Но если подойти с чисто теоретических позиций, при этом наплевав на прыгающую секунду, то достаточно...</title>
    <published>2014-11-11T22:03:48Z</published>
    <updated>2014-11-11T22:03:48Z</updated>
    <author>
      <name>transdex</name>
      <uri>https://stocksharp.ru/users/28233/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Но если подойти с чисто теоретических позиций, при этом наплевав на прыгающую секунду, то достаточно сохранять время биржи и метку географического положения биржи. Все остальные оффсеты можно восстановить из этих данных и базы tz, имеющей копеечный размер.&lt;br /&gt;&lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAABL9B2tVrRy99WNs3t6uGy-M4lQKUM2mOcVDqGmA8Qfkg" title="http://www.iana.org/time-zones
"&gt;http://www.iana.org/time-zones
&lt;/a&gt;&lt;br /&gt;&lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAADrGY-oavKfznMD6UjgnsvdZhDtvmUzSlMZpACFB9RqgA" title="http://zoneinfo.codeplex.com/
"&gt;http://zoneinfo.codeplex.com/
&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;PS.  &lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAADd_WtbVAdsvAF2UnLP9mnWzhK0txxBDPaIA9zVwViR1oEsDDbsT-QqYFraYls1pOs" title="https://ru.wikipedia.org/wiki/Tz_database
"&gt;https://ru.wikipedia.org/wiki/Tz_database
&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;  </content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/32107/</id>
    <title type="text">Во-первых: под &amp;quot; локальное время&amp;quot; я имел ввиду локальное время биржи, т.е. по Вашему - время источни...</title>
    <published>2014-11-11T19:19:44Z</published>
    <updated>2014-11-11T19:21:17Z</updated>
    <author>
      <name>transdex</name>
      <uri>https://stocksharp.ru/users/28233/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Во-первых: под &amp;quot; локальное время&amp;quot; я имел ввиду локальное время биржи, т.е. по Вашему - время источника.&lt;br /&gt;&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Михаил Сухов &lt;a href="https://stocksharp.ru/posts/m/32106/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;&lt;br /&gt; Другими словами, для корректной работы с датами нужно знать: зону назначения (локальная), зону UTC (общеизвестная) и зона источника.&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Если немного переформулировать то необходимо знать время UTC, текущее смещение для зоны источника, и текущее смещение для зоны назначения. Но зона назначения в общем случае заранее неизвестна. Например я сидя в Москве записываю данные Чигагской CME,чтоб использовать (как &amp;quot;поводырь&amp;quot;) в тестировании алгоритма, работающего на MICEX и использующего данные сграбленные и их ftp. А потом я решаю а не потестировать ли мне этот алгоритм на данных сграбленных с сервера Сингапурской биржи... А там вдруг стрелки перевели... Т.е. получается хранить надо UTC и текущие смещения по всем крупным биржевым площадкам.&lt;br /&gt;&lt;br /&gt;Во вторых: с UTC есть один ньюанс - два раза в год одна из минут может законно  иметь от 59 до 61 секунды. Известны случаи, когда солидные серверные OS падали от изумления...&lt;br /&gt;&lt;br /&gt;C TAI ( фр. Temps Atomique International) - Международное атомное время - такого не бывает.&lt;br /&gt;&lt;br /&gt;&lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAABF2QXdee2fAgMPLcUXBgozdKQe-XQvXAFUnhz5qUMDbrlyuB9bYiahGueeugj_H8E" title="http://www.leapsecond.com/java/gpsclock.htm"&gt;http://www.leapsecond.com/java/gpsclock.htm&lt;/a&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/32106/</id>
    <title type="text">Ну так это практически то же самое, что хранить и локальное и UTC ;) Хранится время как раз в UTC. Н...</title>
    <published>2014-11-11T17:41:31Z</published>
    <updated>2014-11-11T17:41:31Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.ru/users/201/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;transdex &lt;a href="https://stocksharp.ru/posts/m/32105/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Ну так это практически то же самое, что хранить и локальное и UTC ;)&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Хранится время как раз в UTC. Но у локального и у UTC времени есть один недостаток - нет информации временной зоны источника. Другими словами, для корректной работы с датами нужно знать: зону назначения (локальная), зону UTC (общеизвестная) и зона источника.&lt;br /&gt;&lt;br /&gt;&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;transdex &lt;a href="https://stocksharp.ru/posts/m/32105/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Я бы еще добавил TAI, иначе как Вы собираетесь обрабатывать коррекционную секунду?&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Я не знаю что такое TAI. Одна лишь ассоциация, но явно не та.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/32105/</id>
    <title type="text">Ну так это практически то же самое, что хранить и локальное и UTC ;) Я бы еще добавил TAI, иначе как...</title>
    <published>2014-11-11T17:22:17Z</published>
    <updated>2014-11-11T17:22:17Z</updated>
    <author>
      <name>transdex</name>
      <uri>https://stocksharp.ru/users/28233/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Ну так это практически то же самое, что хранить и локальное и UTC ;) Я бы еще добавил TAI, иначе как Вы собираетесь обрабатывать коррекционную секунду?</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/32104/</id>
    <title type="text">В процессе переделки получилось следующее: 1. Из-за того, что тут неправильно начали интепретировать...</title>
    <published>2014-11-11T13:17:41Z</published>
    <updated>2014-11-11T13:17:41Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.ru/users/201/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">В процессе переделки получилось следующее:&lt;br /&gt;&lt;br /&gt;1. Из-за того, что тут неправильно начали интепретировать временные зоны, я пришел к выводу, что эта информация для некоторых просто непонятна. Поэтому перевод всего и вся в UTC просто невозможен. Появится сразу проблемы с отображением в непривычной временной зоне время заявок, сделок и т.д.&lt;br /&gt;&lt;br /&gt;2. Со стороны кода робота необходимо все метки времени так же переводить в UTC (вариант, что маркет-дату мы получаем в UTC, а в заявках дату экспирации отправляем в локальном - ведет к еще большим ошибкам).&lt;br /&gt;&lt;br /&gt;В связи с этим переход с DateTime на DateTimeOffset оказался безальтернативным. По мере переделки мне даже начал испонировать данных подход. Во-первых, с внешней стороны мало что меняется (логи, таблицы - все пишется в привычной временной зоне). Можно использовать как и раньше локальное время. Во-вторых, можно использовать одновременно подход с разными временными зонами. Например, делать запрос времени в локальном формате или в UTC - и интепретироваться это будет одинаково.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/32066/</id>
    <title type="text"> А Windows выдает только последнее изменение правил. Так что данные, которые были сохранены скажем в...</title>
    <published>2014-11-06T14:07:58Z</published>
    <updated>2014-11-06T14:07:58Z</updated>
    <author>
      <name>pma37592</name>
      <uri>https://stocksharp.ru/users/50555/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Михаил Сухов &lt;a href="https://stocksharp.ru/posts/m/32063/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;pma37592 &lt;a href="https://stocksharp.ru/posts/m/32058/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;&lt;br /&gt;А Windows выдает только последнее изменение правил. Так что данные, которые были сохранены скажем в 2000 году, не получится правильно отобразить, т.к. правила изменения смещения уже менялись.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Я не знаю что такое &amp;quot;последнее изменение правил&amp;quot;, но Windows хранит историю изменения Daylight saving time.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Не каждая версия windows, и не по каждой временной зоне. Я бы вот протестил этот вопрос прежде, чем приступать к реализации.&lt;br /&gt;А еще как только microsoft перестает поддерживать очередную версию windows, настройка Daylight saving time головная боль пользователей windows.&lt;br /&gt;Лучше не надеяться на microsoft в этом вопросе.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/32063/</id>
    <title type="text"> А Windows выдает только последнее изменение правил. Так что данные, которые были сохранены скажем в...</title>
    <published>2014-11-05T17:03:47Z</published>
    <updated>2014-11-05T17:03:47Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.ru/users/201/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;pma37592 &lt;a href="https://stocksharp.ru/posts/m/32058/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;&lt;br /&gt;А Windows выдает только последнее изменение правил. Так что данные, которые были сохранены скажем в 2000 году, не получится правильно отобразить, т.к. правила изменения смещения уже менялись.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Я не знаю что такое &amp;quot;последнее изменение правил&amp;quot;, но Windows хранит историю изменения Daylight saving time.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/32061/</id>
    <title type="text">А почему нельзя хранить и локальное и UTC? А в чем смысл? </title>
    <published>2014-11-05T11:31:58Z</published>
    <updated>2014-11-05T11:31:58Z</updated>
    <author>
      <name>pma37592</name>
      <uri>https://stocksharp.ru/users/50555/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;transdex &lt;a href="https://stocksharp.ru/posts/m/32059/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;А почему нельзя хранить и локальное и UTC?&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;А в чем смысл?&lt;br /&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/32059/</id>
    <title type="text">А почему нельзя хранить и локальное и UTC? </title>
    <published>2014-11-04T20:44:42Z</published>
    <updated>2014-11-04T20:44:42Z</updated>
    <author>
      <name>transdex</name>
      <uri>https://stocksharp.ru/users/28233/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">А почему нельзя хранить и локальное и UTC?&lt;br /&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/32058/</id>
    <title type="text">А может оставить все как есть. Лучше оставить данные, как они приходят с коннектора, и если нужно то...</title>
    <published>2014-11-04T16:09:54Z</published>
    <updated>2014-11-04T16:14:28Z</updated>
    <author>
      <name>pma37592</name>
      <uri>https://stocksharp.ru/users/50555/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">А может оставить все как есть.&lt;br /&gt;Лучше оставить данные, как они приходят с коннектора, и если нужно то дописать временную зону уже в приложении.&lt;br /&gt;Если перейдете на UTC, то нужно хранить все изменения в правилах изменения временной зоны. А у нас за последние 3 года правила менялись 3 раза.&lt;br /&gt;А Windows выдает только последнее изменение правил. Так что данные, которые были сохранены скажем в 2000 году, не получится правильно отобразить, т.к. правила изменения смещения уже менялись. Так что каждый раз когда изменяются правила перехода на летнее или зимнее время, нельзя правильно отобразить предыдущие данные, которые были сохранены со старыми правилами. И тогда возникнет путаница.&lt;br /&gt;Придется все изменения правил перехода на летнее и зимнее время хранить. А нужен такая проблема?</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/32057/</id>
    <title type="text">А что будет с историей Гидры, в которой хранятся данные во временной зоне коннектора? </title>
    <published>2014-11-04T14:39:12Z</published>
    <updated>2014-11-04T14:39:12Z</updated>
    <author>
      <name>devruss</name>
      <uri>https://stocksharp.ru/users/50604/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">А что будет с историей Гидры, в которой хранятся данные во временной зоне коннектора? </content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/32055/</id>
    <title type="text">я тоже за UTC. С таймзоной все проще - достаточно вначале программы задать UTC offset для своей тайм...</title>
    <published>2014-11-04T07:52:06Z</published>
    <updated>2014-11-04T07:52:06Z</updated>
    <author>
      <name>devruss</name>
      <uri>https://stocksharp.ru/users/50604/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">я тоже за UTC. С таймзоной все проще - достаточно вначале программы задать UTC offset для своей таймзоны и время будет как обычно</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/32054/</id>
    <title type="text">логичнее сделать UTC</title>
    <published>2014-11-04T06:18:00Z</published>
    <updated>2014-11-04T06:18:00Z</updated>
    <author>
      <name>RomSunZ</name>
      <uri>https://stocksharp.ru/users/6384/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">логичнее сделать UTC</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/32052/</id>
    <title type="text">Всех приветствую. Провели в прошедшем месяце ревью нашего хранилища маркет-данных. Обнаружилась недо...</title>
    <published>2014-11-03T17:42:37Z</published>
    <updated>2014-11-03T17:42:37Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.ru/users/201/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Всех приветствую.&lt;br /&gt;&lt;br /&gt;Провели в прошедшем месяце ревью нашего хранилища маркет-данных. Обнаружилась недоработка в плане хранения данных - отсутствует признак временной зоны. Проблема на текущий момент не сильно актуальная (большинство живет в зоне +3 и торгует на московской бирже, поэтому никакой сдвиг не нужен), но фиксить нужно сейчас.&lt;br /&gt;&lt;br /&gt;Для тех, кто не совсем понял о чем речь приведу простой пример. Вы пишите данные торгов московской биржи. Время, что в Москве равно 10:00, будет записано как 10:00. Далее, вы переезжаете на Камчатку, прихватив с собой диск с историей. Запускаете программу, она рисует в истории 10:00 как локальное время. Но это неправильно. Вы уже в другой временной зоне, и записанные данные должны учитывать это.&lt;br /&gt;&lt;br /&gt;Основная проблема, как это ни странно, вовсе не в хранилище. А в коннекторах к торговым системам. Сейчас отправляется DateTime, который в себе содержит только метку времени (без временной зоны). В хранилище понять уже невозможно в какой зоне получена метка времени. Вариантов решения два:&lt;br /&gt;&lt;br /&gt;1. Для всех данных, что имеют метку времени (а это почти все) вместо DateTime использовать DateTimeOffset. Плюс в том, что внешне ничего не изменится. Минус - потребление памяти увеличиться.&lt;br /&gt;&lt;br /&gt;2. Перейти на UTC. На истории все метки времени будут в UTC, поэтому время будет единым (и для Москвы и для Камчатки). Но будет несколько непривычно.&lt;br /&gt;&lt;br /&gt;Мне лично нравится ваариант 2. Но пока переделки не вступили в силу, можно обсудить. Релиз будет через неделю. Отмечу особо - это не тот страшный релиз, о котором я писал в чате. Тот будет во второй половине ноября.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>