﻿<?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">Закрытие позиций за 5 секунд до закрытия</title>
  <id>~/topic/3253/zakrytie-pozitsii-za-5-sekund-do-zakrytiya/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-06-19T13:22:31Z</updated>
  <logo>https://stocksharp.com/images/logo.png</logo>
  <link href="https://stocksharp.com/handlers/atom.ashx?category=topic&amp;id=3253" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.com/posts/m/23745/</id>
    <title type="text">aerv: Это снимает риски отказа DNS серверов. Но добавляет риски неожиданной смены IP </title>
    <published>2013-02-04T07:45:14Z</published>
    <updated>2013-02-04T07:45:14Z</updated>
    <author>
      <name>VassilSanych</name>
      <uri>https://stocksharp.com/users/6491/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(23744)" rel="nofollow" target="_blank"&gt;aerv&lt;/a&gt;:&lt;/strong&gt;
Это снимает риски отказа DNS серверов.
Но добавляет риски неожиданной смены IP&lt;/p&gt;
&lt;/blockquote&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/23744/</id>
    <title type="text">VassilSanych: Безотносительно к трейдингу w32tm /monitor /computers:0.ru.pool.ntp.org Покажет смещен...</title>
    <published>2013-02-04T03:56:37Z</published>
    <updated>2013-02-04T03:56:37Z</updated>
    <author>
      <name>aerv</name>
      <uri>https://stocksharp.com/users/28151/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(23743)" rel="nofollow" target="_blank"&gt;VassilSanych&lt;/a&gt;:&lt;/strong&gt;
Безотносительно к трейдингу
w32tm /monitor /computers:0.ru.pool.ntp.org
Покажет смещение времени на сервере относительно локального времени:
Кстати, вместо DNS имен можно указывать IP адреса. Это снимает риски отказа DNS серверов.&lt;/p&gt;
&lt;/blockquote&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/23743/</id>
    <title type="text">Безотносительно к трейдингу Синхронизация часов в Windows w32tm /config /syncfromflags:manual /manua...</title>
    <published>2013-02-03T21:02:19Z</published>
    <updated>2013-02-03T21:02:19Z</updated>
    <author>
      <name>VassilSanych</name>
      <uri>https://stocksharp.com/users/6491/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Безотносительно к трейдингу
Синхронизация часов в Windows&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-bash"&gt;w32tm /config /syncfromflags:manual /manualpeerlist:0.ru.pool.ntp.org,1.ru.pool.ntp.org,2.ru.pool.ntp.org,3.ru.pool.ntp.org /update
w32tm /resync
w32tm /query /status
&lt;/code&gt;&lt;/pre&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/23741/</id>
    <title type="text">Для России хороши сервера 0.ru.pool.ntp.org 1.ru.pool.ntp.org 2.ru.pool.ntp.org 3.ru.pool.ntp.org Он...</title>
    <published>2013-02-03T20:10:44Z</published>
    <updated>2013-02-03T20:56:57Z</updated>
    <author>
      <name>VassilSanych</name>
      <uri>https://stocksharp.com/users/6491/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Для России хороши сервера
0.ru.pool.ntp.org
1.ru.pool.ntp.org
2.ru.pool.ntp.org
3.ru.pool.ntp.org
Они во-первых работают, а во-вторых пинг до них в 4-10 раз меньше, чем до серверов Пиндостана.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/23722/</id>
    <title type="text">VassilSanych: aerv: Кстати, для синхронизации времени вполне достаточно настроить штатную службу вре...</title>
    <published>2013-02-03T03:42:49Z</published>
    <updated>2013-02-03T03:42:49Z</updated>
    <author>
      <name>aerv</name>
      <uri>https://stocksharp.com/users/28151/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(23712)" rel="nofollow" target="_blank"&gt;VassilSanych&lt;/a&gt;:&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(23711)" rel="nofollow" target="_blank"&gt;aerv&lt;/a&gt;:&lt;/strong&gt;
