﻿<?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">Закрытие позиций за 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-04-04T13:13:24Z</updated>
  <logo>https://stocksharp.ru/images/logo.png</logo>
  <link href="https://stocksharp.ru/handlers/atom.ashx?category=topic&amp;id=3253" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.ru/posts/m/23745/</id>
    <title type="text">Это снимает риски отказа DNS серверов. Но добавляет риски неожиданной смены IP </title>
    <published>2013-02-04T07:45:14Z</published>
    <updated>2013-02-04T07:45:14Z</updated>
    <author>
      <name>VassilSanych</name>
      <uri>https://stocksharp.ru/users/6491/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;aerv &lt;a href="https://stocksharp.ru/posts/m/23744/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Это снимает риски отказа DNS серверов.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Но добавляет риски неожиданной смены IP&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/23744/</id>
    <title type="text">Безотносительно к трейдингу 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.ru/users/28151/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;VassilSanych &lt;a href="https://stocksharp.ru/posts/m/23743/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Безотносительно к трейдингу&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;w32tm /monitor /computers:0.ru.pool.ntp.org&lt;br /&gt;Покажет смещение времени на сервере относительно локального времени:&lt;br /&gt;Кстати, вместо DNS имен можно указывать IP адреса. Это снимает риски отказа DNS серверов.&lt;br /&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/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.ru/users/6491/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Безотносительно к трейдингу&lt;br /&gt;Синхронизация часов в Windows&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush: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;/pre&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/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.ru/users/6491/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Для России хороши сервера&lt;br /&gt;0.ru.pool.ntp.org&lt;br /&gt;1.ru.pool.ntp.org&lt;br /&gt;2.ru.pool.ntp.org&lt;br /&gt;3.ru.pool.ntp.org&lt;br /&gt;Они во-первых работают, а во-вторых пинг до них в 4-10 раз меньше, чем до серверов Пиндостана.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/23722/</id>
    <title type="text">Кстати, для синхронизации времени вполне достаточно настроить штатную службу времени в Windows. пара...</title>
    <published>2013-02-03T03:42:49Z</published>
    <updated>2013-02-03T03:42:49Z</updated>
    <author>
      <name>aerv</name>
      <uri>https://stocksharp.ru/users/28151/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;VassilSanych &lt;a href="https://stocksharp.ru/posts/m/23712/" 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;aerv &lt;a href="https://stocksharp.ru/posts/m/23711/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Кстати, для синхронизации времени вполне достаточно настроить штатную службу времени в Windows.&lt;br /&gt;&lt;a target="_blank" href="http://technet.microsoft.com/en-us/library/cc773263%2528v=ws.10%2529.aspx" title="http://technet.microsoft.com/en-us/library/cc773263%2528v=ws.10%2529.aspx"&gt;параметры реестра&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Там есть небольшая сносочка с предупреждением. По смыслу - &amp;quot;осторожно! мы сами этой хрени не доверяем&amp;quot;.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Ну, у меня много месяцев она работает так как надо. Разумеется, я никому ничего не навязываю. )&lt;br /&gt;&lt;br /&gt;&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;MenDel &lt;a href="https://stocksharp.ru/posts/m/23714/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Да кстати можно ещ добавить проверку инета, а то вдруг его отрубят а он будет все пытвться время узнать.&lt;br /&gt;Так ведь никакой рекурсии не будет?&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;А смысл всего этого? Если инет есть, то и по NTP ответ придет. Если инета нет, то и сделать ничего нельзя.&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/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.ru/users/28151/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Без рекурсии:&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush: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;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Кстати, для синхронизации времени вполне достаточно настроить штатную службу времени в Windows.&lt;br /&gt;&lt;a target="_blank" href="http://technet.microsoft.com/en-us/library/cc773263%2528v=ws.10%2529.aspx" title="http://technet.microsoft.com/en-us/library/cc773263%2528v=ws.10%2529.aspx"&gt;параметры реестра&lt;/a&gt;&lt;br /&gt;&lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAADgHe7TmCnFJMS7IPg8LLGyhc-7jMt0ZGh3iA5uqpoZqL9Kr9KrYHz75mgkriNYQ9uXOGfFwi2fbdDfx4OK3P0t" title="https://support.ntp.org/bin/view/Servers/StratumTwoTimeServers"&gt;сервера&lt;/a&gt;&lt;br /&gt;&lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAADFJOqwEw09diyNzSZSTb_R695hGsqpBaLvtG0qSks4W78qzCznfed3qW10rteznp8" title="http://www.pool.ntp.org/zone/europe"&gt;пул серверов&lt;/a&gt;&lt;br /&gt;&lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAADQcaA745XD02TKJeMfj9jtHlOu1wcB8Ry257UQqLvAbH3299mgZMHX4ckYdcCyZAg" title="http://system-administrators.info/?p=1359"&gt;Это для общего понимания&lt;/a&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/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.ru/users/6356/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Да кстати можно ещ добавить проверку инета, а то вдруг его отрубят а он будет все пытвться время узнать.&lt;br /&gt;&lt;br /&gt;Так ведь никакой рекурсии не будет?&lt;br /&gt;&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush: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;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/23712/</id>
    <title type="text">А зачем рекурсия-то? Можно и так. Правда блокировать торговый функционал, пока не будет успешной син...</title>
    <published>2013-02-02T14:00:21Z</published>
    <updated>2013-02-02T14:00:21Z</updated>
    <author>
      <name>VassilSanych</name>
      <uri>https://stocksharp.ru/users/6491/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;aerv &lt;a href="https://stocksharp.ru/posts/m/23711/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;А зачем рекурсия-то?&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Можно и так.&lt;br /&gt;Правда блокировать торговый функционал, пока не будет успешной синхронизации часов, - это, повторюсь, не комильфо.&lt;br /&gt;&lt;br /&gt;&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;aerv &lt;a href="https://stocksharp.ru/posts/m/23711/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Кстати, для синхронизации времени вполне достаточно настроить штатную службу времени в Windows.&lt;br /&gt;&lt;a target="_blank" href="http://technet.microsoft.com/en-us/library/cc773263%2528v=ws.10%2529.aspx" title="http://technet.microsoft.com/en-us/library/cc773263%2528v=ws.10%2529.aspx"&gt;параметры реестра&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Там есть небольшая сносочка с предупреждением. По смыслу - &amp;quot;осторожно! мы сами этой хрени не доверяем&amp;quot;.&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/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.ru/users/6491/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Замучила совесть: исправил свой код.&lt;br /&gt;Теперь - в одном дополнительном потоке и без вложенных исключений.&lt;br /&gt;Саму синхронизацию выделил в отдельный метод.&lt;br /&gt;Возможно стоит перебрать сервера из списка &lt;br /&gt;&lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAADb_vBKclPmFQ_wuGv28NmM195JSClaZHhyeQeN-0VoGcXIsRyocqCvbrY0ZdJg1y8" title="http://tf.nist.gov/tf-cgi/servers.cgi
