﻿<?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">Список задач 2</title>
  <id>~/topic/1386/spisok-zadach-2/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-06-11T20:14:49Z</updated>
  <logo>https://stocksharp.ru/images/logo.png</logo>
  <link href="https://stocksharp.ru/handlers/atom.ashx?category=topic&amp;id=1386" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.ru/posts/m/6158/</id>
    <title type="text">aspirant: По просьбе Михаила, хочу собрать воедино весь более-менее подробный список задач. Пишите в...</title>
    <published>2011-02-21T21:26:47Z</published>
    <updated>2016-08-15T23:47:59Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.ru/users/201/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(6151)" rel="nofollow" target="_blank"&gt;aspirant&lt;/a&gt;:&lt;/strong&gt;
По просьбе Михаила, хочу собрать воедино весь более-менее подробный список задач.  Пишите в эту тему, у кого что есть? Если есть задачи, которыми можно поделиться указывайте отдельно. Спасибо.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;У тебя своих нет?&lt;/p&gt;
&lt;p&gt;&lt;a href="http://stocksharp.com/forum/1372/2skuvv--PlazaError/"&gt;http://stocksharp.com/forum/1372/2skuvv--PlazaError/&lt;/a&gt; надо разобраться, что нам skuvv принес такое [biggrin]&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/7026/</id>
    <title type="text">По поводу заполнения Security Старый вариант: Code = RTS Id = RTS-6.11 ShortName = RIM1 Name = Фьюче...</title>
    <published>2011-03-25T13:23:06Z</published>
    <updated>2011-03-25T13:23:06Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.ru/users/201/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;По поводу заполнения Security&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Старый вариант:
Code = RTS
Id = RTS-6.11
ShortName = RIM1
Name = Фьючерсный контракт RTS-6.11&lt;/p&gt;
&lt;p&gt;Мой вариант:
Code = RIM1
Id = 151331
ShortName = RTS-6.11
Name = Фьючерсный контракт RTS-6.11&lt;/p&gt;
&lt;p&gt;S# вариант:
Code = RIM1
Id = &lt;strong&gt;RIM1@RTS&lt;/strong&gt;
ShortName = RTS-6.11
Name = Фьючерсный контракт RTS-6.11
Code должен быть привычным для всех, это понятно.
Id понадобится в будущем, 100% инфа,в  некоторых таблицах можно идентифицировать инструмент только по цифровому id.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;RTS-кий Id (если это число) надо прятать во внутрь.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/7024/</id>
    <title type="text">По поводу заполнения Security Старый вариант: Code = RTS Id = RTS-6.11 ShortName = RIM1 Name = Фьюче...</title>
    <published>2011-03-25T12:49:21Z</published>
    <updated>2011-03-25T12:59:48Z</updated>
    <author>
      <name>skuvv</name>
      <uri>https://stocksharp.ru/users/28621/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;По поводу заполнения Security&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Старый вариант:
Code = RTS
Id = RTS-6.11
ShortName = RIM1
Name = Фьючерсный контракт RTS-6.11&lt;/p&gt;
&lt;p&gt;Мой вариант:
Code = RIM1
Id = 151331
ShortName = RTS-6.11
Name = Фьючерсный контракт RTS-6.11
Code должен быть привычным для всех, это понятно.
Id понадобится в будущем, 100% инфа,в  некоторых таблицах можно идентифицировать инструмент только по цифровому id.
Остальное думаю не так часто используется.
PS поле Name в Plaza не является уникальным&lt;/p&gt;
&lt;/blockquote&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/7022/</id>
    <title type="text">aspirant: Mikhail Sukhov: 2. Вроде бы нет колонки isin. Или я не понял вопроса. В классе PlazaOption...</title>
    <published>2011-03-25T12:05:35Z</published>
    <updated>2011-03-25T12:05:35Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.ru/users/201/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(7020)" rel="nofollow" target="_blank"&gt;aspirant&lt;/a&gt;:&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(7012)" rel="nofollow" target="_blank"&gt;Mikhail Sukhov&lt;/a&gt;:&lt;/strong&gt;