Кстати, для синхронизации времени вполне достаточно настроить штатную службу времени в Windows.
&lt;a href="http://technet.microsoft.com/en-us/library/cc773263%28v=ws.10%29.aspx" target="_blank"&gt;параметры реестра&lt;/a&gt;
Там есть небольшая сносочка с предупреждением. По смыслу - &amp;quot;осторожно! мы сами этой хрени не доверяем&amp;quot;.
Ну, у меня много месяцев она работает так как надо. Разумеется, я никому ничего не навязываю. )&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(23714)" rel="nofollow" target="_blank"&gt;MenDel&lt;/a&gt;:&lt;/strong&gt;
Да кстати можно ещ добавить проверку инета, а то вдруг его отрубят а он будет все пытвться время узнать.
Так ведь никакой рекурсии не будет?
А смысл всего этого? Если инет есть, то и по NTP ответ придет. Если инета нет, то и сделать ничего нельзя.&lt;/p&gt;
&lt;/blockquote&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/23711/</id>
    <title type="text">Без рекурсии: void TimeSync(object state) { int count = 0; const int maxAttempts = 100; while (true)...</title>
    <published>2013-02-02T13:32:10Z</published>
    <updated>2013-02-03T03:22:47Z</updated>
    <author>
      <name>aerv</name>
      <uri>https://stocksharp.com/users/28151/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Без рекурсии:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-csharp"&gt;        void TimeSync(object state) {
      int count = 0;
      const int maxAttempts = 100;
      while (true) {
        try {
          // Getting time offset
          // Logging
          break;
        } catch {
          count++;
          // Logging
        }
        if (count &amp;gt;= maxAttempts)
          break;
        Thread.Sleep((int) (1000*(3 + Math.Exp(count/5.0))));  // Рассчитывать задержку можно как угодно
      }
      ((ManualResetEvent) state).Set();
    }

    [TestMethod]
    public void TimeCorrectTest() {
      var ev = new ManualResetEvent(false);
      ThreadPool.QueueUserWorkItem( TimeSync, ev );
      ev.WaitOne(); // Блокировка - для теста
    }


&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Кстати, для синхронизации времени вполне достаточно настроить штатную службу времени в Windows.
&lt;a href="http://technet.microsoft.com/en-us/library/cc773263%28v=ws.10%29.aspx" target="_blank"&gt;параметры реестра&lt;/a&gt;
&lt;a href="https://support.ntp.org/bin/view/Servers/StratumTwoTimeServers" rel="nofollow" target="_blank"&gt;сервера&lt;/a&gt;
&lt;a href="http://www.pool.ntp.org/zone/europe" rel="nofollow" target="_blank"&gt;пул серверов&lt;/a&gt;
&lt;a href="http://system-administrators.info/?p=1359" rel="nofollow" target="_blank"&gt;Это для общего понимания&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/23714/</id>
    <title type="text">Да кстати можно ещ добавить проверку инета, а то вдруг его отрубят а он будет все пытвться время узн...</title>
    <published>2013-02-02T18:33:46Z</published>
    <updated>2013-02-02T18:54:45Z</updated>
    <author>
      <name>MenDel</name>
      <uri>https://stocksharp.com/users/6356/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Да кстати можно ещ добавить проверку инета, а то вдруг его отрубят а он будет все пытвться время узнать.&lt;/p&gt;
&lt;p&gt;Так ведь никакой рекурсии не будет?&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-csharp"&gt;ThreadPool.QueueUserWorkItem(_ =&amp;gt; TimeSync());