"&gt;http://tf.nist.gov/tf-cgi/servers.cgi
&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/23695/</id>
    <title type="text">может это этот сервер (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.ru/users/6491/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;MenDel &lt;a href="https://stocksharp.ru/posts/m/23673/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;может это этот сервер (time.nist.gov:123) не айс, &lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Это ссылка на рандомный сервер из списка.&lt;br /&gt;Да, временами он govnist.&lt;br /&gt;&lt;br /&gt;Вот мой код синхронизации:&lt;br /&gt;&lt;br /&gt;&lt;div class='spoilertitle'&gt;&lt;input type='button' value='Показать спойлер' class='btn btn-primary' onclick="toggleSpoiler(this, 'spolier_d9162a50eb28452d8fe05009e48ab5d5');" title='Показать спойлер' /&gt;&lt;/div&gt;&lt;div class='spoilerbox' id='spolier_d9162a50eb28452d8fe05009e48ab5d5' style='display:none'&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush: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;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/23706/</id>
    <title type="text"> Если не считать первой причины, я использую другой поток, каюсь, не обратил внимание на то, что выз...</title>
    <published>2013-02-01T17:17:19Z</published>
    <updated>2013-02-01T17:18:19Z</updated>
    <author>
      <name>VassilSanych</name>
      <uri>https://stocksharp.ru/users/6491/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;MenDel &lt;a href="https://stocksharp.ru/posts/m/23705/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;&lt;br /&gt;Если не считать первой причины, &lt;br /&gt;я использую другой поток,&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;каюсь, не обратил внимание на то, что вызов из дополнительного потока.&lt;br /&gt;&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;MenDel &lt;a href="https://stocksharp.ru/posts/m/23705/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;&lt;br /&gt;я не вывожу ошибку в лог,&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;хммм... довольно опрометчиво.&lt;br /&gt;&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;MenDel &lt;a href="https://stocksharp.ru/posts/m/23705/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;&lt;br /&gt;и ты ведь тоже запускаешь повторно метод из catch, я немного не понимаю про рекурсию и GC&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;у меня ограниченное количество запусков и большие паузы.&lt;br /&gt;GC не отслеживает переменные метода, пока он не завершён, вроде.&lt;br /&gt;Но в любом случае при глубокой рекурсии будет переполнение стека на одну только адресацию, а отжирание памяти на сериализацию исключений - это будет бонус :)&lt;br /&gt;Не забывай, что в каждом исключении будет нарастающая вложенность.&lt;br /&gt;&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;MenDel &lt;a href="https://stocksharp.ru/posts/m/23705/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;&lt;br /&gt;Может проще прописать в LoggingHelper.SyncMarketTime(5000); 5000 или другое кол-во милисекунд?&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;на сколько я понимаю, это таймаут, а не пауза&lt;br /&gt;&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;MenDel &lt;a href="https://stocksharp.ru/posts/m/23705/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;&lt;br /&gt;и тогда не придется усыплять поток и осчитывать итерации и тем более что он сам задает NowOffset.&lt;br /&gt;Или я что то недопонимаю.&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Ставить дополнительный поток на паузу - вещь не накладная. Главное, чтобы слишком много потоков не занимать, но с пулом это вроде тоже не большая проблема.&lt;br /&gt;В принципе конечно можно всё в одном дополнительном потоке делать. Просто лень было лишний метод писать :)&lt;br /&gt;Идея была в том, что первая попытка выполняется синхронно, а дальше уже в фоне. &lt;br /&gt;Кстати методика себя оправдала.&lt;br /&gt;Запустил - писало, что ошибка синхронизации. Оставил, пошёл ужинать. Через 2 часа обнаружил, что практически все 2 часа синхронизация не срабатывала и сработала только попытки с 18-й (у меня их всего - 21 была).</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/23705/</id>
    <title type="text">А я ща сделал просто, будет коннектится пока не получит свое, вот Так нельзя. Во-первых, если опраши...</title>
    <published>2013-02-01T16:48:35Z</published>
    <updated>2013-02-01T16:48:35Z</updated>
    <author>
      <name>MenDel</name>
      <uri>https://stocksharp.ru/users/6356/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;VassilSanych &lt;a href="https://stocksharp.ru/posts/m/23703/" 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;MenDel &lt;a href="https://stocksharp.ru/posts/m/23699/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;А я ща сделал просто, будет коннектится пока не получит свое, вот&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Так нельзя.&lt;br /&gt;Во-первых, если опрашивать чаще, чем раз в 4 секунды, то сервер будет блокировать запросы (так написано у них)&lt;br /&gt;во-вторых, если запрашивать в одном потоке, то будет блокироваться основной функционал ради второстепенной информации,&lt;br /&gt;в-третьих, от частых сообщений об ошибке засрётся лог,&lt;br /&gt;upd&lt;br /&gt;в-четвёртых, рекурсия блокирует GC, и при большой рекурсивной вложенности будет переполнение буфера.&lt;br /&gt;upd&lt;br /&gt;Особенно рекурсия через Exception. А там между прочим каждый раз будет производиться сериализация после рефлекшн. &lt;br /&gt;Представляете какого размера будет staсktrace после 20000-й итерации?&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Если не считать первой причины, &lt;br /&gt;я использую другой поток,&lt;br /&gt;я не вывожу ошибку в лог,&lt;br /&gt;и ты ведь тоже запускаешь повторно метод из catch, я немного не понимаю про рекурсию и GC&lt;br /&gt;Может проще прописать в LoggingHelper.SyncMarketTime(5000); 5000 или другое кол-во милисекунд?&lt;br /&gt;и тогда не придется усыплять поток и осчитывать итерации и тем более что он сам задает NowOffset.&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/23703/</id>
    <title type="text">А я ща сделал просто, будет коннектится пока не получит свое, вот Так нельзя. Во-первых, если опраши...</title>
    <published>2013-02-01T14:58:32Z</published>
    <updated>2013-02-01T15:13:40Z</updated>
    <author>
      <name>VassilSanych</name>
      <uri>https://stocksharp.ru/users/6491/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;MenDel &lt;a href="https://stocksharp.ru/posts/m/23699/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;А я ща сделал просто, будет коннектится пока не получит свое, вот&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Так нельзя.&lt;br /&gt;Во-первых, если опрашивать чаще, чем раз в 4 секунды, то сервер будет блокировать запросы (так написано у них)&lt;br /&gt;во-вторых, если запрашивать в одном потоке, то будет блокироваться основной функционал ради второстепенной информации,&lt;br /&gt;в-третьих, от частых сообщений об ошибке засрётся лог,&lt;br /&gt;upd&lt;br /&gt;в-четвёртых, рекурсия блокирует GC, и при большой рекурсивной вложенности будет переполнение буфера.&lt;br /&gt;upd&lt;br /&gt;Особенно рекурсия через Exception. А там между прочим каждый раз будет производиться сериализация после рефлекшн. &lt;br /&gt;Представляете какого размера будет staсktrace после 20000-й итерации?</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/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.ru/users/6356/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Цитата:&lt;/span&gt;&lt;div class="innerquote"&gt;Это ссылка на рандомный сервер из списка.&lt;br /&gt;Да, временами он govnist.&lt;br /&gt;&lt;br /&gt;Вот мой код синхронизации:&lt;br /&gt;&lt;br /&gt;&lt;div class='spoilertitle'&gt;&lt;input type='button' value='Показать спойлер' class='btn btn-primary' onclick="toggleSpoiler(this, 'spolier_5e4b53ccf4c94cdc9e4efe6b54fc9aa2');" title='Показать спойлер' /&gt;&lt;/div&gt;&lt;div class='spoilerbox' id='spolier_5e4b53ccf4c94cdc9e4efe6b54fc9aa2' style='display:none'&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush: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;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;А я ща сделал просто, будет коннектится пока не получит свое, вот&lt;br /&gt;&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;
private void TimeSync()
        {
            try
            {                
                LoggingHelper.SyncMarketTime(50);
                this.GuiAsync(() =&amp;gt;
                    {
                        Message(&amp;quot;Время синхронизировано&amp;quot;);
                    });
            }
            catch { TimeSync(); }
        }&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;А запускаю его так &lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;
ThreadPool.QueueUserWorkItem(_ =&amp;gt; TimeSync());&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;А можно тупо поставить прогу Absolute Time Corrector, очень удобная, ставишь интервал и она сама часы на компе подводит, хоть каждую секунду.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/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.ru/users/5973/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Цитата:&lt;/span&gt;&lt;div class="innerquote"&gt;Точнее подвисает рабочее окно&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Значит вы этот метод вызываете в UI потоке.&lt;br /&gt;И пока он не выполнится(по умолчанию 5 сек.), дальше код выполнятся не будет - от этого и подвисает.&lt;br /&gt;&lt;br /&gt;&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Цитата:&lt;/span&gt;&lt;div class="innerquote"&gt;может это этот сервер (time.nist.gov:123) не айс,&lt;br /&gt;межет можно еще какие нибудь сервера попробывать?&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Можно синхронизировать хоть по какому серверу, хоть вручную.&lt;br /&gt;&lt;b&gt;SyncMarketTime&lt;/b&gt; просто выставляет в &lt;b&gt;NowOffset&lt;/b&gt; временное смещение.&lt;br /&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/23673/</id>
    <title type="text">LoggingHelper.SyncMarketTime Не подскажете почему при синхронизации времени подвисает робот? Точнее ...</title>
    <published>2013-01-30T15:03:02Z</published>
    <updated>2013-01-30T15:18:56Z</updated>
    <author>
      <name>MenDel</name>
      <uri>https://stocksharp.ru/users/6356/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Moadip &lt;a href="https://stocksharp.ru/posts/m/23665/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;&lt;a href="http://stocksharp.com/doc/html/M_StockSharp_Logging_LoggingHelper_SyncMarketTime.htm" title="http://stocksharp.com/doc/html/M_StockSharp_Logging_LoggingHelper_SyncMarketTime.htm"&gt;&lt;b&gt;LoggingHelper.SyncMarketTime&lt;/b&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Не подскажете почему при синхронизации времени подвисает робот?&lt;br /&gt;Точнее подвисает рабочее окно, не проверял как он в этот момент сделки со стаканом получает.&lt;br /&gt;И частенько вылетает ошибка, что удаленный компьютер не отвечает,&lt;br /&gt;может это этот сервер (time.nist.gov:123) не айс,&lt;br /&gt;межет можно еще какие нибудь сервера попробывать?&lt;br /&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/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.ru/users/5973/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;a href="http://stocksharp.com/doc/html/M_StockSharp_Logging_LoggingHelper_SyncMarketTime.htm" title="http://stocksharp.com/doc/html/M_StockSharp_Logging_LoggingHelper_SyncMarketTime.htm"&gt;&lt;b&gt;LoggingHelper.SyncMarketTime&lt;/b&gt;&lt;/a&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/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.ru/users/6356/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Народ подскажите как время точное выставлять на компе.&lt;br /&gt;Я думаю вы этим пользуетесь, если не жалко поделитесь кодом[blush] &lt;br /&gt;А то он чет у меня совсем время криво считает, каждый вечер приходится руками выставлять.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/23626/</id>
    <title type="text">Вообще ранее в стратегиях было TimeCome и на него вешаем что хотим, а не такой хитромудрый способ ко...</title>
    <published>2013-01-27T10:48:36Z</published>
    <updated>2013-01-27T10:48:36Z</updated>
    <author>
      <name>ra81</name>
      <uri>https://stocksharp.ru/users/16581/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;MenDel &lt;a href="https://stocksharp.ru/posts/m/23575/" 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;ra81 &lt;a href="https://stocksharp.ru/posts/m/23572/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Вообще ранее в стратегиях было TimeCome и на него вешаем что хотим, а не такой хитромудрый способ который поверх ваших стратегий как незнамо что прилеплен. Сейчас может убрали не смотрел сие.&lt;br /&gt;&lt;br /&gt;ПС: ну вот esper вам совершенно тоже самое советует. И ведь правильно советует.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Так то вы правы, но когда несколько стратегий работает и в этот момент они оказались в противоположных направлениях, зачем каждой из них крыть свои позиции, когда частично они уже покрыты друг об друга. В этой ситуации надо только остатки закрыть.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Ну так и пожалуйста, рисуете маленькую стратегию которая просто берет и все позиции кроет в заданное время в ноль по заданному чемодану. А те что торгуют просто вырубаете чуток раньше. Вот и все. Достаточно адекватно получается и без хитрых конструкций. Кода выйдет около 5 строчек в каждой стратегии. Ну и в той что кроет все чуток поболее, но тоже без фанатизма.&lt;br /&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/23619/</id>
    <title type="text">1. Документация 2. Здесь</title>
    <published>2013-01-25T07:07:46Z</published>
    <updated>2013-01-25T07:07:46Z</updated>
    <author>
      <name>esper</name>
      <uri>https://stocksharp.ru/users/5990/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">1. &lt;a href="http://stocksharp.com/doc/html/65485c7c-0697-4e00-ac3f-bfaf4f81cc9e.htm" title="http://stocksharp.com/doc/html/65485c7c-0697-4e00-ac3f-bfaf4f81cc9e.htm"&gt;Документация&lt;/a&gt;&lt;br /&gt;2. &lt;a href="http://stocksharp.com/doc/html/M_StockSharp_Algo_TraderHelper_GetMarketPrice.htm" title="http://stocksharp.com/doc/html/M_StockSharp_Algo_TraderHelper_GetMarketPrice.htm"&gt;Здесь&lt;/a&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>