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


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

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


Теги:


Спасибо:


< 1 2 3 4 5  >
Alexander

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


FiNick Перейти
Цитата:
Зачем?
Код плазы доступен на codeplex


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



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

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

FiNick

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


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

Alexander

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


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


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

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

Alexander

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


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



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

FiNick

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


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


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

Alexander

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


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


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


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

Mikhail Sukhov

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


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


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

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

Alexander

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


Результаты замеров после вчерашних изменений со 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мс.
Спасибо:

Alexander

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


Прологировал 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
Спасибо:

Alexander

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


Включил UseLocalProtocol у себя в примере по умолчанию, полное время исполнения OnOrderRegister снизилось до 0-2мс.
Спасибо:
< 1 2 3 4 5  >

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

loading
clippy