private void TimeSync()
        {
            IPStatus status = IPStatus.Unknown;
            try
            {
                PingReply pr = new Ping().Send(@&amp;quot;google.ru&amp;quot;);
                status = pr.Status;
            }
            catch { }

            if (status == IPStatus.Success)
            {
                int i = 0;
                while(true)
                {
                    i++;
                    try
                    {
                        LoggingHelper.SyncMarketTime(50);
                        this.GuiAsync(() =&amp;gt; Message(&amp;quot;Время синхронизировано&amp;quot;));
                        break;
                    }
                    catch
                    {
                        if (i%10 == 0)
                        {
                            PingReply pr = new Ping().Send(@&amp;quot;google.ru&amp;quot;);
                            status = pr.Status;
                        }
                        if (status != IPStatus.Success) break;
                        if (i &amp;lt;= 10) Thread.Sleep(1000);
                        else if (i &amp;gt; 10 &amp;amp;&amp;amp; i &amp;lt;= 50) Thread.Sleep(10000);
                        else if (i &amp;gt; 50) Thread.Sleep(60000);
                    }
                }
            }
        }
&lt;/code&gt;&lt;/pre&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/23712/</id>
    <title type="text">aerv: А зачем рекурсия-то? Можно и так. Правда блокировать торговый функционал, пока не будет успешн...</title>
    <published>2013-02-02T14:00:21Z</published>
    <updated>2013-02-02T14:00:21Z</updated>
    <author>
      <name>VassilSanych</name>
      <uri>https://stocksharp.com/users/6491/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(23711)" rel="nofollow" target="_blank"&gt;aerv&lt;/a&gt;:&lt;/strong&gt;
А зачем рекурсия-то?
Можно и так.
Правда блокировать торговый функционал, пока не будет успешной синхронизации часов, - это, повторюсь, не комильфо.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(23711)" rel="nofollow" target="_blank"&gt;aerv&lt;/a&gt;:&lt;/strong&gt;
Кстати, для синхронизации времени вполне достаточно настроить штатную службу времени в Windows.
&lt;a href="http://technet.microsoft.com/en-us/library/cc773263%28v=ws.10%29.aspx" target="_blank"&gt;параметры реестра&lt;/a&gt;
Там есть небольшая сносочка с предупреждением. По смыслу - &amp;quot;осторожно! мы сами этой хрени не доверяем&amp;quot;.&lt;/p&gt;
&lt;/blockquote&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/23707/</id>
    <title type="text">Замучила совесть: исправил свой код. Теперь - в одном дополнительном потоке и без вложенных исключен...</title>
    <published>2013-02-01T17:42:43Z</published>
    <updated>2013-02-01T17:42:43Z</updated>
    <author>
      <name>VassilSanych</name>
      <uri>https://stocksharp.com/users/6491/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Замучила совесть: исправил свой код.
Теперь - в одном дополнительном потоке и без вложенных исключений.
Саму синхронизацию выделил в отдельный метод.
Возможно стоит перебрать сервера из списка
&lt;a href="http://tf.nist.gov/tf-cgi/servers.cgi" rel="nofollow" target="_blank"&gt;http://tf.nist.gov/tf-cgi/servers.cgi&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/23695/</id>
    <title type="text">MenDel: может это этот сервер (time.nist.gov:123) не айс, Это ссылка на рандомный сервер из списка. ...</title>
    <published>2013-02-01T10:08:01Z</published>
    <updated>2013-02-01T17:38:01Z</updated>
    <author>
      <name>VassilSanych</name>
      <uri>https://stocksharp.com/users/6491/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(23673)" rel="nofollow" target="_blank"&gt;MenDel&lt;/a&gt;:&lt;/strong&gt;