2. Вроде бы нет колонки isin. Или я не понял вопроса.
В классе PlazaOptionSessionContentsColumns есть переменные Isin (Символьный код инструмента) и IsinId (Уникальный числовой идентификатор инструмента).  Сейчас я в качестве ключа использую Isin:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;pre&gt;&lt;code&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;private void OnNewDataFromFuturesSessionContents(PlazaRecord record)
{
var metadata = PlazaColumnRegistry.FuturesSessionContents;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;base.ProcessEvents(() =&amp;gt;
{
	base.GetSecurity(record[metadata.Isin].ToString(), sec =&amp;gt;
	{
		// мапим...
	});
});
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;gt; 
&amp;gt; Можно использовать IsinId?
&amp;gt; ```
base.GetSecurity(record[metadata.IsinId].ToString(), sec =&amp;gt;

&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;Или символьное представление удобнее, где-то используется и т.д.?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Я понял о чем речь. Ни то ни другое не нужно. Причина - нужно иметь единую идентификацию инструментов. Для РТС Id нужно создавать по шаблону CODE@RTS. Чтобы можно было потом эти инструменты из БД вытаскивать. Той же гирды, для прогона по истории.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(7020)" rel="nofollow" target="_blank"&gt;aspirant&lt;/a&gt;:&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(7012)" rel="nofollow" target="_blank"&gt;Mikhail Sukhov&lt;/a&gt;:&lt;/strong&gt;
Все, что не входит в свойства такие как ExpiryDate, MinStepPrice и т.д.
Ключи называем FuturesIsinId или fut_isin_id, IsEuropean или europe и т.д.?&lt;/p&gt;
&lt;/blockquote&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.ru/posts/m/7020/</id>
    <title type="text">Mikhail Sukhov: 2. Вроде бы нет колонки isin. Или я не понял вопроса. В классе PlazaOptionSessionCon...</title>
    <published>2011-03-25T10:46:45Z</published>
    <updated>2011-03-25T10:46:45Z</updated>
    <author>
      <name>aspirant</name>
      <uri>https://stocksharp.ru/users/6114/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(7012)" rel="nofollow" target="_blank"&gt;Mikhail Sukhov&lt;/a&gt;:&lt;/strong&gt;
2. Вроде бы нет колонки isin. Или я не понял вопроса.
В классе PlazaOptionSessionContentsColumns есть переменные Isin (Символьный код инструмента) и IsinId (Уникальный числовой идентификатор инструмента).  Сейчас я в качестве ключа использую Isin:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;pre&gt;&lt;code&gt;private void OnNewDataFromFuturesSessionContents(PlazaRecord record)
{
	var metadata = PlazaColumnRegistry.FuturesSessionContents;

	base.ProcessEvents(() =&amp;gt;
	{
		base.GetSecurity(record[metadata.Isin].ToString(), sec =&amp;gt;
		{
			// мапим...
		});
	});
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Можно использовать IsinId?&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;base.GetSecurity(record[metadata.IsinId].ToString(), sec =&amp;gt;

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Или символьное представление удобнее, где-то используется и т.д.?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(7012)" rel="nofollow" target="_blank"&gt;Mikhail Sukhov&lt;/a&gt;:&lt;/strong&gt;
Все, что не входит в свойства такие как ExpiryDate, MinStepPrice и т.д.
Ключи называем FuturesIsinId или fut_isin_id, IsEuropean или europe и т.д.?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(7012)" rel="nofollow" target="_blank"&gt;Mikhail Sukhov&lt;/a&gt;:&lt;/strong&gt;
Я сам их пользую, но только из-за удобства.
Сам все сказал: так легче.  Если контроль за такими вещами, как использование памяти, критичен, тогда нужно использовать C++.&lt;/p&gt;
&lt;/blockquote&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/7012/</id>
    <title type="text">aspirant: Mikhail Sukhov: Мне вообще кажется не стоит каждый раз создавать PlazaListener. Да, ты пра...</title>
    <published>2011-03-24T21:23:32Z</published>
    <updated>2011-03-24T21:23:32Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.ru/users/201/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(7011)" rel="nofollow" target="_blank"&gt;aspirant&lt;/a&gt;:&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(6975)" rel="nofollow" target="_blank"&gt;Mikhail Sukhov&lt;/a&gt;:&lt;/strong&gt;
Мне вообще кажется не стоит каждый раз создавать PlazaListener.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Да, ты прав.  Это должна быть переменная внутри класса.  Начал править и тут несколько вопросов:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Чтобы быть последовательным, что ты делаешь в QuickTrader'е, если клиент при запущенных стандартных потоках повторно вызывает StartExport?  Выбрасываешь исключение? Перезапускаешь стандартные потоки? Не делаешь ничего?&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
&lt;ol start="2"&gt;
&lt;li&gt;В качестве уникального ID для инструментов используем isin или isin_id?  Плаза в своих потоках использует isin_id (см., например, схемы таблиц opt_exp_orders, opt_rejected_orders).&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;ol start="3"&gt;
&lt;li&gt;&lt;p&gt;В ExtensionInfo запихиваем все, или только то, что не получается замапить?  В качестве ключей используем названия колонок Плазы или названия переменных наших классов метаданных?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Перезапуск.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Вроде бы нет колонки isin. Или я не понял вопроса.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Все, что не входит в свойства такие как ExpiryDate, MinStepPrice и т.д. Ни то, ни другое - объекты PlazaColumn.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(6975)" rel="nofollow" target="_blank"&gt;Mikhail Sukhov&lt;/a&gt;:&lt;/strong&gt;
А отписываешься где? Утечка памяти...
Утечка памяти была бы, если optionListener (раздатчик событий) жил бы дольше, чем PlazaTrader (подписчик на события) (см. &lt;a href="http://stackoverflow.com/questions/1061727/is-it-bad-to-not-unregister-event-handlers/1061735#1061735" rel="nofollow" target="_blank"&gt;здесь&lt;/a&gt;).  Почему тогда в C# есть анонимные event handlers?&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.ru/posts/m/7011/</id>
    <title type="text">Mikhail Sukhov: Мне вообще кажется не стоит каждый раз создавать PlazaListener. Да, ты прав. Это дол...</title>
    <published>2011-03-24T20:58:14Z</published>
    <updated>2011-03-24T20:58:14Z</updated>
    <author>
      <name>aspirant</name>
      <uri>https://stocksharp.ru/users/6114/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(6975)" rel="nofollow" target="_blank"&gt;Mikhail Sukhov&lt;/a&gt;:&lt;/strong&gt;
Мне вообще кажется не стоит каждый раз создавать PlazaListener.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Да, ты прав.  Это должна быть переменная внутри класса.  Начал править и тут несколько вопросов:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Чтобы быть последовательным, что ты делаешь в QuickTrader'е, если клиент при запущенных стандартных потоках повторно вызывает StartExport?  Выбрасываешь исключение? Перезапускаешь стандартные потоки? Не делаешь ничего?&lt;/li&gt;
&lt;li&gt;В качестве уникального ID для инструментов используем isin или isin_id?  Плаза в своих потоках использует isin_id (см., например, схемы таблиц opt_exp_orders, opt_rejected_orders).&lt;/li&gt;
&lt;li&gt;В ExtensionInfo запихиваем все, или только то, что не получается замапить?  В качестве ключей используем названия колонок Плазы или названия переменных наших классов метаданных?&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(6975)" rel="nofollow" target="_blank"&gt;Mikhail Sukhov&lt;/a&gt;:&lt;/strong&gt;
А отписываешься где? Утечка памяти...
Утечка памяти была бы, если optionListener (раздатчик событий) жил бы дольше, чем PlazaTrader (подписчик на события) (см. &lt;a href="http://stackoverflow.com/questions/1061727/is-it-bad-to-not-unregister-event-handlers/1061735#1061735" rel="nofollow" target="_blank"&gt;здесь&lt;/a&gt;).  Почему тогда в C# есть анонимные event handlers?&lt;/p&gt;
&lt;/blockquote&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/6975/</id>
    <title type="text">aspirant: Mikhail Sukhov: Но данные из потока не так интересны. Их нужно перегнать в объект Security...</title>
    <published>2011-03-23T13:59:49Z</published>
    <updated>2011-03-23T14:00:01Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.ru/users/201/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(6957)" rel="nofollow" target="_blank"&gt;aspirant&lt;/a&gt;:&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(6488)" rel="nofollow" target="_blank"&gt;Mikhail Sukhov&lt;/a&gt;:&lt;/strong&gt;
Но данные из потока не так интересны. Их нужно перегнать в объект Security.
Можете посмотреть метод PlazaTrader.OnNewDataFromOptionSessionContents()?  Не совсем уверен насчет правильности мапинга данных из потока в свойства Security[confused]&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;Все отлично. Ошибку заметил в другом месте.[smile] Ты в StartExport подписываешься на событие? А отписываешься где? Утечка памяти... Ладно, это потом. Мне вообще кажется не стоит каждый раз создавать PlazaListener. Но я пока не вижу всей картинки с запуском пользователей доп потоков. Это тебе виднее.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/6957/</id>
    <title type="text">Mikhail Sukhov: Но данные из потока не так интересны. Их нужно перегнать в объект Security. Можете п...</title>
    <published>2011-03-22T20:09:16Z</published>
    <updated>2011-03-22T20:09:16Z</updated>
    <author>
      <name>aspirant</name>
      <uri>https://stocksharp.ru/users/6114/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(6488)" rel="nofollow" target="_blank"&gt;Mikhail Sukhov&lt;/a&gt;:&lt;/strong&gt;
Но данные из потока не так интересны. Их нужно перегнать в объект Security.
Можете посмотреть метод PlazaTrader.OnNewDataFromOptionSessionContents()?  Не совсем уверен насчет правильности мапинга данных из потока в свойства Security[confused]&lt;/p&gt;
&lt;/blockquote&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/6537/</id>
    <title type="text">Mikhail Sukhov: А вообще возможно напрямую обращаться к серверу Плазы минуя этот роутер? Сегодня вес...</title>
    <published>2011-03-09T19:32:04Z</published>
    <updated>2011-03-09T19:33:34Z</updated>
    <author>
      <name>aspirant</name>
      <uri>https://stocksharp.ru/users/6114/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(6491)" rel="nofollow" target="_blank"&gt;Mikhail Sukhov&lt;/a&gt;:&lt;/strong&gt;
А вообще возможно напрямую обращаться к серверу Плазы минуя этот роутер?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Сегодня весь день пытался получить список инструментов из таблицы opt_vcb.  Путем тыкания и активного общения с поддержкой РТС только что наконец получилось.  Почерпнул для себя &lt;strong&gt;две важные вещи&lt;/strong&gt;, которыми хочу поделиться:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;blockquote&gt;
&lt;p&gt;дело не в Appname'е. А в том, что в client_router.ini стоит одинаковый адрес в параметрах default и direct. Для тестового полигона direct можно вообще закомментировать.
От себя добавлю: комментировать не можно, а &lt;strong&gt;нужно&lt;/strong&gt;.  Иначе из роутера через раз будут валиться ошибки.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;Номер тестового порта 3001 нужно прописать не только в client_router.ini, но и в volatvmsrv\local_inter.ini и volatvmsrv\forts_volatvm.ini.  Здесь, если этого не сделать, программа будет подключаться, но по некоторым потокам данные не будут приходить.&lt;/li&gt;
&lt;/ol&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/6492/</id>
    <title type="text">Mikhail Sukhov: А вообще возможно напрямую обращаться к серверу Плазы минуя этот роутер? Я так понял...</title>
    <published>2011-03-09T06:13:36Z</published>
    <updated>2011-03-09T06:14:07Z</updated>
    <author>
      <name>aspirant</name>
      <uri>https://stocksharp.ru/users/6114/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(6491)" rel="nofollow" target="_blank"&gt;Mikhail Sukhov&lt;/a&gt;:&lt;/strong&gt;
А вообще возможно напрямую обращаться к серверу Плазы минуя этот роутер?
Я так понял, что нет (см. п. 5.1. Топология сети - стр. 7 P2ClientGate.doc).&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Кстати, есть ощущение, что, если нужно распараллелить получение данных, через один роутер это не получится.  Я добавил PlazaConnectionPool, который создает отдельный CP2ConnectionClass для каждого стрима.  Вчера тестировал: данные с разных потоков все равно приходят последовательно[sad]&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/6491/</id>
    <title type="text">aspirant: Mikhail Sukhov: А зачем client_router.ini вообще редактировать? Ты спрашивал про логин и п...</title>
    <published>2011-03-08T17:52:55Z</published>
    <updated>2011-03-08T17:52:55Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.ru/users/201/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(6490)" rel="nofollow" target="_blank"&gt;aspirant&lt;/a&gt;:&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(6489)" rel="nofollow" target="_blank"&gt;Mikhail Sukhov&lt;/a&gt;:&lt;/strong&gt;
А зачем client_router.ini вообще редактировать?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&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.ru/posts/m/6490/</id>
    <title type="text">Mikhail Sukhov: А зачем client_router.ini вообще редактировать? Ты спрашивал про логин и пароль. Он ...</title>
    <published>2011-03-08T17:37:21Z</published>
    <updated>2011-03-08T17:37:21Z</updated>
    <author>
      <name>aspirant</name>
      <uri>https://stocksharp.ru/users/6114/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(6489)" rel="nofollow" target="_blank"&gt;Mikhail Sukhov&lt;/a&gt;:&lt;/strong&gt;
А зачем client_router.ini вообще редактировать?&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.ru/posts/m/6489/</id>
    <title type="text">aspirant: Два момента: После редактирования первых конфигов нужно обязательно перезагружать роутер. ...</title>
    <published>2011-03-08T15:50:53Z</published>
    <updated>2011-03-08T16:09:28Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.ru/users/201/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(6485)" rel="nofollow" target="_blank"&gt;aspirant&lt;/a&gt;:&lt;/strong&gt;
Два момента:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;После редактирования первых конфигов нужно обязательно перезагружать роутер.&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
&lt;ol start="2"&gt;
&lt;li&gt;В теории создавать первые конфиги на лету тоже можно.  Но я бы не стал: путь к client_router.ini указывается в коммандной строке сервиса Windows роутера (и прописывается в системном реестре). Придется колдовать и с этим.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;А зачем client_router.ini вообще редактировать? С ini файлами по схемам понятно. А вот зачем роутер.&lt;/p&gt;
&lt;p&gt;Так, понял почему вылезает AcessViolationException. В папке нужен файл P2ClientGate.ini, который не создается на лету (а должен, по идее). Подсунул этот файл, упало дальше, что нет p2fortsgate_messages.ini (тоже нужно на лету создавать). Вот как то так. Хотел практическое направление - это как раз оно.[smile]&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/6488/</id>
    <title type="text">aspirant: Уже можно вручную подключиться к таблице opt_vcb потока FORTS_OPTINFO_REPL _plazaConnectio...</title>
    <published>2011-03-08T15:48:24Z</published>
    <updated>2011-03-08T15:48:41Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.ru/users/201/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(6484)" rel="nofollow" target="_blank"&gt;aspirant&lt;/a&gt;:&lt;/strong&gt;
Уже можно вручную подключиться к таблице opt_vcb потока FORTS_OPTINFO_REPL&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;_plazaConnectionPool = new PlazaConnectionPool(&amp;quot;localhost&amp;quot;, 3001);
_plazaStreamManager1 = new PlazaStreamManager(_plazaConnectionPool, TRequestType.RT_COMBINED_DYNAMIC, 500);&lt;/p&gt;
&lt;p&gt;var plazaTable = new PlazaTable(PlazaTableTypes.Position, PlazaColumns.Options, PlazaColumns.Options.GetAllColumns());
_plazaStreamManager1.AddStream(&amp;quot;opt_vcb&amp;quot;, plazaTable);&lt;/p&gt;
&lt;p&gt;_plazaStreamManager1.Start();&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;
Да, это очень хорошо. Но данные из потока не так интересны. Их нужно перегнать в объект Security. Как это сделать. Допустим, PlazaTrader имеет метод-обработки поступления новых данных из потока opt_vcb:

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;public class PlazaTrader
{
private void OnNewDataFromOptVcb(object[][] valuesArray)
{
base.ProcessEvents(() =&amp;gt; // чтобы событие NewSecurities вызвалось один раз для все инструментов
{
foreach (var values in valuesArray)
{
// в GetSecurity если до этого такого инструмента не было (проверяется по значению в values[0])
// вызывается NewSecurities, если же был инструмент - SecuritiesChanged.
base.GetSecurity((string)values[0], sec =&amp;gt;
);
}
});
}
}&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&lt;/code&gt;&lt;/pre&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/6485/</id>
    <title type="text">Mikhail Sukhov: Они должны лежать локально. Но это вроде при создании потока. Сейчас уже создаются с...</title>
    <published>2011-03-08T06:57:33Z</published>
    <updated>2011-03-08T06:57:33Z</updated>
    <author>
      <name>aspirant</name>
      <uri>https://stocksharp.ru/users/6114/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(6483)" rel="nofollow" target="_blank"&gt;Mikhail Sukhov&lt;/a&gt;:&lt;/strong&gt;
Они должны лежать локально. Но это вроде при создании потока. Сейчас уже создаются сами через PlazaTrader?
У Плаза есть конфиги программы и конфиги-схему таблиц потоков репликации.  Первые (самый главный client_router.ini) редактируются через ClientRouterConfigParser, вторые (по примеру файлов, лежащих в подпапке Scheme)  создаются на лету.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Два момента:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;После редактирования первых конфигов нужно обязательно перезагружать роутер.&lt;/li&gt;
&lt;li&gt;В теории создавать первые конфиги на лету тоже можно.  Но я бы не стал: путь к client_router.ini указывается в коммандной строке сервиса Windows роутера (и прописывается в системном реестре). Придется колдовать и с этим.&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(6483)" rel="nofollow" target="_blank"&gt;Mikhail Sukhov&lt;/a&gt;:&lt;/strong&gt;
А какой адрес? localhost?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Путь указывать к компу, на котором установлен роутер, т.е. localhost, если у тебя все на одной машине.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(6483)" rel="nofollow" target="_blank"&gt;Mikhail Sukhov&lt;/a&gt;:&lt;/strong&gt;
Кстати, если логин пароль не нужно указывать, на лицо необработанная ситуация с конструкторами PlazaTrader.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Начал дебаггить. Перед вызовом```
var srvAddress = _connection.ResolveService(&amp;quot;FORTS_SRV&amp;quot;);&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;
нужно включить соединение```
_connection.Connect();
&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.ru/posts/m/6484/</id>
    <title type="text">Mikhail Sukhov: Сейчас уже можно получить список инструментов? Уже можно вручную подключиться к табл...</title>
    <published>2011-03-08T06:27:57Z</published>
    <updated>2011-03-08T06:27:57Z</updated>
    <author>
      <name>aspirant</name>
      <uri>https://stocksharp.ru/users/6114/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(6470)" rel="nofollow" target="_blank"&gt;Mikhail Sukhov&lt;/a&gt;:&lt;/strong&gt;
Сейчас уже можно получить список инструментов?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Уже можно вручную подключиться к таблице opt_vcb потока FORTS_OPTINFO_REPL&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;_plazaConnectionPool = new PlazaConnectionPool(&amp;quot;localhost&amp;quot;, 3001);
_plazaStreamManager1 = new PlazaStreamManager(_plazaConnectionPool, TRequestType.RT_COMBINED_DYNAMIC, 500);

var plazaTable = new PlazaTable(PlazaTableTypes.Position, PlazaColumns.Options, PlazaColumns.Options.GetAllColumns());
_plazaStreamManager1.AddStream(&amp;quot;opt_vcb&amp;quot;, plazaTable);

_plazaStreamManager1.Start();

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Правда &amp;quot;маленький&amp;quot; нюанс: при подключении с сервера приходит ошибка (не сразу, через некоторое время).  Аналогичный код для подключения к другим таблицам, например к индексу РТС, работает без проблем.  Завтра напишу вопрос в поддержку РТС.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/6483/</id>
    <title type="text">aspirant: Mikhail Sukhov: Я вчера пытался соединиться с Plaza из SampleGUI, и получил ошибку AccessV...</title>
    <published>2011-03-07T21:40:57Z</published>
    <updated>2011-03-07T21:40:57Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.ru/users/201/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(6480)" rel="nofollow" target="_blank"&gt;aspirant&lt;/a&gt;:&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(6470)" rel="nofollow" target="_blank"&gt;Mikhail Sukhov&lt;/a&gt;:&lt;/strong&gt;
Я вчера пытался соединиться с Plaza из SampleGUI, и получил ошибку AccessViolationException. Забыл, что она означает. Но в памяти осталось, что-то из настроек.
Скорее всего, либо VS2010 либо сама программа запущена не под админом.  Все файлы-конфиги лежат в C:\Program Files\P2FORTSGate, и для редактирования файлов требуется админский доступ.  В принципе в файле настроек можно заранее прописать все настройки (логин, пароль, сервер подключения и порт), чтобы не редактировать их на лету.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;Они должны лежать локально. Но это вроде при создании потока. Сейчас уже создаются сами через PlazaTrader?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(6480)" rel="nofollow" target="_blank"&gt;aspirant&lt;/a&gt;:&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(6470)" rel="nofollow" target="_blank"&gt;Mikhail Sukhov&lt;/a&gt;:&lt;/strong&gt;
Нужно ли указывать логин пароль в роботе если он прописан уже в роутере?
Нет&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;А какой адрес? localhost? Кстати, если логин пароль не нужно указывать, на лицо необработанная ситуация с конструкторами PlazaTrader.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/6480/</id>
    <title type="text">Mikhail Sukhov: Я вчера пытался соединиться с Plaza из SampleGUI, и получил ошибку AccessViolationEx...</title>
    <published>2011-03-07T20:00:01Z</published>
    <updated>2011-03-07T20:00:01Z</updated>
    <author>
      <name>aspirant</name>
      <uri>https://stocksharp.ru/users/6114/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(6470)" rel="nofollow" target="_blank"&gt;Mikhail Sukhov&lt;/a&gt;:&lt;/strong&gt;
Я вчера пытался соединиться с Plaza из SampleGUI, и получил ошибку AccessViolationException. Забыл, что она означает. Но в памяти осталось, что-то из настроек.
Скорее всего, либо VS2010 либо сама программа запущена не под админом.  Все файлы-конфиги лежат в C:\Program Files\P2FORTSGate, и для редактирования файлов требуется админский доступ.  В принципе в файле настроек можно заранее прописать все настройки (логин, пароль, сервер подключения и порт), чтобы не редактировать их на лету.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(6470)" rel="nofollow" target="_blank"&gt;Mikhail Sukhov&lt;/a&gt;:&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.ru/posts/m/6470/</id>
    <title type="text">aspirant: В принципе с первым закончил. Насчет фильтрации думаю подождать до первого внедрения. Я те...</title>
    <published>2011-03-07T07:39:13Z</published>
    <updated>2011-03-07T07:39:13Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.ru/users/201/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(6467)" rel="nofollow" target="_blank"&gt;aspirant&lt;/a&gt;:&lt;/strong&gt;
В принципе с первым закончил.  Насчет фильтрации думаю подождать до первого внедрения.  Я теоретик, и пока не совсем представляю, по каким полям и в каком виде нужно делать фильтрацию. Если у кого-то есть мысли, пишите, или кто-то готов подхватить, рад поделиться.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Ждать уже не нужно - я добавил SampleGUI. Пора уже смотреть, как работает PlazaTrader. Сейчас уже можно получить список инструментов?&lt;/p&gt;
&lt;p&gt;Я вчера пытался соединиться с Plaza из SampleGUI, и получил ошибку AccessViolationException. Забыл, что она означает. Но в памяти осталось, что-то из настроек. Нужно ли указывать логин пароль в роботе если он прописан уже в роутере?&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>