← Zurück

Что конкретно делает RegisterTrades()?

Прежде всего, хочу поздравить всех разработчиков и пользователей S# с наступающим Новым Годом и пожелать всех благ!

Объясните, пожалуйста, зачем нужен метод QuikTrader.RegisterTrades(Security sec)?

Объясню своё непонимание на примере. Рассмотрим несколько строчек кода:


...
foreach(Security sec in _Securities)
     trader.RegisterTrades(sec);

trader.StartExport(trader.TradesTable);
trader.NewTrades += SomeFunction;
...

Теперь при появлении новых сделок вызывается собственная функция SomeFunction, в которой обрабатываются сделки с инструментами в коллекции _Securities, как и ожидается.

Однако, если закомментировать первые две строчки и оставитьтолько


...
trader.StartExport(trader.TradesTable);
trader.NewTrades += SomeFunction;
...

Вызывается та же самая функция SomeFunction, с теми же инструментами.

Скажите, пожалуйста, какую функциональную нагрузку несет метод RegisterTrades()? Спасибо.

War dieses Thema hilfreich?

Thema teilen

Kommentare (5)

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

Alexander
Alexander

QuikTerminal.EnableFiltering должен быть включён

Смысл каждого вызова RegisterTrades в том, что он добавляет в фильтр таблицы нужный инструмент.

В вашем случае получается что в фильтр уже всё добавлено и уже всё экспортируется, поэтому разницы нет.

_maratrus_
_maratrus_ Autor

Alexander Mukhanchikov: QuikTerminal.EnableFiltering должен быть включён

Смысл каждого вызова RegisterTrades в том, что он добавляет в фильтр таблицы нужный инструмент.

В вашем случае получается что в фильтр уже всё добавлено и уже всё экспортируется, поэтому разницы нет.

Сделал сначала так:


...
trader.Terminal.EnableFiltering = true; 
trader.StartExport(trader.TradesTable);
trader.NewTrades += SomeFunction;
...

Всё работает, как обычно.

Затем сделал так


...
trader.Terminal.EnableFiltering = true; 

foreach(Security sec in _Securities)
     trader.RegisterTrades(sec);

trader.NewTrades += SomeFunction;
...

Сделки приходить перестали?

Не подскажете, как нужно делать?

Alexander
Alexander

Что такое _Securities? Что у вас стоит до вызова в фильтрах таблицы Все сделки и после этого вызова? Какие инструменты передаются в вызов RegisterTrades?

Мой совет - квик слишком медленный и лучше фильтрацию настраивать не программно, а непосредственно из квика руками. Так будет работать на порядок быстрее и сделать это надо будет лишь раз.

_maratrus_
_maratrus_ Autor

Alexander Mukhanchikov: Мой совет - квик слишком медленный и лучше фильтрацию настраивать не программно, а непосредственно из квика руками. Так будет работать на порядок быстрее и сделать это надо будет лишь раз.

OK, давайте тогда пока на этом остановимся. Так и сделаю. То есть RegisterTrades() можно теперь вообще не вызывать?

Для полноты картины, вот ответы на оставшиеся вопросы:

Alexander Mukhanchikov: Что такое _Securities? Это коллекция инструментов, полученных при экспорте таблицы "Инструменты"

Alexander Mukhanchikov: Какие инструменты передаются в вызов RegisterTrades? Все инструменты, которые получены при экспорте таблицы "Инструменты"

Alexander Mukhanchikov: Что у вас стоит до вызова в фильтрах таблицы Все сделки и после этого вызова? Если имеются в виду фильтры Quik, то фильтры настроены так, чтобы выводились сделки инструментов из таблицы "Инструменты" и еще парочки других инструментов.

Alexander
Alexander

maratrus:

Alexander Mukhanchikov: Мой совет - квик слишком медленный и лучше фильтрацию настраивать не программно, а непосредственно из квика руками. Так будет работать на порядок быстрее и сделать это надо будет лишь раз.

OK, давайте тогда пока на этом остановимся. Так и сделаю. То есть RegisterTrades() можно теперь вообще не вызывать?

Да. Все фильтры настраиваются через Quik.