Тормоза на Плазе

Тормоза на Плазе
Atom
9/14/2011
FiNick


Поднимаю старую тему, чтобы лишнего не плодить. Библиотека 3.2.11 Два вопроса:

  1. Как использовать StrategyLatencyManager? В доках ничего толком не сказано, вроде как все само должно. У стратегии LatencyManager создается автоматически. Но вот массив Orders всегда пуст и самому добавить в него ордеры нельзя. Свойство Latency мэнеджера всегда 0, как и у любой заявки.

  2. И без LatencyManager'а видно, что заявки выставляются 5-10 секунд (это через плазу). Как так?


Tags:


Thanks:


< 1 2 3 4 5  >
Alexander

Avatar
Date: 9/19/2011
Reply


Зачем? Код плазы доступен на codeplex

Если я буду вносить изменения, куда их мёржить? Плюс, может я что-то путаю, но в тех исходниках я не нашел код неймспейса StockSharp.Algo.Strategies, вылезают метаданные и все.

Порядок действий следующий:

  1. регистрируетесь на codeplex
  2. вступаете в stocksharp.codeplex.com
  3. пишите свой ник
  4. мы вас добавляем в команду
  5. с помощью программ что там описаны выкачиваете исходники
  6. делаете фикс
  7. заливаете на codeplex патч как там описано

StockSharp.Algo.Strategies находится в закрытом TFS и этот namespace не нужен для решения описанной выше задачи.

Thanks:

FiNick

Avatar
Date: 9/19/2011
Reply


Кстати, странная фишка: у меня если плаза не подключена проц на 100% забит, подключаю нагрузка до 0-2% падает, отключаю опять 100%. Подключение 11-12 секунд всегда, отключается быстро 2-3 сек. Раундтрип заявки, как выяснилось, зависит от свойства плазатрейдера StreamTimeOut. Я не знаю точно, это из-за того, что заявка долго идет на биржу, или долго идет подтверждение с биржи.

Thanks:

Alexander

Avatar
Date: 9/19/2011
Reply


FiNick: Кстати, странная фишка: у меня если плаза не подключена проц на 100% забит, подключаю нагрузка до 0-2% падает, отключаю опять 100%. Подключение 11-12 секунд всегда, отключается быстро 2-3 сек. Раундтрип заявки, как выяснилось, зависит от свойства плазатрейдера StreamTimeOut. Я не знаю точно, это из-за того, что заявка долго идет на биржу, или долго идет подтверждение с биржи.

Любая возникающая ошибка также приходит через 10 секунд - это недостаток дизайна с StreamTimeOut, тоже надо править.

По поводу 100% при отключении - есть на это таск. Только используйте уже последний revision, там ж рефакторинг сильно был произведён, может ушло уже.

Thanks:

Alexander

Avatar
Date: 9/20/2011
Reply


FiNick: Кстати, странная фишка: у меня если плаза не подключена проц на 100% забит, подключаю нагрузка до 0-2% падает, отключаю опять 100%. Подключение 11-12 секунд всегда, отключается быстро 2-3 сек. Раундтрип заявки, как выяснилось, зависит от свойства плазатрейдера StreamTimeOut. Я не знаю точно, это из-за того, что заявка долго идет на биржу, или долго идет подтверждение с биржи.

Просьба сопровождать коммиты(чек ины) комментариями и проверять перед выкладыванием :) после последних 2х чек инов плаза работать перестала.

Thanks:

FiNick

Avatar
Date: 9/20/2011
Reply


Alexander: Просьба сопровождать коммиты(чек ины) комментариями и проверять перед выкладыванием :) после последних 2х чек инов плаза работать перестала.

С комментами ступил, буду писать. На счет не работает: не билдится или рантайм эксепшны? У меня билдится, но на прогоне данные с потока подтягивать не пробовал. Кстати, какая у вас политика при создании этих PlazaXXXColumns? Надо туда вбивать все колонки какие есть в документации или только самые необходимые? Я так смотрю колонки многих таблиц не до конца описаны или не описаны вовсе.

Thanks:

Alexander

Avatar
Date: 9/20/2011
Reply


FiNick:

