﻿<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type='text/css' href='https://stocksharp.ru/css/style.css'?>
<?xml-stylesheet type='text/css' href='https://stocksharp.ru/css/bbeditor.css'?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title type="html">Ключи коллекций.</title>
  <id>~/topic/2684/klyuchi-kollektsii_/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-04-17T06:03:13Z</updated>
  <logo>https://stocksharp.ru/images/logo.png</logo>
  <link href="https://stocksharp.ru/handlers/atom.ashx?category=topic&amp;id=2684" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.ru/posts/m/19220/</id>
    <title type="text">Не видна диаграмма. Что то глючит. Нажмите F5. И вы не ответили на главный вопрос - действительно ли...</title>
    <published>2012-05-21T17:59:49Z</published>
    <updated>2012-05-21T17:59:49Z</updated>
    <author>
      <name>Alexander</name>
      <uri>https://stocksharp.ru/users/2826/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;ASorokovoy &lt;a href="https://stocksharp.ru/posts/m/19212/" 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;Alexander Mukhanchikov &lt;a href="https://stocksharp.ru/posts/m/19206/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Не видна диаграмма.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Что то глючит. Нажмите F5.&lt;br /&gt;&lt;br /&gt;&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Alexander Mukhanchikov &lt;a href="https://stocksharp.ru/posts/m/19206/" 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;Alexander Mukhanchikov &lt;a href="https://stocksharp.ru/posts/m/19206/" 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;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Нажимал F5, у вас кривая ссылка на скриншот. Его нет.&lt;br /&gt;&lt;br /&gt;Вы работаете с библиотекой как физ лицо, но выше писали о проблемах, которые возникают либо для юр лиц, либо для несуществующих пока коннекторов (к примеру, LSE).&lt;br /&gt;В общем я пока не особо понимаю вашу заинтересованность и вашу необходимость.&lt;br /&gt;&lt;br /&gt;Предлагаю пообщаться через скайп, amukhanchikov.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/19212/</id>
    <title type="text">Не видна диаграмма. Что то глючит. Нажмите F5. И вы не ответили на главный вопрос - действительно ли...</title>
    <published>2012-05-21T15:54:27Z</published>
    <updated>2012-05-21T15:54:27Z</updated>
    <author>
      <name>ASorokovoy</name>
      <uri>https://stocksharp.ru/users/6180/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Alexander Mukhanchikov &lt;a href="https://stocksharp.ru/posts/m/19206/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Не видна диаграмма.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Что то глючит. Нажмите F5.&lt;br /&gt;&lt;br /&gt;&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Alexander Mukhanchikov &lt;a href="https://stocksharp.ru/posts/m/19206/" 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;Alexander Mukhanchikov &lt;a href="https://stocksharp.ru/posts/m/19206/" 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;Работаю с библиотекой как физ лицо.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/19206/</id>
    <title type="text">Не видна диаграмма. И вы не ответили на главный вопрос - действительно ли вам это надо для работы? И...</title>
    <published>2012-05-21T12:13:41Z</published>
    <updated>2012-05-21T12:13:41Z</updated>
    <author>
      <name>Alexander</name>
      <uri>https://stocksharp.ru/users/2826/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Не видна диаграмма.&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/19203/</id>
    <title type="text">Действительно ли вам это сейчас необходимо при работе со StockSharp? Или вы заглядываете и думаете о...</title>
    <published>2012-05-21T10:26:21Z</published>
    <updated>2012-05-21T10:26:21Z</updated>
    <author>
      <name>ASorokovoy</name>
      <uri>https://stocksharp.ru/users/6180/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Alexander Mukhanchikov &lt;a href="https://stocksharp.ru/posts/m/19184/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Действительно ли вам это сейчас необходимо при работе со StockSharp? Или вы заглядываете и думаете о будущем?&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;ol&gt; &lt;li&gt; Реально обнаруженные проблемы&lt;br /&gt; -  а) Проблема в QUIKTrader c Portfolio.Name&lt;br /&gt; -  б) Ключ коллекции MyTrades&lt;br /&gt; &lt;li&gt; Высокая вероятность возникновления ошибок.&lt;br /&gt;  -  а) Ключ коллекции Orders&lt;br /&gt;  -  б) Ключ коллекции Trades &lt;br /&gt;Вполне вероятно что ошибки есть но я их не вижу.&lt;br /&gt; &lt;li&gt; Ошибки можно поправить собственным &amp;quot;костылем&amp;quot;&lt;br /&gt;   -  при использовании StockSharp.Algo.SecurityIdGenerator для QUIKTrader к примеру &lt;br /&gt;ID = QUIK_ClassCode@SecurCode &lt;br /&gt;если достать стакан то значение &lt;br /&gt;StockSharp.BusinessEntities.MarketDepth.Security.ID будет QUIK_QUIK_ClassCode@SecurCode.&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;Однако, я бы хотел обозначить некоторый подводный камень который мне видиться.&lt;br /&gt;Построим диаграмму зависимости бизнес сущностей S# (какие являються базовыми а какие являються производными)&lt;br /&gt;&lt;a href='http://imagepost.ru/images/s/le/sleter.JPG' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="http://imagepost.ru/images/s/le/sleter.JPG" style='max-width: 600px;' alt="Зависимость бизнес сущностей" title="Зависимость бизнес сущностей" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Рассмотрим к примеру Position он являеться производным от Portfolio и Security, соответсвенно имеет ключ &lt;br /&gt;portfolio + security. При не уникальном ключе portfolio получим как следсвие не уникальный ключ position (Эту ошибку удаеться реально наблюдать). Я обозначаю эту проблему к тому, что если поправить ключ коллекции MyTrades не поправив ключ Trades (он останеться не уникальным) по факту мы просто закопаем ошибку глубже.&lt;br /&gt;&lt;br /&gt;По этому ключи нужно поправлять идя по диаграмме с лева на право. Таким образом приоритеты изменения ключей коллекций, соблюдение которых гарантирует не появление новых ошибок.&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;  Проблема в QUIKTrader c Portfolio.Name&lt;br /&gt;&lt;li&gt;  Ключ коллекции Orders&lt;br /&gt;Предлагаю Ключ:&lt;br /&gt;Для биржи с ежедневной нумерацией с 0: Security.ID + номер заявки + дата заявки&lt;br /&gt;Для биржи с &amp;quot;глобальной&amp;quot; нумерацией: Security.ID + номер заявки + (запрет на изменение кода класса и даты постановки заявки)&lt;br /&gt;&lt;li&gt;  Ключ коллекции Trades&lt;br /&gt;Предлагаю ключ: ID = Security.ID + номер сделки + дата сделки&lt;br /&gt;&lt;li&gt;  Ключ коллекции MyTrades &lt;br /&gt;Предлагаю ключ: ID = Trade.ID + Order.Direction&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;Соответсвенно что бы вылечить ключ MyTrades (не уникальность которого проявляет себя в зарегистированных ошибках), по хорошему перед этим нужно вылечить все остальные ключи.&lt;br /&gt;&lt;br /&gt;&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Mikhail Sukhov &lt;a href="https://stocksharp.ru/posts/m/19028/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Например, не понятно, зачем разделять инструменты для разных источников.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Важно разделять инструменты из разных источников, так как при выгрузке из разных источников ID инструметов может случайно совпасть и в силу того, что в иерархии зависимостей Security находиться в основании, это вызовет целый каскад ошибок, отыскать среди которых корень может оказаться сложно.&lt;br /&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/19184/</id>
    <title type="text">Действительно ли вам это сейчас необходимо при работе со StockSharp? Или вы заглядываете и думаете о...</title>
    <published>2012-05-20T18:04:59Z</published>
    <updated>2012-05-20T18:04:59Z</updated>
    <author>
      <name>Alexander</name>
      <uri>https://stocksharp.ru/users/2826/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Действительно ли вам это сейчас необходимо при работе со StockSharp? Или вы заглядываете и думаете о будущем?&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/19080/</id>
    <title type="text"> За 2.5 года работы с таким не встречались. Покажите, пожалуйста, скриншоты 2х квиков, у которых буд...</title>
    <published>2012-05-17T05:07:08Z</published>
    <updated>2012-05-17T05:07:08Z</updated>
    <author>
      <name>ASorokovoy</name>
      <uri>https://stocksharp.ru/users/6180/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Alexander Mukhanchikov &lt;a href="https://stocksharp.ru/posts/m/19032/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;&lt;br /&gt;За 2.5 года работы с таким не встречались.&lt;br /&gt;Покажите, пожалуйста, скриншоты 2х квиков, у которых будет совпадать торговый счёт, но различаться фирма.&lt;br /&gt;И я пока не могу придумать ситуации, когда эти 2 квика будут запущены на 1м компьютере и использоваться Stock#.&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Отправил скриншот &amp;quot;Portfolios.bmp&amp;quot; на &lt;a href="mailto:info@stocksharp.com"&gt;info@stocksharp.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Alexander Mukhanchikov &lt;a href="https://stocksharp.ru/posts/m/19032/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;&lt;br /&gt;На каких?&lt;br /&gt;Эта проблема может возникнуть только если робот со S# запущен 24\5.&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Например на LSE &lt;br /&gt;Предложенный ключ: Инструмент + номер сделки + дата сделки&lt;br /&gt;При условии уникальности ключа инструмента обеспечит 100% унакальность ключа сделки и как следствие исключит возможность неожиданных потерь данных.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Alexander Mukhanchikov &lt;a href="https://stocksharp.ru/posts/m/19032/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;&lt;br /&gt;&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;ASorokovoy &lt;a href="https://stocksharp.ru/posts/m/19013/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;&lt;br /&gt;7777 SPBFUT 24.04.12 &lt;br /&gt;на следующий день получим как минимум сразу две заявки &lt;br /&gt;7777 SPBEVN 24.04.12 (изменился класс на SPBEVN) &lt;br /&gt;7777 SPBFUT 25.04.12 (изменилась дата постановки) &lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Сделки с вечерней сессии не приедут. Они фильтруются и обрабатываются внутри.&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;призойдет update сделки 7777 и будет казаться что ее выставили 25.04.12 хотя по факту она была выставлена 24.04.12&lt;br /&gt;&lt;br /&gt;сдесь важно добавить в ключ ID инструмента так как если грузить с разных бирж (используя разные коннекторы обьедененные в BasketTrader) вероятность совпадения номеров заявок достаточно велика. &lt;br /&gt;&lt;br /&gt;&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Alexander Mukhanchikov &lt;a href="https://stocksharp.ru/posts/m/19032/" 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;br /&gt;Такая ситуация реальна. Отправил скриншот &amp;quot;MyDeals.bmp&amp;quot; на &lt;a href="mailto:info@stocksharp.com"&gt;info@stocksharp.com&lt;/a&gt; (две сделки с одинаковым номером. Порядковые номера в таблице 17, 18) &lt;br /&gt;&lt;br /&gt;&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Alexander Mukhanchikov &lt;a href="https://stocksharp.ru/posts/m/19032/" 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;В своей программе я наблюдаю целый каскад ошибок. Утилита Verifier генерирует список ошибок на несколько сотен строк. Вышеописанные проблемы есть их источник (возможно не только они). Возможно эти проблемы возникают не только у меня, просто они не отмечены на форуме. Однако с ростом числа коннекторов и людей работающих с ними в связке ошибки начнут возникать не только у меня. &lt;br /&gt;&lt;br /&gt;&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Mikhail Sukhov &lt;a href="https://stocksharp.ru/posts/m/19028/" 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;br /&gt;1) Изменить принцеп формирования Portfolio.name в QUIKTrader&lt;br /&gt;&lt;br /&gt;2) Изменить сигнатуры функций &lt;br /&gt;StockSharp.Algo.BaseTrader.GetOrderByTransactionId(long ID )&lt;br /&gt;StockSharp.Algo.BaseTrader.GetTrade(StockSharp.BusinessEntities.Security, long TradeID, System.Func&amp;lt;long,StockSharp.BusinessEntities.Trade&amp;gt;)&lt;br /&gt;StockSharp.Algo.BaseTrader.AddMyTrade(StockSharp.BusinessEntities.Security, long, long, StockSharp.BusinessEntities.Trade)&lt;br /&gt;и несколько поменять операции выборки в нутри них.&lt;br /&gt;Правда после этого предеться немного изменить все существующие коннекторы, однако возможно это лучше сделать сейчас. &lt;br /&gt;&lt;br /&gt;Для 2) как вариант можно еще заменить ВСЕ ключи коллекций на string и подобно StockSharp.Algo.SecurityIdGenerator &lt;br /&gt;Сделать &lt;br /&gt;string TradeIDGenerator.GenerateID(Security iSecur, long iNum, string date);&lt;br /&gt;string OrderIdGenerator.GenerateID(Security iSecur, long iNum, string date);&lt;br /&gt;string MyTradeIDGenerator.GenerateID(Trade iTrade, Order iOrder);&lt;br /&gt;Предоствив пользователю возможность сочинять какие угодно ключи.&lt;br /&gt;&lt;br /&gt;Все вышеописанные доработки я готов выполнить лично. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;P.S. &lt;br /&gt;Да, для ориентированного на людей торгущих на ММВБ и РТС с одного двух счетов существующей версии S# вполне достаточно. Однако, благодоря крайне высокому качеству имеющейся кодовой базы (как с точки зрения архитектуры, так и с точки зрения оформелния кода), потрясающе ясным интерфейсам, со временем S# может вырости в нечно большее, намного большее. И возможно есть смысл заложить основание для будущего роста уже сейчас.&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/19032/</id>
    <title type="text">Дополню ответ Михаила. 2) Portfolio Как я понимаю ID портфеля есть его имя. Здесь тоже хотелось бы д...</title>
    <published>2012-05-14T16:06:23Z</published>
    <updated>2012-05-14T16:12:08Z</updated>
    <author>
      <name>Alexander</name>
      <uri>https://stocksharp.ru/users/2826/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Дополню ответ Михаила.&lt;br /&gt;&lt;br /&gt;&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;ASorokovoy &lt;a href="https://stocksharp.ru/posts/m/19013/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;2) Portfolio &lt;br /&gt;Как я понимаю ID портфеля есть его имя. Здесь тоже хотелось бы добавить имя источника данных.&lt;br /&gt;Так же есть проблема с QUIKTrader. Как я понял Portfolio.Name а соответственно и ID портфеля совпадают с значением колонки торговый счет.&lt;br /&gt;К сожалению, торговый счет не является уникальной характеристикой клиентов на ФОРТС из за существования так называемых разделов. (Группы клиентов имеющие те или иные привилегии, например пониженную комиссию)&lt;br /&gt;В разных разделах могут существовать одинаковые торговые счета по факту принадлежащие разным людям. Разделы нумеруются по порядку от 0 до 99 номер раздела можно получить из колонки Фирма как последние две цифры.&lt;br /&gt;Припаяв к торговому чету номер раздела, получим уникальный ID.&lt;br /&gt;Предлогаю ключ: SourceName + PortfolioID&lt;br /&gt;Для квика PortfolioID = торговый счет + Фирма&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;За 2.5 года работы с таким не встречались.&lt;br /&gt;Покажите, пожалуйста, скриншоты 2х квиков, у которых будет совпадать торговый счёт, но различаться фирма.&lt;br /&gt;И я пока не могу придумать ситуации, когда эти 2 квика будут запущены на 1м компьютере и использоваться Stock#.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;ASorokovoy &lt;a href="https://stocksharp.ru/posts/m/19013/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;3) Trades&lt;br /&gt;Исходя из сигнатуры функции&lt;br /&gt;StockSharp.Algo.BaseTrader.GetTrade(StockSharp.BusinessEntities.Security, long TradeID, System.Func&amp;lt;long,StockSharp.BusinessEntities.Trade&amp;gt;)&lt;br /&gt;номер сделки получается как сумма ID инструмента и номера сделки.&lt;br /&gt;Однако &lt;b&gt;на некоторых американских биржах&lt;/b&gt; нумерация заявок начинается ежедневно с 0. Так что возможно есть смысл добавить в ключ дату сделки TradeDate. &lt;br /&gt;Предлагаю ключ: Инструмент + номер сделки + дата сделки&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;На каких?&lt;br /&gt;Эта проблема может возникнуть только если робот со S# запущен 24\5.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;ASorokovoy &lt;a href="https://stocksharp.ru/posts/m/19013/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;4) Order&lt;br /&gt;С ордерами чуть более сложная ситуация чем со всем остальным, так как на некоторых биржах (например на ФОРТС) заявки выставленные в вечерню сессию приедут к нам на следующий день.&lt;br /&gt;Здесь ситуация следующая к примеру заявка с номером 7777 на фортс (класс SPBFUT)  предположим 24.04.12 &lt;br /&gt;7777 SPBFUT 24.04.12 &lt;br /&gt;на следующий день получим как минимум сразу две заявки &lt;br /&gt;7777 SPBEVN 24.04.12 (изменился класс на SPBEVN) &lt;br /&gt;7777 SPBFUT 25.04.12 (изменилась дата постановки) &lt;br /&gt;еще может приехать сама 7777 SPBFUT 24.04.12 &lt;br /&gt;Поэтому ключ, который напрашивается: Инструмент + номер заявки + дата заявки. Начнет плодить лишние заявки.&lt;br /&gt;Предлагаю Ключ:&lt;br /&gt;Для биржи с ежедневной нумерацией с 0:  Инструмент + номер заявки + дата заявки&lt;br /&gt;Для биржи с &amp;quot;глобальной&amp;quot; нумерацией:  Инструмент + номер заявки  + (запрет на изменение кода класса и даты постановки заявки)&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Сделки с вечерней сессии не приедут. Они фильтруются и обрабатываются внутри.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;ASorokovoy &lt;a href="https://stocksharp.ru/posts/m/19013/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;5) MyTrades&lt;br /&gt;Здесь не совсем ясно какой ключ. Однако, как показывают тесты, в случае если два робота совершат сделку друг с другом&lt;br /&gt;(одна при удовлетворении заявки на покупку, вторая удовлетворение заявки на продажу) которые отличаться только направлением порождающей сделку заявки &lt;br /&gt;в таблице MyTrades мы увидим только дну сделку (хотя по факту их две).&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;br /&gt;То что вы предлагаете - это усложнение, которое, на данный момент, точно не актуально.&lt;br /&gt;Возможно когда-нибудь к нему и придём, но сейчас нужды нет.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/19028/</id>
    <title type="text">Выглядит очень сложно. Например, не понятно, зачем разделять инструменты для разных источников.</title>
    <published>2012-05-14T13:22:32Z</published>
    <updated>2012-05-14T13:22:32Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.ru/users/201/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Выглядит очень сложно. Например, не понятно, зачем разделять инструменты для разных источников.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/19013/</id>
    <title type="text">Здравствуйте. Я использую сток шарп уже примерно пол года, причем последнее время очень активно. В п...</title>
    <published>2012-05-14T03:23:42Z</published>
    <updated>2012-05-14T03:23:42Z</updated>
    <author>
      <name>ASorokovoy</name>
      <uri>https://stocksharp.ru/users/6180/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Здравствуйте.&lt;br /&gt;Я использую сток шарп уже примерно пол года, причем последнее время очень активно. &lt;br /&gt;В процессе активного использования я обнаружил некоторые проблемы и хотел бы осветить их в данном посте.&lt;br /&gt;&lt;br /&gt;Использование S# в модели, когда информация из многих источников &amp;quot;сливаеться&amp;quot; через BasketTrader в один я заметил бесседную пропаже некоторых данных, &lt;br /&gt;что навело меня на мысли о не уникальности используемых клчючей коллекций основных бизнес сущностей.&lt;br /&gt;А именно Security, Portfolio, Trades, Positions, Orders, OrderFail, MyTrades.&lt;br /&gt;О ключах коллекций вышеперечисленных сущностей я судил исходя из функций:&lt;br /&gt;StockSharp.Algo.BaseTrader.GetSecurity(string ID)&lt;br /&gt;StockSharp.Algo.BaseTrader.GetPortfolio(string ID)&lt;br /&gt;StockSharp.Algo.BaseTrader.GetOrderByTransactionId(long ID )&lt;br /&gt;StockSharp.Algo.BaseTrader.GetPosition(StockSharp.BusinessEntities.Portfolio, StockSharp.BusinessEntities.Security)&lt;br /&gt;StockSharp.Algo.BaseTrader.GetTrade(StockSharp.BusinessEntities.Security, long TradeID, System.Func&amp;lt;long,StockSharp.BusinessEntities.Trade&amp;gt;)&lt;br /&gt;StockSharp.Algo.BaseTrader.AddMyTrade(StockSharp.BusinessEntities.Security, long, long, StockSharp.BusinessEntities.Trade)&lt;br /&gt;&lt;br /&gt;Ниже обозначу обнаруженные проблемы с предлогаемым вариантом решения.&lt;br /&gt;&lt;br /&gt;1) Security. &lt;br /&gt;Отметим, что S# предоставляет возможность самостоятельно реализовать свой генератор ID интсрументов через StockSharp.Algo.SecurityIdGenerator &lt;br /&gt;Однако я все же обозначу проблемы связанные с использованием генератора по умолчанию.&lt;br /&gt;ID = ClassCode@SecurCode &lt;br /&gt;Данный генератор не обеспечивает уникальность так как, к примеру, для фьючерсов фортс ежегодно данный ID будет повторяться, что не есть гуд.&lt;br /&gt;Более того при выгрузке из разных источников данное значение тоже может совпасть. &lt;br /&gt;я бы предложил следующую схему построения ID инструмента:&lt;br /&gt;Предлогаю ключ: SourceName + DateTime.Now.Year@ + lassCode + SecurCode&lt;br /&gt;Где SourceName Имя источника данных, из которого выгружен инструмент.&lt;br /&gt;&lt;br /&gt;P.S. при использовании StockSharp.Algo.SecurityIdGenerator для QUIKTrader к примеру &lt;br /&gt;ID = QUIK_ClassCode@SecurCode &lt;br /&gt;если достать стакан то значение &lt;br /&gt;StockSharp.BusinessEntities.MarketDepth.Security.ID будет QUIK_QUIK_ClassCode@SecurCode. кажеться это баг.&lt;br /&gt;&lt;br /&gt;2) Portfolio &lt;br /&gt;Как я понимаю ID портфеля есть его имя. Здесь тоже хотелось бы добавить имя источника данных.&lt;br /&gt;Так же есть проблема с QUIKTrader. Как я понял Portfolio.Name а соответственно и ID портфеля совпадают с значением колонки торговый счет.&lt;br /&gt;К сожалению, торговый счет не является уникальной характеристикой клиентов на ФОРТС из за существования так называемых разделов. (Группы клиентов имеющие те или иные привилегии, например пониженную комиссию)&lt;br /&gt;В разных разделах могут существовать одинаковые торговые счета по факту принадлежащие разным людям. Разделы нумеруются по порядку от 0 до 99 номер раздела можно получить из колонки Фирма как последние две цифры.&lt;br /&gt;Припаяв к торговому чету номер раздела, получим уникальный ID.&lt;br /&gt;Предлогаю ключ: SourceName + PortfolioID&lt;br /&gt;Для квика PortfolioID = торговый счет + Фирма&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;3) Trades&lt;br /&gt;Исходя из сигнатуры функции&lt;br /&gt;StockSharp.Algo.BaseTrader.GetTrade(StockSharp.BusinessEntities.Security, long TradeID, System.Func&amp;lt;long,StockSharp.BusinessEntities.Trade&amp;gt;)&lt;br /&gt;номер сделки получается как сумма ID инструмента и номера сделки.&lt;br /&gt;Однако на некоторых американских биржах нумерация заявок начинается ежедневно с 0. Так что возможно есть смысл добавить в ключ дату сделки TradeDate. &lt;br /&gt;Предлагаю ключ: Инструмент + номер сделки + дата сделки&lt;br /&gt;&lt;br /&gt;4) Order&lt;br /&gt;С ордерами чуть более сложная ситуация чем со всем остальным, так как на некоторых биржах (например на ФОРТС) заявки выставленные в вечерню сессию приедут к нам на следующий день.&lt;br /&gt;Здесь ситуация следующая к примеру заявка с номером 7777 на фортс (класс SPBFUT)  предположим 24.04.12 &lt;br /&gt;7777 SPBFUT 24.04.12 &lt;br /&gt;на следующий день получим как минимум сразу две заявки &lt;br /&gt;7777 SPBEVN 24.04.12 (изменился класс на SPBEVN) &lt;br /&gt;7777 SPBFUT 25.04.12 (изменилась дата постановки) &lt;br /&gt;еще может приехать сама 7777 SPBFUT 24.04.12 &lt;br /&gt;Поэтому ключ, который напрашивается: Инструмент + номер заявки + дата заявки. Начнет плодить лишние заявки.&lt;br /&gt;Предлагаю Ключ:&lt;br /&gt;Для биржи с ежедневной нумерацией с 0:  Инструмент + номер заявки + дата заявки&lt;br /&gt;Для биржи с &amp;quot;глобальной&amp;quot; нумерацией:  Инструмент + номер заявки  + (запрет на изменение кода класса и даты постановки заявки)&lt;br /&gt;&lt;br /&gt;5) MyTrades&lt;br /&gt;Здесь не совсем ясно какой ключ. Однако, как показывают тесты, в случае если два робота совершат сделку друг с другом&lt;br /&gt;(одна при удовлетворении заявки на покупку, вторая удовлетворение заявки на продажу) которые отличаться только направлением порождающей сделку заявки &lt;br /&gt;в таблице MyTrades мы увидим только дну сделку (хотя по факту их две).&lt;br /&gt;Предлагаю ключ: Инструмент + номер сделки + дата сделки + направление порождающей заявки</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>