Alexander Mukhanchikov:
За 2.5 года работы с таким не встречались.
Покажите, пожалуйста, скриншоты 2х квиков, у которых будет совпадать торговый счёт, но различаться фирма.
И я пока не могу придумать ситуации, когда эти 2 квика будут запущены на 1м компьютере и использоваться Stock#.
Отправил скриншот "Portfolios.bmp" на info@stocksharp.com
Alexander Mukhanchikov:
На каких?
Эта проблема может возникнуть только если робот со S# запущен 24\5.
Например на LSE
Предложенный ключ: Инструмент + номер сделки + дата сделки
При условии уникальности ключа инструмента обеспечит 100% унакальность ключа сделки и как следствие исключит возможность неожиданных потерь данных.
Alexander Mukhanchikov:
ASorokovoy:
7777 SPBFUT 24.04.12
на следующий день получим как минимум сразу две заявки
7777 SPBEVN 24.04.12 (изменился класс на SPBEVN)
7777 SPBFUT 25.04.12 (изменилась дата постановки)
Сделки с вечерней сессии не приедут. Они фильтруются и обрабатываются внутри.
призойдет update сделки 7777 и будет казаться что ее выставили 25.04.12 хотя по факту она была выставлена 24.04.12
сдесь важно добавить в ключ ID инструмента так как если грузить с разных бирж (используя разные коннекторы обьедененные в BasketTrader) вероятность совпадения номеров заявок достаточно велика.
Alexander Mukhanchikov:
Сделки, где оба контрагента одно и тоже лицо запрещены. Биржа их не пропустит. Будет ошибка про один и тот же ИНН.
у меня может быть два разных счета зарегестрованных на два разных юридических лица (по факту одно и тоже)
Такая ситуация реальна. Отправил скриншот "MyDeals.bmp" на info@stocksharp.com (две сделки с одинаковым номером. Порядковые номера в таблице 17, 18)
Alexander Mukhanchikov:
То что вы предлагаете - это усложнение, которое, на данный момент, точно не актуально.
Возможно когда-нибудь к нему и придём, но сейчас нужды нет.
В своей программе я наблюдаю целый каскад ошибок. Утилита Verifier генерирует список ошибок на несколько сотен строк. Вышеописанные проблемы есть их источник (возможно не только они). Возможно эти проблемы возникают не только у меня, просто они не отмечены на форуме. Однако с ростом числа коннекторов и людей работающих с ними в связке ошибки начнут возникать не только у меня.
Mikhail Sukhov:
Выглядит очень сложно.
Требуемые доработки весьмы просты.
Изменить принцеп формирования Portfolio.name в QUIKTrader
Изменить сигнатуры функций
StockSharp.Algo.BaseTrader.GetOrderByTransactionId(long ID )
StockSharp.Algo.BaseTrader.GetTrade(StockSharp.BusinessEntities.Security, long TradeID, System.Func<long,StockSharp.BusinessEntities.Trade>)
StockSharp.Algo.BaseTrader.AddMyTrade(StockSharp.BusinessEntities.Security, long, long, StockSharp.BusinessEntities.Trade)
и несколько поменять операции выборки в нутри них.
Правда после этого предеться немного изменить все существующие коннекторы, однако возможно это лучше сделать сейчас.
Для 2) как вариант можно еще заменить ВСЕ ключи коллекций на string и подобно StockSharp.Algo.SecurityIdGenerator
Сделать
string TradeIDGenerator.GenerateID(Security iSecur, long iNum, string date);
string OrderIdGenerator.GenerateID(Security iSecur, long iNum, string date);
string MyTradeIDGenerator.GenerateID(Trade iTrade, Order iOrder);
Предоствив пользователю возможность сочинять какие угодно ключи.
Все вышеописанные доработки я готов выполнить лично.
P.S.
Да, для ориентированного на людей торгущих на ММВБ и РТС с одного двух счетов существующей версии S# вполне достаточно. Однако, благодоря крайне высокому качеству имеющейся кодовой базы (как с точки зрения архитектуры, так и с точки зрения оформелния кода), потрясающе ясным интерфейсам, со временем S# может вырости в нечно большее, намного большее. И возможно есть смысл заложить основание для будущего роста уже сейчас.