← Zurück

Не могу получить сделки по одному инструменту

public void Connect()
        {
            trader = new PlazaTrader();
            trader.Connected += () =>
            {
                trader.StartExport();
                Console.WriteLine("Connected to Plaza");
            };            
            trader.RegisterTrades(trader.GetSecurity("RIZ1"));
            trader.NewTrades += trades => Export(trades);
            trader.Connect();
        }
 private void Export( IEnumerable<Trade> trades)
        {
            foreach (Trade t in trades)
                Console.WriteLine(t.Time + " " + t.Security + " " + t.Price + " " + t.OrderDirection);            
           
        }

Т.е. мне необходимо получить все сделки по инструменту РТС. Но проблема в том, что никак метод не могу получить <mark>trader.GetSecurity("RIZ1")</mark>, т.е. метод экземпляра класса PlazaTrader. Может я пространство имен какое-то не подключил или вообще не догоняю, прошу помочь, очень нужно.

War dieses Thema hilfreich?

Thema teilen

Kommentare (11)

Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen

Sergey Masyura
Sergey Masyura

vardes: ... Т.е. мне необходимо получить все сделки по инструменту РТС. Но проблема в том, что никак метод не могу получить <mark>trader.GetSecurity("RIZ1")</mark>, т.е. метод экземпляра класса PlazaTrader. Может я пространство имен какое-то не подключил или вообще не догоняю, прошу помочь, очень нужно.

  1. Надо дождаться, пока инструмент придет в трейдер. При этом вызовется событие NewSecurities с Вашим инструментом. Начальное получение всех инструментов в плазе занимает некоторое время, а не мгновенно после старта эспорта.

  2. GetSecurity в качестве аргумента принимает id в формате Stock#. Например, RIU9@RTS. Соответственно, аргумент у Вас неправильный.

Все ответы на эти вопросы есть в документации.

Ortn
Ortn

vardes: ... Т.е. мне необходимо получить все сделки по инструменту РТС. Но проблема в том, что никак метод не могу получить <mark>trader.GetSecurity("RIZ1")</mark>, т.е. метод экземпляра класса PlazaTrader. Может я пространство имен какое-то не подключил или вообще не догоняю, прошу помочь, очень нужно.

Security вы можете получить по событию NewSecurities (Code у нужного вам инструмента будет RIZ1). А подписаться на какой-то один инструмент, это по-моему вообще не работает в plazatrader. Либо все либо ничего (поправьте если не прав)

Alexander
Alexander

Если вы посмотрите реализацию plazatrader вы увидите что данный метод не реализован

frontman
frontman

Александр вы забыли предложить человеку самому это сделать) Исправить я имею ввиду... Правда как мне кажется не очень то это и нужно...

Alexander
Alexander

frontman: Александр вы забыли предложить человеку самому это сделать) Исправить я имею ввиду... Правда как мне кажется не очень то это и нужно...

А как вы это сделаете для плазы? Нельзя потоки от биржи фильтровать по инструменту

frontman
frontman

А. Т.е даже имелось ввиду на этом уровне отсекать ненужные инструменты... Тут то понятно что ничего не сделаешь... Я подумал, что имелось ввиду что бы например при срабатывании события NewTrades приходили только сделки по конкретному инструменту... Ну это скорее можно на уровень правил вынести, т.к часто достаточно такая фильтрация нужна... Как думаете?

vardes
vardes Autor

Спасибо за ответ, на самом деле хотелось бы сразу фильтровать поток по сделкам в момент получения их от биржи) Но ничего не сделаешь. Все таки хочу обратить свое внимание к методу <mark>PlazaTrader.GetSecurity(String)</mark>, в документации же он описан, почему я его не вижу. Просьба объяснить.

Mikhail Sukhov
Mikhail Sukhov

vardes: Спасибо за ответ, на самом деле хотелось бы сразу фильтровать поток по сделкам в момент получения их от биржи) Но ничего не сделаешь. Все таки хочу обратить свое внимание к методу PlazaTrader.GetSecurity(String), в документации же он описан, почему я его не вижу. Просьба объяснить.

Это как бы основы языка C#. Нельзя число приводить к строке, вызывать несуществующую функцию, и обращаться к закрытым методам. 😎

frontman
frontman

Объясню более полит корректно: данный метод является protected. И в документации рядом с ним ключик нарисован...

vardes
vardes Autor

При экспорте сделок, при возникновении события NewTrades, я получаю по одной сделке, это всегда так или все же в какой-то момент могу получить коллекцию, состоящую из нескольких сделок или может даже из целого множества?

Alexander
Alexander

vardes: При экспорте сделок, при возникновении события NewTrades, я получаю по одной сделке, это всегда так или все же в какой-то момент могу получить коллекцию, состоящую из нескольких сделок или может даже из целого множества?

Будете получать массив, состоящий из 1 сделки. По-видимому так, но закладываться на это не стоит.