может это этот сервер (time.nist.gov:123) не айс,
Это ссылка на рандомный сервер из списка.
Да, временами он govnist.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Вот мой код синхронизации:&lt;/p&gt;
&lt;div class="spoiler"&gt;
&lt;pre&gt;&lt;code class="language-csharp"&gt;private int _timeSyncCount = 0; 
		private void SyncTime()
		{
			try
			{
				CustomSyncTime();
			}
			catch (Exception)
			{		
				this.AddErrorLog(&amp;quot;Ошибка синхронизации времени&amp;quot;);
				ThreadPool.QueueUserWorkItem(_ =&amp;gt; RecurciveSyncTime());
			}
		}

		private void CustomSyncTime()
		{
			// уже синхронизировалось
				if (LoggingHelper.NowOffset != TimeSpan.Zero)
					return;
				LoggingHelper.NowOffset = new NtpClient(&amp;quot;time.nist.gov:123&amp;quot;).GetLocalTime(TimeZoneInfo.Local, 10000).Subtract(DateTime.Now);
				this.AddDebugLog(&amp;quot;Время синхронизировано&amp;quot;);
		}

		private void RecurciveSyncTime()
		{
			try
			{
				CustomSyncTime();
				return;
			}
			catch
			{
				this.AddErrorLog(&amp;quot;Ошибка синхронизации времени&amp;quot;);
			}

				// первая треть попыток - раз в 10 секунд  
			if (++_timeSyncCount &amp;lt; Settings.Default.TimeSyncAttempts / 3)
			{
				Thread.Sleep(10000);
					RecurciveSyncTime();
				}
			// вторая треть попыток - раз в 100 секунд  (чуть больше полутора минут)
			else if (_timeSyncCount &amp;lt; 2 * Settings.Default.TimeSyncAttempts / 3)
				{
					Thread.Sleep(100000);
					RecurciveSyncTime();
				}
			// оставшиеся попытки - раз в 1000 секунд   (16.7 минут)
			else if (_timeSyncCount &amp;lt; Settings.Default.TimeSyncAttempts)
				{
					Thread.Sleep(1000000);
					RecurciveSyncTime();
				}
		}
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/23706/</id>
    <title type="text">MenDel: Если не считать первой причины, я использую другой поток, каюсь, не обратил внимание на то, ...</title>
    <published>2013-02-01T17:17:19Z</published>
    <updated>2013-02-01T17:18:19Z</updated>
    <author>
      <name>VassilSanych</name>
      <uri>https://stocksharp.com/users/6491/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(23705)" rel="nofollow" target="_blank"&gt;MenDel&lt;/a&gt;:&lt;/strong&gt;
Если не считать первой причины,
я использую другой поток,
каюсь, не обратил внимание на то, что вызов из дополнительного потока.
&lt;strong&gt;&lt;a href="@message(23705)" rel="nofollow" target="_blank"&gt;MenDel&lt;/a&gt;:&lt;/strong&gt;
я не вывожу ошибку в лог,
хммм... довольно опрометчиво.
&lt;strong&gt;&lt;a href="@message(23705)" rel="nofollow" target="_blank"&gt;MenDel&lt;/a&gt;:&lt;/strong&gt;
и ты ведь тоже запускаешь повторно метод из catch, я немного не понимаю про рекурсию и GC
у меня ограниченное количество запусков и большие паузы.
GC не отслеживает переменные метода, пока он не завершён, вроде.
Но в любом случае при глубокой рекурсии будет переполнение стека на одну только адресацию, а отжирание памяти на сериализацию исключений - это будет бонус :)
Не забывай, что в каждом исключении будет нарастающая вложенность.
&lt;strong&gt;&lt;a href="@message(23705)" rel="nofollow" target="_blank"&gt;MenDel&lt;/a&gt;:&lt;/strong&gt;
Может проще прописать в LoggingHelper.SyncMarketTime(5000); 5000 или другое кол-во милисекунд?
на сколько я понимаю, это таймаут, а не пауза
&lt;strong&gt;&lt;a href="@message(23705)" rel="nofollow" target="_blank"&gt;MenDel&lt;/a&gt;:&lt;/strong&gt;
и тогда не придется усыплять поток и осчитывать итерации и тем более что он сам задает NowOffset.
Или я что то недопонимаю.
Ставить дополнительный поток на паузу - вещь не накладная. Главное, чтобы слишком много потоков не занимать, но с пулом это вроде тоже не большая проблема.
В принципе конечно можно всё в одном дополнительном потоке делать. Просто лень было лишний метод писать :)
Идея была в том, что первая попытка выполняется синхронно, а дальше уже в фоне.
Кстати методика себя оправдала.
Запустил - писало, что ошибка синхронизации. Оставил, пошёл ужинать. Через 2 часа обнаружил, что практически все 2 часа синхронизация не срабатывала и сработала только попытки с 18-й (у меня их всего - 21 была).&lt;/p&gt;
&lt;/blockquote&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/23705/</id>
    <title type="text">VassilSanych: MenDel: А я ща сделал просто, будет коннектится пока не получит свое, вот Так нельзя. ...</title>
    <published>2013-02-01T16:48:35Z</published>
    <updated>2013-02-01T16:48:35Z</updated>
    <author>
      <name>MenDel</name>
      <uri>https://stocksharp.com/users/6356/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(23703)" rel="nofollow" target="_blank"&gt;VassilSanych&lt;/a&gt;:&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(23699)" rel="nofollow" target="_blank"&gt;MenDel&lt;/a&gt;:&lt;/strong&gt;