Alexander: Просьба сопровождать коммиты(чек ины) комментариями и проверять перед выкладыванием :) после последних 2х чек инов плаза работать перестала.

С комментами ступил, буду писать. На счет не работает: не билдится или рантайм эксепшны? У меня билдится, но на прогоне данные с потока подтягивать не пробовал. Кстати, какая у вас политика при создании этих PlazaXXXColumns? Надо туда вбивать все колонки какие есть в документации или только самые необходимые? Я так смотрю колонки многих таблиц не до конца описаны или не описаны вовсе.

Исправил. Не грузились данные.

Thanks:

Mikhail Sukhov

Avatar
Date: 9/20/2011
Reply


FiNick: Кстати, какая у вас политика при создании этих PlazaXXXColumns? Надо туда вбивать все колонки какие есть в документации или только самые необходимые? Я так смотрю колонки многих таблиц не до конца описаны или не описаны вовсе.

Некоторые колонки наследуются от базовый классов (когда для опцов и фьючерсов одинаковые колонки). Возможно, часть колонок в базовом классе.

И да, нужно, конечно же, полную проекцию Плаза таблиц.

Thanks:

Alexander

Avatar
Date: 9/27/2011
Reply


Результаты замеров после вчерашних изменений со 100мс. Всего послал 10 заявок. Для первой заявки всё происходит максимально долго:

3мс от RegisterOrder до обработчика PlazaTrader.OnRegisterOrder 110мс на _transactionManager.Factory.CreateRegister(order); 5мс на transaction.Set 12мс на SendTransaction

Далее всё быстрее, но.

0мс от отправки заявки до PlazaTrader.OnRegisterOrder 2мс на _transactionManager.Factory.CreateRegister(order); 0мс на transaction.Set 122мс на SendTransaction

0мс от отправки заявки до PlazaTrader.OnRegisterOrder 2мс на _transactionManager.Factory.CreateRegister(order); 0мс на transaction.Set 4мс на SendTransaction

0мс от отправки заявки до PlazaTrader.OnRegisterOrder 2мс на _transactionManager.Factory.CreateRegister(order); 1мс на transaction.Set 0мс на SendTransaction

0мс от отправки заявки до PlazaTrader.OnRegisterOrder 2мс на _transactionManager.Factory.CreateRegister(order); 0мс на transaction.Set 100мс на SendTransaction

0мс от отправки заявки до PlazaTrader.OnRegisterOrder 2мс на _transactionManager.Factory.CreateRegister(order); 0мс на transaction.Set 100мс на SendTransaction

0мс от отправки заявки до PlazaTrader.OnRegisterOrder 2мс на _transactionManager.Factory.CreateRegister(order); 1мс на transaction.Set 203мс на SendTransaction

0мс от отправки заявки до PlazaTrader.OnRegisterOrder 2мс на _transactionManager.Factory.CreateRegister(order); 0мс на transaction.Set 34мс на SendTransaction

0мс от отправки заявки до PlazaTrader.OnRegisterOrder 2мс на _transactionManager.Factory.CreateRegister(order); 0мс на transaction.Set 101мс на SendTransaction

0мс от отправки заявки до PlazaTrader.OnRegisterOrder 1мс на _transactionManager.Factory.CreateRegister(order); 1мс на transaction.Set 100мс на SendTransaction

SendTransaction работает медленно, как раз видна дискретность в 100мс.

Thanks:

Alexander

Avatar
Date: 9/27/2011
Reply


Прологировал SendTransaction Первый запуск:

6мс AddTransaction 45мс SendAsync

Последующие: (где не указан AddTransaction - там 0мс):

42мс SendAsync

204мс SendAsync

24мс SendAsync

1мс AddTransaction 4мс SendAsync

1мс AddTransaction 4мс SendAsync

17мс SendAsync

1мс AddTransaction 4мс SendAsync

33мс SendAsync

100мс SendAsync

Thanks:

Alexander

Avatar
Date: 9/27/2011
Reply


Включил UseLocalProtocol у себя в примере по умолчанию, полное время исполнения OnOrderRegister снизилось до 0-2мс.

Thanks:
< 1 2 3 4 5  >

Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy