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


Код
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);            
           
        }

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

Теги:


Спасибо:




11 Ответов
Sergey Masyura

Фотография
Автор статей
Дата: 04.11.2011
Ответить


vardes Перейти
Код
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);            
           
        }

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


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

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


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

Ortn

Фотография
Дата: 04.11.2011
Ответить


vardes Перейти
Код
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);            
           
        }

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



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

Alexander

Фотография
Дата: 04.11.2011
Ответить


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

frontman

Фотография
Дата: 07.11.2011
Ответить


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

Alexander

Фотография
Дата: 07.11.2011
Ответить


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


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

frontman

Фотография
Дата: 07.11.2011
Ответить


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

vardes

Фотография
Дата: 07.11.2011
Ответить


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

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 07.11.2011
Ответить


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


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

frontman

Фотография
Дата: 08.11.2011
Ответить


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

vardes

Фотография
Дата: 08.11.2011
Ответить


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

Alexander

Фотография
Дата: 08.11.2011
Ответить


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


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


Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy