Список задач 2~/topic/1386/spisok-zadach-2/Copyright @ StockSharp Platform LLC 2010 - 20242024-03-29T08:31:33Zhttps://stocksharp.ru/images/logo.pnghttps://stocksharp.ru/posts/m/6158/По просьбе Михаила, хочу собрать воедино весь более-менее подробный список задач. Пишите в эту тему,...2011-02-21T21:26:47Z2016-08-15T23:47:59ZMikhail Sukhovhttps://stocksharp.ru/users/201/info@stocksharp.ru<div class="quote"><span class="quotetitle">aspirant <a href="https://stocksharp.ru/posts/m/6151/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote">По просьбе Михаила, хочу собрать воедино весь более-менее подробный список задач. Пишите в эту тему, у кого что есть? Если есть задачи, которыми можно поделиться указывайте отдельно. Спасибо.</div></div><br /><br />У тебя своих нет?<br /><br /><a href="http://stocksharp.com/forum/1372/2skuvv--PlazaError/ " title="http://stocksharp.com/forum/1372/2skuvv--PlazaError/ ">http://stocksharp.com/fo...372/2skuvv--PlazaError/ </a>надо разобраться, что нам skuvv принес такое [biggrin]Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/7026/По поводу заполнения Security Старый вариант: Code = RTS Id = RTS-6.11 ShortName = RIM1 Name = Фьюче...2011-03-25T13:23:06Z2011-03-25T13:23:06ZMikhail Sukhovhttps://stocksharp.ru/users/201/info@stocksharp.ru<div class="quote"><span class="quotetitle">skuvv <a href="https://stocksharp.ru/posts/m/7024/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote">По поводу заполнения Security<br /><div class="quote"><span class="quotetitle">Цитата:</span><div class="innerquote"><br />Старый вариант:<br />Code = RTS<br />Id = RTS-6.11<br />ShortName = RIM1<br />Name = Фьючерсный контракт RTS-6.11<br /><br />Мой вариант:<br />Code = RIM1<br />Id = 151331<br />ShortName = RTS-6.11<br />Name = Фьючерсный контракт RTS-6.11<br /><br />S# вариант:<br />Code = RIM1<br />Id = <b>RIM1@RTS</b><br />ShortName = RTS-6.11<br />Name = Фьючерсный контракт RTS-6.11<br /></div></div><br />Code должен быть привычным для всех, это понятно.<br />Id понадобится в будущем, 100% инфа,в некоторых таблицах можно идентифицировать инструмент только по цифровому id.<br /></div></div><br /><br />RTS-кий Id (если это число) надо прятать во внутрь.Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/7024/По поводу заполнения Security Старый вариант: Code = RTS Id = RTS-6.11 ShortName = RIM1 Name = Фьюче...2011-03-25T12:49:21Z2011-03-25T12:59:48Zskuvvhttps://stocksharp.ru/users/28621/info@stocksharp.ruПо поводу заполнения Security<br /><div class="quote"><span class="quotetitle">Цитата:</span><div class="innerquote"><br />Старый вариант:<br />Code = RTS<br />Id = RTS-6.11<br />ShortName = RIM1<br />Name = Фьючерсный контракт RTS-6.11<br /><br />Мой вариант:<br />Code = RIM1<br />Id = 151331<br />ShortName = RTS-6.11<br />Name = Фьючерсный контракт RTS-6.11<br /></div></div><br />Code должен быть привычным для всех, это понятно.<br />Id понадобится в будущем, 100% инфа,в некоторых таблицах можно идентифицировать инструмент только по цифровому id.<br />Остальное думаю не так часто используется.<br />PS поле Name в Plaza не является уникальнымCopyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/7022/2. Вроде бы нет колонки isin. Или я не понял вопроса. В классе PlazaOptionSessionContentsColumns ест...2011-03-25T12:05:35Z2011-03-25T12:05:35ZMikhail Sukhovhttps://stocksharp.ru/users/201/info@stocksharp.ru<div class="quote"><span class="quotetitle">aspirant <a href="https://stocksharp.ru/posts/m/7020/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote"><div class="quote"><span class="quotetitle">Mikhail Sukhov <a href="https://stocksharp.ru/posts/m/7012/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote">2. Вроде бы нет колонки isin. Или я не понял вопроса.</div></div><br />В классе PlazaOptionSessionContentsColumns есть переменные Isin (Символьный код инструмента) и IsinId (Уникальный числовой идентификатор инструмента). Сейчас я в качестве ключа использую Isin:<br /><div class="code"><strong>Код</strong><div class="innercode">private void OnNewDataFromFuturesSessionContents(PlazaRecord record)<br />{<br /> var metadata = PlazaColumnRegistry.FuturesSessionContents;<br /><br /> base.ProcessEvents(() =><br /> {<br /> base.GetSecurity(record[metadata.Isin].ToString(), sec =><br /> {<br /> // мапим...<br /> });<br /> });<br />}</div></div><br /><br />Можно использовать IsinId?<br /><div class="code"><strong>Код</strong><div class="innercode">base.GetSecurity(record[metadata.IsinId].ToString(), sec =><br /></div></div><br />Или символьное представление удобнее, где-то используется и т.д.?<br /></div></div><br /><br />Я понял о чем речь. Ни то ни другое не нужно. Причина - нужно иметь единую идентификацию инструментов. Для РТС Id нужно создавать по шаблону CODE@RTS. Чтобы можно было потом эти инструменты из БД вытаскивать. Той же гирды, для прогона по истории.<br /><br /><div class="quote"><span class="quotetitle">aspirant <a href="https://stocksharp.ru/posts/m/7020/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote"><br /><div class="quote"><span class="quotetitle">Mikhail Sukhov <a href="https://stocksharp.ru/posts/m/7012/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote">Все, что не входит в свойства такие как ExpiryDate, MinStepPrice и т.д.</div></div><br />Ключи называем FuturesIsinId или fut_isin_id, IsEuropean или europe и т.д.?<br /></div></div><br /><br />Смысле называем? Мы же уже все поля прописали в метаданных.Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/7020/2. Вроде бы нет колонки isin. Или я не понял вопроса. В классе PlazaOptionSessionContentsColumns ест...2011-03-25T10:46:45Z2011-03-25T10:46:45Zaspiranthttps://stocksharp.ru/users/6114/info@stocksharp.ru<div class="quote"><span class="quotetitle">Mikhail Sukhov <a href="https://stocksharp.ru/posts/m/7012/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote">2. Вроде бы нет колонки isin. Или я не понял вопроса.</div></div><br />В классе PlazaOptionSessionContentsColumns есть переменные Isin (Символьный код инструмента) и IsinId (Уникальный числовой идентификатор инструмента). Сейчас я в качестве ключа использую Isin:<br /><div class="code"><strong>Код</strong><div class="innercode">private void OnNewDataFromFuturesSessionContents(PlazaRecord record)<br />{<br /> var metadata = PlazaColumnRegistry.FuturesSessionContents;<br /><br /> base.ProcessEvents(() =><br /> {<br /> base.GetSecurity(record[metadata.Isin].ToString(), sec =><br /> {<br /> // мапим...<br /> });<br /> });<br />}</div></div><br /><br />Можно использовать IsinId?<br /><div class="code"><strong>Код</strong><div class="innercode">base.GetSecurity(record[metadata.IsinId].ToString(), sec =><br /></div></div><br />Или символьное представление удобнее, где-то используется и т.д.?<br /><br /><div class="quote"><span class="quotetitle">Mikhail Sukhov <a href="https://stocksharp.ru/posts/m/7012/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote">Все, что не входит в свойства такие как ExpiryDate, MinStepPrice и т.д.</div></div><br />Ключи называем FuturesIsinId или fut_isin_id, IsEuropean или europe и т.д.?<br /><br /><div class="quote"><span class="quotetitle">Mikhail Sukhov <a href="https://stocksharp.ru/posts/m/7012/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote">Я сам их пользую, но только из-за удобства.</div></div><br />Сам все сказал: так легче. Если контроль за такими вещами, как использование памяти, критичен, тогда нужно использовать C++.Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/7012/Мне вообще кажется не стоит каждый раз создавать PlazaListener. Да, ты прав. Это должна быть перемен...2011-03-24T21:23:32Z2011-03-24T21:23:32ZMikhail Sukhovhttps://stocksharp.ru/users/201/info@stocksharp.ru<div class="quote"><span class="quotetitle">aspirant <a href="https://stocksharp.ru/posts/m/7011/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote"><div class="quote"><span class="quotetitle">Mikhail Sukhov <a href="https://stocksharp.ru/posts/m/6975/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote">Мне вообще кажется не стоит каждый раз создавать PlazaListener.</div></div><br /><br />Да, ты прав. Это должна быть переменная внутри класса. Начал править и тут несколько вопросов:<br /><br /><ol><li>Чтобы быть последовательным, что ты делаешь в QuickTrader'е, если клиент при запущенных стандартных потоках повторно вызывает StartExport? Выбрасываешь исключение? Перезапускаешь стандартные потоки? Не делаешь ничего?<br /><li>В качестве уникального ID для инструментов используем isin или isin_id? Плаза в своих потоках использует isin_id (см., например, схемы таблиц opt_exp_orders, opt_rejected_orders).<br /><li>В ExtensionInfo запихиваем все, или только то, что не получается замапить? В качестве ключей используем названия колонок Плазы или названия переменных наших классов метаданных?</ol><br /></div></div><br /><br />1. Перезапуск.<br />2. Вроде бы нет колонки isin. Или я не понял вопроса.<br />3. Все, что не входит в свойства такие как ExpiryDate, MinStepPrice и т.д. Ни то, ни другое - объекты PlazaColumn.<br /><br /><div class="quote"><span class="quotetitle">Mikhail Sukhov <a href="https://stocksharp.ru/posts/m/6975/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote">А отписываешься где? Утечка памяти...</div></div><br />Утечка памяти была бы, если optionListener (раздатчик событий) жил бы дольше, чем PlazaTrader (подписчик на события) (см. <a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAADaUgqeUiMvqHjAqLN3xr_cYQ12WhxUIL45Q--L0kVVWrzhW8KCIjZHcv4o1CRUxqNSbgfnVuycH8E8EhfzpoEpmiOPT6lme57NBQi0NouUjnmHvONR3w1Tu1kgwOSLhL57AwaR62Y2tcrj8-P6PohV" title="http://stackoverflow.com/questions/1061727/is-it-bad-to-not-unregister-event-handlers/1061735#1061735">здесь</a>). Почему тогда в C# есть анонимные event handlers?[/quote]<br /><br />Потому что это порочное решение. Я сам их пользую, но только из-за удобства. В системных классах я никогда не подписываюсь на событие анонимным методом или лямбдой. Последние, кстати, придумали для Линка, тоесть когда мы не в цепочки вставляем наш обработчик, а просто передаем делегат как аргумент в некий метод.Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/7011/Мне вообще кажется не стоит каждый раз создавать PlazaListener. Да, ты прав. Это должна быть перемен...2011-03-24T20:58:14Z2011-03-24T20:58:14Zaspiranthttps://stocksharp.ru/users/6114/info@stocksharp.ru<div class="quote"><span class="quotetitle">Mikhail Sukhov <a href="https://stocksharp.ru/posts/m/6975/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote">Мне вообще кажется не стоит каждый раз создавать PlazaListener.</div></div><br /><br />Да, ты прав. Это должна быть переменная внутри класса. Начал править и тут несколько вопросов:<br /><br /><ol><li>Чтобы быть последовательным, что ты делаешь в QuickTrader'е, если клиент при запущенных стандартных потоках повторно вызывает StartExport? Выбрасываешь исключение? Перезапускаешь стандартные потоки? Не делаешь ничего?<br /><li>В качестве уникального ID для инструментов используем isin или isin_id? Плаза в своих потоках использует isin_id (см., например, схемы таблиц opt_exp_orders, opt_rejected_orders).<br /><li>В ExtensionInfo запихиваем все, или только то, что не получается замапить? В качестве ключей используем названия колонок Плазы или названия переменных наших классов метаданных?</ol><br /><br /><br /><div class="quote"><span class="quotetitle">Mikhail Sukhov <a href="https://stocksharp.ru/posts/m/6975/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote">А отписываешься где? Утечка памяти...</div></div><br />Утечка памяти была бы, если optionListener (раздатчик событий) жил бы дольше, чем PlazaTrader (подписчик на события) (см. <a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAADaUgqeUiMvqHjAqLN3xr_cYQ12WhxUIL45Q--L0kVVWrzhW8KCIjZHcv4o1CRUxqNSbgfnVuycH8E8EhfzpoEpmiOPT6lme57NBQi0NouUjnmHvONR3w1Tu1kgwOSLhL57AwaR62Y2tcrj8-P6PohV" title="http://stackoverflow.com/questions/1061727/is-it-bad-to-not-unregister-event-handlers/1061735#1061735">здесь</a>). Почему тогда в C# есть анонимные event handlers?Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/6975/Но данные из потока не так интересны. Их нужно перегнать в объект Security. Можете посмотреть метод ...2011-03-23T13:59:49Z2011-03-23T14:00:01ZMikhail Sukhovhttps://stocksharp.ru/users/201/info@stocksharp.ru<div class="quote"><span class="quotetitle">aspirant <a href="https://stocksharp.ru/posts/m/6957/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote"><div class="quote"><span class="quotetitle">Mikhail Sukhov <a href="https://stocksharp.ru/posts/m/6488/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote">Но данные из потока не так интересны. Их нужно перегнать в объект Security.</div></div><br />Можете посмотреть метод PlazaTrader.OnNewDataFromOptionSessionContents()? Не совсем уверен насчет правильности мапинга данных из потока в свойства Security[confused] <br /></div></div><br /><br />Все отлично. Ошибку заметил в другом месте.[smile] Ты в StartExport подписываешься на событие? А отписываешься где? Утечка памяти... Ладно, это потом. Мне вообще кажется не стоит каждый раз создавать PlazaListener. Но я пока не вижу всей картинки с запуском пользователей доп потоков. Это тебе виднее.Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/6957/Но данные из потока не так интересны. Их нужно перегнать в объект Security. Можете посмотреть метод ...2011-03-22T20:09:16Z2011-03-22T20:09:16Zaspiranthttps://stocksharp.ru/users/6114/info@stocksharp.ru<div class="quote"><span class="quotetitle">Mikhail Sukhov <a href="https://stocksharp.ru/posts/m/6488/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote">Но данные из потока не так интересны. Их нужно перегнать в объект Security.</div></div><br />Можете посмотреть метод PlazaTrader.OnNewDataFromOptionSessionContents()? Не совсем уверен насчет правильности мапинга данных из потока в свойства Security[confused] <br />Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/6537/А вообще возможно напрямую обращаться к серверу Плазы минуя этот роутер? Сегодня весь день пытался п...2011-03-09T19:32:04Z2011-03-09T19:33:34Zaspiranthttps://stocksharp.ru/users/6114/info@stocksharp.ru<div class="quote"><span class="quotetitle">Mikhail Sukhov <a href="https://stocksharp.ru/posts/m/6491/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote">А вообще возможно напрямую обращаться к серверу Плазы минуя этот роутер?</div></div><br /><br />Сегодня весь день пытался получить список инструментов из таблицы opt_vcb. Путем тыкания и активного общения с поддержкой РТС только что наконец получилось. Почерпнул для себя <b>две важные вещи</b>, которыми хочу поделиться:<br /><ol><li><div class="quote"><span class="quotetitle">Цитата:</span><div class="innerquote"> дело не в Appname'е. А в том, что в client_router.ini стоит одинаковый адрес в параметрах default и direct. Для тестового полигона direct можно вообще закомментировать.</div></div><br />От себя добавлю: комментировать не можно, а <b>нужно</b>. Иначе из роутера через раз будут валиться ошибки.<br /><br /><li>Номер тестового порта 3001 нужно прописать не только в client_router.ini, но и в volatvmsrv\local_inter.ini и volatvmsrv\forts_volatvm.ini. Здесь, если этого не сделать, программа будет подключаться, но по некоторым потокам данные не будут приходить.</ol>Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/6492/А вообще возможно напрямую обращаться к серверу Плазы минуя этот роутер? Я так понял, что нет (см. п...2011-03-09T06:13:36Z2011-03-09T06:14:07Zaspiranthttps://stocksharp.ru/users/6114/info@stocksharp.ru<div class="quote"><span class="quotetitle">Mikhail Sukhov <a href="https://stocksharp.ru/posts/m/6491/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote">А вообще возможно напрямую обращаться к серверу Плазы минуя этот роутер?</div></div><br />Я так понял, что нет (см. п. 5.1. Топология сети - стр. 7 P2ClientGate.doc). <br /><br />Кстати, есть ощущение, что, если нужно распараллелить получение данных, через один роутер это не получится. Я добавил PlazaConnectionPool, который создает отдельный CP2ConnectionClass для каждого стрима. Вчера тестировал: данные с разных потоков все равно приходят последовательно[sad]Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/6491/А зачем client_router.ini вообще редактировать? Ты спрашивал про логин и пароль. Он указываются в эт...2011-03-08T17:52:55Z2011-03-08T17:52:55ZMikhail Sukhovhttps://stocksharp.ru/users/201/info@stocksharp.ru<div class="quote"><span class="quotetitle">aspirant <a href="https://stocksharp.ru/posts/m/6490/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote"><div class="quote"><span class="quotetitle">Mikhail Sukhov <a href="https://stocksharp.ru/posts/m/6489/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote">А зачем client_router.ini вообще редактировать?</div></div><br /><br />Ты спрашивал про логин и пароль. Он указываются в этом файле (+ адрес сервера Плазы и номер порта). В этом случае в коде ничего не нужно указывать. И, да, ты прав, его лучше не трогать во время исполнения программы.<br /></div></div><br /><br />А вообще возможно напрямую обращаться к серверу Плазы минуя этот роутер?Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/6490/А зачем client_router.ini вообще редактировать? Ты спрашивал про логин и пароль. Он указываются в эт...2011-03-08T17:37:21Z2011-03-08T17:37:21Zaspiranthttps://stocksharp.ru/users/6114/info@stocksharp.ru<div class="quote"><span class="quotetitle">Mikhail Sukhov <a href="https://stocksharp.ru/posts/m/6489/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote">А зачем client_router.ini вообще редактировать?</div></div><br /><br />Ты спрашивал про логин и пароль. Он указываются в этом файле (+ адрес сервера Плазы и номер порта). В этом случае в коде ничего не нужно указывать. И, да, ты прав, его лучше не трогать во время исполнения программы.<br />Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/6489/ Два момента: После редактирования первых конфигов нужно обязательно перезагружать роутер. В теории ...2011-03-08T15:50:53Z2011-03-08T16:09:28ZMikhail Sukhovhttps://stocksharp.ru/users/201/info@stocksharp.ru<div class="quote"><span class="quotetitle">aspirant <a href="https://stocksharp.ru/posts/m/6485/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote"><br />Два момента: <br /><ol><li>После редактирования первых конфигов нужно обязательно перезагружать роутер.<br /><li>В теории создавать первые конфиги на лету тоже можно. Но я бы не стал: путь к client_router.ini указывается в коммандной строке сервиса Windows роутера (и прописывается в системном реестре). Придется колдовать и с этим.</ol><br /></div></div><br /><br />А зачем client_router.ini вообще редактировать? С ini файлами по схемам понятно. А вот зачем роутер.<br /><br />Так, понял почему вылезает AcessViolationException. В папке нужен файл P2ClientGate.ini, который не создается на лету (а должен, по идее). Подсунул этот файл, упало дальше, что нет p2fortsgate_messages.ini (тоже нужно на лету создавать). Вот как то так. Хотел практическое направление - это как раз оно.[smile]Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/6488/ Уже можно вручную подключиться к таблице opt_vcb потока FORTS_OPTINFO_REPL _plazaConnectionPool = n...2011-03-08T15:48:24Z2011-03-08T15:48:41ZMikhail Sukhovhttps://stocksharp.ru/users/201/info@stocksharp.ru<div class="quote"><span class="quotetitle">aspirant <a href="https://stocksharp.ru/posts/m/6484/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote"><br />Уже можно вручную подключиться к таблице opt_vcb потока FORTS_OPTINFO_REPL<br /><div class="code"><strong>Код</strong><div class="innercode">_plazaConnectionPool = new PlazaConnectionPool("localhost", 3001);<br />_plazaStreamManager1 = new PlazaStreamManager(_plazaConnectionPool, TRequestType.RT_COMBINED_DYNAMIC, 500);<br /><br />var plazaTable = new PlazaTable(PlazaTableTypes.Position, PlazaColumns.Options, PlazaColumns.Options.GetAllColumns());<br />_plazaStreamManager1.AddStream("opt_vcb", plazaTable);<br /><br />_plazaStreamManager1.Start();<br /></div></div><br /></div></div><br /><br />Да, это очень хорошо. Но данные из потока не так интересны. Их нужно перегнать в объект Security. Как это сделать. Допустим, PlazaTrader имеет метод-обработки поступления новых данных из потока opt_vcb:<br /><br /><div class="code"><strong>Код</strong><div class="innercode">public class PlazaTrader<br />{<br /> private void OnNewDataFromOptVcb(object[][] valuesArray)<br /> {<br /> base.ProcessEvents(() => // чтобы событие NewSecurities вызвалось один раз для все инструментов<br /> {<br /> foreach (var values in valuesArray)<br /> {<br /> // в GetSecurity если до этого такого инструмента не было (проверяется по значению в values[0])<br /> // вызывается NewSecurities, если же был инструмент - SecuritiesChanged.<br /> base.GetSecurity((string)values[0], sec =><br /> {<br /> sec.Name = values[1];<br /> sec.Code = values[2];<br /> ...<br /> });<br /> }<br /> });<br /> }<br />}</div></div>Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/6485/ Они должны лежать локально. Но это вроде при создании потока. Сейчас уже создаются сами через Plaza...2011-03-08T06:57:33Z2011-03-08T06:57:33Zaspiranthttps://stocksharp.ru/users/6114/info@stocksharp.ru<div class="quote"><span class="quotetitle">Mikhail Sukhov <a href="https://stocksharp.ru/posts/m/6483/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote"><br />Они должны лежать локально. Но это вроде при создании потока. Сейчас уже создаются сами через PlazaTrader?<br /></div></div><br />У Плаза есть конфиги программы и конфиги-схему таблиц потоков репликации. Первые (самый главный client_router.ini) редактируются через ClientRouterConfigParser, вторые (по примеру файлов, лежащих в подпапке Scheme) создаются на лету.<br /><br />Два момента: <br /><ol><li>После редактирования первых конфигов нужно обязательно перезагружать роутер.<br /><li>В теории создавать первые конфиги на лету тоже можно. Но я бы не стал: путь к client_router.ini указывается в коммандной строке сервиса Windows роутера (и прописывается в системном реестре). Придется колдовать и с этим.</ol><br /><br /><div class="quote"><span class="quotetitle">Mikhail Sukhov <a href="https://stocksharp.ru/posts/m/6483/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote"><br />А какой адрес? localhost?</div></div><br /><br />Путь указывать к компу, на котором установлен роутер, т.е. localhost, если у тебя все на одной машине.<br /><br /><div class="quote"><span class="quotetitle">Mikhail Sukhov <a href="https://stocksharp.ru/posts/m/6483/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote"><br />Кстати, если логин пароль не нужно указывать, на лицо необработанная ситуация с конструкторами PlazaTrader.</div></div><br /><br />Начал дебаггить. Перед вызовом<div class="code"><strong>Код</strong><div class="innercode">var srvAddress = _connection.ResolveService("FORTS_SRV");</div></div><br /><br />нужно включить соединение<div class="code"><strong>Код</strong><div class="innercode">_connection.Connect();</div></div><br /><br />Я его добавил и обрамил комментариями<br />Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/6484/Сейчас уже можно получить список инструментов? Уже можно вручную подключиться к таблице opt_vcb пото...2011-03-08T06:27:57Z2011-03-08T06:27:57Zaspiranthttps://stocksharp.ru/users/6114/info@stocksharp.ru<div class="quote"><span class="quotetitle">Mikhail Sukhov <a href="https://stocksharp.ru/posts/m/6470/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote">Сейчас уже можно получить список инструментов?<br /></div></div><br /><br />Уже можно вручную подключиться к таблице opt_vcb потока FORTS_OPTINFO_REPL<br /><div class="code"><strong>Код</strong><div class="innercode">_plazaConnectionPool = new PlazaConnectionPool("localhost", 3001);<br />_plazaStreamManager1 = new PlazaStreamManager(_plazaConnectionPool, TRequestType.RT_COMBINED_DYNAMIC, 500);<br /><br />var plazaTable = new PlazaTable(PlazaTableTypes.Position, PlazaColumns.Options, PlazaColumns.Options.GetAllColumns());<br />_plazaStreamManager1.AddStream("opt_vcb", plazaTable);<br /><br />_plazaStreamManager1.Start();<br /></div></div><br /><br />Правда "маленький" нюанс: при подключении с сервера приходит ошибка (не сразу, через некоторое время). Аналогичный код для подключения к другим таблицам, например к индексу РТС, работает без проблем. Завтра напишу вопрос в поддержку РТС.<br />Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/6483/ Я вчера пытался соединиться с Plaza из SampleGUI, и получил ошибку AccessViolationException. Забыл,...2011-03-07T21:40:57Z2011-03-07T21:40:57ZMikhail Sukhovhttps://stocksharp.ru/users/201/info@stocksharp.ru<div class="quote"><span class="quotetitle">aspirant <a href="https://stocksharp.ru/posts/m/6480/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote"><div class="quote"><span class="quotetitle">Mikhail Sukhov <a href="https://stocksharp.ru/posts/m/6470/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote"><br />Я вчера пытался соединиться с Plaza из SampleGUI, и получил ошибку AccessViolationException. Забыл, что она означает. Но в памяти осталось, что-то из настроек.</div></div><br />Скорее всего, либо VS2010 либо сама программа запущена не под админом. Все файлы-конфиги лежат в C:\Program Files\P2FORTSGate, и для редактирования файлов требуется админский доступ. В принципе в файле настроек можно заранее прописать все настройки (логин, пароль, сервер подключения и порт), чтобы не редактировать их на лету.<br /></div></div><br /><br />Они должны лежать локально. Но это вроде при создании потока. Сейчас уже создаются сами через PlazaTrader?<br /><br /><div class="quote"><span class="quotetitle">aspirant <a href="https://stocksharp.ru/posts/m/6480/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote"><br /><div class="quote"><span class="quotetitle">Mikhail Sukhov <a href="https://stocksharp.ru/posts/m/6470/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote"><br />Нужно ли указывать логин пароль в роботе если он прописан уже в роутере?</div></div><br />Нет<br /></div></div><br /><br />А какой адрес? localhost? Кстати, если логин пароль не нужно указывать, на лицо необработанная ситуация с конструкторами PlazaTrader.Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/6480/ Я вчера пытался соединиться с Plaza из SampleGUI, и получил ошибку AccessViolationException. Забыл,...2011-03-07T20:00:01Z2011-03-07T20:00:01Zaspiranthttps://stocksharp.ru/users/6114/info@stocksharp.ru<div class="quote"><span class="quotetitle">Mikhail Sukhov <a href="https://stocksharp.ru/posts/m/6470/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote"><br />Я вчера пытался соединиться с Plaza из SampleGUI, и получил ошибку AccessViolationException. Забыл, что она означает. Но в памяти осталось, что-то из настроек.</div></div><br />Скорее всего, либо VS2010 либо сама программа запущена не под админом. Все файлы-конфиги лежат в C:\Program Files\P2FORTSGate, и для редактирования файлов требуется админский доступ. В принципе в файле настроек можно заранее прописать все настройки (логин, пароль, сервер подключения и порт), чтобы не редактировать их на лету.<br /><br /><div class="quote"><span class="quotetitle">Mikhail Sukhov <a href="https://stocksharp.ru/posts/m/6470/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote"><br />Нужно ли указывать логин пароль в роботе если он прописан уже в роутере?</div></div><br />Нет<br />Copyright @ StockSharp Platform LLC 2010 - 2024https://stocksharp.ru/posts/m/6470/В принципе с первым закончил. Насчет фильтрации думаю подождать до первого внедрения. Я теоретик, и ...2011-03-07T07:39:13Z2011-03-07T07:39:13ZMikhail Sukhovhttps://stocksharp.ru/users/201/info@stocksharp.ru<div class="quote"><span class="quotetitle">aspirant <a href="https://stocksharp.ru/posts/m/6467/"><img src="https://stocksharp.ru/images/icon_latest_reply.gif" title="Перейти" alt="Перейти" /></a></span><div class="innerquote">В принципе с первым закончил. Насчет фильтрации думаю подождать до первого внедрения. Я теоретик, и пока не совсем представляю, по каким полям и в каком виде нужно делать фильтрацию. Если у кого-то есть мысли, пишите, или кто-то готов подхватить, рад поделиться.<br /></div></div><br /><br />Ждать уже не нужно - я добавил SampleGUI. Пора уже смотреть, как работает PlazaTrader. Сейчас уже можно получить список инструментов?<br /><br />Я вчера пытался соединиться с Plaza из SampleGUI, и получил ошибку AccessViolationException. Забыл, что она означает. Но в памяти осталось, что-то из настроек. Нужно ли указывать логин пароль в роботе если он прописан уже в роутере?Copyright @ StockSharp Platform LLC 2010 - 2024