А я ща сделал просто, будет коннектится пока не получит свое, вот
Так нельзя.
Во-первых, если опрашивать чаще, чем раз в 4 секунды, то сервер будет блокировать запросы (так написано у них)
во-вторых, если запрашивать в одном потоке, то будет блокироваться основной функционал ради второстепенной информации,
в-третьих, от частых сообщений об ошибке засрётся лог,
upd
в-четвёртых, рекурсия блокирует GC, и при большой рекурсивной вложенности будет переполнение буфера.
upd
Особенно рекурсия через Exception. А там между прочим каждый раз будет производиться сериализация после рефлекшн.
Представляете какого размера будет staсktrace после 20000-й итерации?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;Если не считать первой причины,
я использую другой поток,
я не вывожу ошибку в лог,
и ты ведь тоже запускаешь повторно метод из catch, я немного не понимаю про рекурсию и GC
Может проще прописать в LoggingHelper.SyncMarketTime(5000); 5000 или другое кол-во милисекунд?
и тогда не придется усыплять поток и осчитывать итерации и тем более что он сам задает NowOffset.
Или я что то недопонимаю.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/23703/</id>
    <title type="text">MenDel: А я ща сделал просто, будет коннектится пока не получит свое, вот Так нельзя. Во-первых, есл...</title>
    <published>2013-02-01T14:58:32Z</published>
    <updated>2013-02-01T15:13:40Z</updated>
    <author>
      <name>VassilSanych</name>
      <uri>https://stocksharp.com/users/6491/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(23699)" rel="nofollow" target="_blank"&gt;MenDel&lt;/a&gt;:&lt;/strong&gt;
А я ща сделал просто, будет коннектится пока не получит свое, вот
Так нельзя.
Во-первых, если опрашивать чаще, чем раз в 4 секунды, то сервер будет блокировать запросы (так написано у них)
во-вторых, если запрашивать в одном потоке, то будет блокироваться основной функционал ради второстепенной информации,
в-третьих, от частых сообщений об ошибке засрётся лог,
upd
в-четвёртых, рекурсия блокирует GC, и при большой рекурсивной вложенности будет переполнение буфера.
upd
Особенно рекурсия через Exception. А там между прочим каждый раз будет производиться сериализация после рефлекшн.
Представляете какого размера будет staсktrace после 20000-й итерации?&lt;/p&gt;
&lt;/blockquote&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/23699/</id>
    <title type="text">Это ссылка на рандомный сервер из списка. Да, временами он govnist. Вот мой код синхронизации: priva...</title>
    <published>2013-02-01T14:06:31Z</published>
    <updated>2013-02-01T14:07:05Z</updated>
    <author>
      <name>MenDel</name>
      <uri>https://stocksharp.com/users/6356/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;Это ссылка на рандомный сервер из списка.
