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

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


Поднимаю старую тему, чтобы лишнего не плодить. Библиотека 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


FiNick Go to
Quote:
Зачем?
Код плазы доступен на 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 Go to
Кстати, странная фишка: у меня если плаза не подключена проц на 100% забит, подключаю нагрузка до 0-2% падает, отключаю опять 100%.
Подключение 11-12 секунд всегда, отключается быстро 2-3 сек. Раундтрип заявки, как выяснилось, зависит от свойства плазатрейдера StreamTimeOut. Я не знаю точно, это из-за того, что заявка долго идет на биржу, или долго идет подтверждение с биржи.


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

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

Alexander

Avatar
Date: 9/20/2011
Reply


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



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

FiNick

Avatar
Date: 9/20/2011
Reply


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


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

Alexander

Avatar
Date: 9/20/2011
Reply


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


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


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

Mikhail Sukhov

Avatar
Date: 9/20/2011
Reply


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


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

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

Alexander

Avatar
Date: 9/27/2011
Reply


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

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


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

Quote:
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
Первый запуск:
Quote:
6мс AddTransaction
45мс SendAsync


Последующие: (где не указан AddTransaction - там 0мс):
Quote:
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