Да, временами он govnist.&lt;/p&gt;
&lt;p&gt;Вот мой код синхронизации:&lt;/p&gt;
&lt;div class="spoiler"&gt;&lt;/div&gt;&lt;/blockquote&gt;
&lt;pre&gt;&lt;code class="language-csharp"&gt;		private int _timeSyncCount = 0; 
		private void SyncTime()
		{
			try
			{
				// уже синхронизировалось
				if (LoggingHelper.NowOffset != TimeSpan.Zero)
					return;
				LoggingHelper.NowOffset = new NtpClient(&amp;quot;time.nist.gov:123&amp;quot;).GetLocalTime(TimeZoneInfo.Local, 10000).Subtract(DateTime.Now);
				this.AddDebugLog(&amp;quot;Время синхронизировано&amp;quot;);
			}
			catch (Exception)
			{		
				this.AddErrorLog(&amp;quot;Ошибка синхронизации времени&amp;quot;);
				// первая треть попыток - раз в 10 секунд  
				if (++_timeSyncCount &amp;lt; Settings.Default.TimeSyncAttempts / 3)
				ThreadPool.QueueUserWorkItem((x) =&amp;gt; 
					{ 
						Thread.Sleep(10000);
						SyncTime();
					});
				// вторая треть попыток - раз в 100 секунд  (чуть больше полутора минут)
				else if (_timeSyncCount &amp;lt; 2 * Settings.Default.TimeSyncAttempts / 3)
					ThreadPool.QueueUserWorkItem((x) =&amp;gt;
					{
						Thread.Sleep(100000);
						SyncTime();
					});
				// оставшиеся попытки - раз в 1000 секунд   (16.7 минут)
				else if (_timeSyncCount &amp;lt; Settings.Default.TimeSyncAttempts)
					ThreadPool.QueueUserWorkItem((x) =&amp;gt;
					{
						Thread.Sleep(1000000);
						SyncTime();
					});
			}
		}
&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;&lt;p&gt;А я ща сделал просто, будет коннектится пока не получит свое, вот&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-csharp"&gt;private void TimeSync()
        {
            try
            {                
                LoggingHelper.SyncMarketTime(50);
                this.GuiAsync(() =&amp;gt;
                    {
                        Message(&amp;quot;Время синхронизировано&amp;quot;);
                    });
            }
            catch { TimeSync(); }
        }
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;А запускаю его так ```csharp
ThreadPool.QueueUserWorkItem(_ =&amp;gt; TimeSync());&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;
А можно тупо поставить прогу Absolute Time Corrector, очень удобная, ставишь интервал и она сама часы на компе подводит, хоть каждую секунду.
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/23674/</id>
    <title type="text">Точнее подвисает рабочее окно Значит вы этот метод вызываете в UI потоке. И пока он не выполнится(по...</title>
    <published>2013-01-30T15:43:04Z</published>
    <updated>2013-01-30T15:43:04Z</updated>
    <author>
      <name>Moadip</name>
      <uri>https://stocksharp.com/users/5973/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;Точнее подвисает рабочее окно
Значит вы этот метод вызываете в UI потоке.
И пока он не выполнится(по умолчанию 5 сек.), дальше код выполнятся не будет - от этого и подвисает.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;может это этот сервер (time.nist.gov:123) не айс,
межет можно еще какие нибудь сервера попробывать?
Можно синхронизировать хоть по какому серверу, хоть вручную.
&lt;strong&gt;SyncMarketTime&lt;/strong&gt; просто выставляет в &lt;strong&gt;NowOffset&lt;/strong&gt; временное смещение.&lt;/p&gt;
&lt;/blockquote&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/23673/</id>
    <title type="text">Moadip: LoggingHelper.SyncMarketTime Не подскажете почему при синхронизации времени подвисает робот?...</title>
    <published>2013-01-30T15:03:02Z</published>
    <updated>2013-01-30T15:18:56Z</updated>
    <author>
      <name>MenDel</name>
      <uri>https://stocksharp.com/users/6356/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(23665)" rel="nofollow" target="_blank"&gt;Moadip&lt;/a&gt;:&lt;/strong&gt;
&lt;a href="http://stocksharp.com/doc/html/M_StockSharp_Logging_LoggingHelper_SyncMarketTime.htm"&gt;&lt;strong&gt;LoggingHelper.SyncMarketTime&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Не подскажете почему при синхронизации времени подвисает робот?
Точнее подвисает рабочее окно, не проверял как он в этот момент сделки со стаканом получает.
И частенько вылетает ошибка, что удаленный компьютер не отвечает,
может это этот сервер (time.nist.gov:123) не айс,
межет можно еще какие нибудь сервера попробывать?&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/23665/</id>
    <title type="text">LoggingHelper.SyncMarketTime </title>
    <published>2013-01-29T18:19:23Z</published>
    <updated>2013-01-29T18:19:23Z</updated>
    <author>
      <name>Moadip</name>
      <uri>https://stocksharp.com/users/5973/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;&lt;a href="http://stocksharp.com/doc/html/M_StockSharp_Logging_LoggingHelper_SyncMarketTime.htm"&gt;&lt;strong&gt;LoggingHelper.SyncMarketTime&lt;/strong&gt;&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/23664/</id>
    <title type="text">Народ подскажите как время точное выставлять на компе. Я думаю вы этим пользуетесь, если не жалко по...</title>
    <published>2013-01-29T17:14:45Z</published>
    <updated>2013-01-29T17:14:45Z</updated>
    <author>
      <name>MenDel</name>
      <uri>https://stocksharp.com/users/6356/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Народ подскажите как время точное выставлять на компе.
Я думаю вы этим пользуетесь, если не жалко поделитесь кодом[blush]
А то он чет у меня совсем время криво считает, каждый вечер приходится руками выставлять.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/23626/</id>
    <title type="text">MenDel: ra81: Вообще ранее в стратегиях было TimeCome и на него вешаем что хотим, а не такой хитрому...</title>
    <published>2013-01-27T10:48:36Z</published>
    <updated>2013-01-27T10:48:36Z</updated>
    <author>
      <name>ra81</name>
      <uri>https://stocksharp.com/users/16581/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(23575)" rel="nofollow" target="_blank"&gt;MenDel&lt;/a&gt;:&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(23572)" rel="nofollow" target="_blank"&gt;ra81&lt;/a&gt;:&lt;/strong&gt;
Вообще ранее в стратегиях было TimeCome и на него вешаем что хотим, а не такой хитромудрый способ который поверх ваших стратегий как незнамо что прилеплен. Сейчас может убрали не смотрел сие.&lt;/p&gt;
&lt;p&gt;ПС: ну вот esper вам совершенно тоже самое советует. И ведь правильно советует.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Так то вы правы, но когда несколько стратегий работает и в этот момент они оказались в противоположных направлениях, зачем каждой из них крыть свои позиции, когда частично они уже покрыты друг об друга. В этой ситуации надо только остатки закрыть.
Ну так и пожалуйста, рисуете маленькую стратегию которая просто берет и все позиции кроет в заданное время в ноль по заданному чемодану. А те что торгуют просто вырубаете чуток раньше. Вот и все. Достаточно адекватно получается и без хитрых конструкций. Кода выйдет около 5 строчек в каждой стратегии. Ну и в той что кроет все чуток поболее, но тоже без фанатизма.&lt;/p&gt;
&lt;/blockquote&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/23619/</id>
    <title type="text">Документация Здесь </title>
    <published>2013-01-25T07:07:46Z</published>
    <updated>2013-01-25T07:07:46Z</updated>
    <author>
      <name>esper</name>
      <uri>https://stocksharp.com/users/5990/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;ol&gt;
&lt;li&gt;&lt;a href="http://stocksharp.com/doc/html/65485c7c-0697-4e00-ac3f-bfaf4f81cc9e.htm"&gt;Документация&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://stocksharp.com/doc/html/M_StockSharp_Algo_TraderHelper_GetMarketPrice.htm"&gt;Здесь&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>