Текущие задачи по PlazaTrader
Atom Ответить
10.10.2011


1) Избавиться от накопления очереди сообщений в первые секунды работы (необходимо разбить получение реплики на несколько соединений, работающих в отдельных thread'ах, каждое со своим циклом выборки).
5) Добавить профилировщик получения данных и отправки заявок - необходимо понять насколько быстрый PlazaTrader у нас (особенно в связи с грядущими изменениями в плазе после нового года).
6) Отфильтровывать данные от уже прошедшей сессии (вечером приходят данные как от дневной, так и от вечерней сессии).
8) Если заявка GTC, то в вечерний клиринг приходит сообщение Inserted, с id_ord = новому номеру заявки и с id_ord1 = старому номеру заявки. Необходимо заменить одно на другое.

Ничего не упустил?

3ий таск я уже начал делать в фоновом режиме.
Кто готов взяться за другие задачи?



Теги:


Спасибо:




192 Ответов
1 2 3  > >>
frontman

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


По первому пункту хотел бы вопрос задать: я правильно понял что изменять надо вот эту часть:
Код
Streams.SyncDo(c =>
				{
					foreach (var stream in Streams)
					{
						try
						{
							stream.CheckConnection(_connection);
                            anySuccess = true;
						}
						catch (COMException e)
						{
                            System.Diagnostics.Trace.WriteLine("Ошибка проверки потока репликации - stream.CheckConnection(_connection) - COMException " + e.ErrorCode.ToString());
						}
					}
				});

Просто пытаюсь разобраться в механизмах стокшарпа. Вот на всякий случай переспрашиваю)
Спасибо:

FiNick

Фотография
Благотворитель
Дата: 11.10.2011
Ответить


frontman Перейти
По первому пункту хотел бы вопрос задать: я правильно понял что изменять надо вот эту часть


Скорее всего именно эту часть менять не придется.
Надо завести пару PlazaStreamManager, в методе StartExport написать что-то вроде
Код

StartStream(1,
            StreamRegistry.CommonFutureStream,
            StreamRegistry.SessionContentsFutureStream,
	    StreamRegistry.CommonOptionStream,		 	 
	    StreamRegistry.SessionContentsOptionStream,
	    StreamRegistry.PortfoliosStream,
	    StreamRegistry.PositionsStream
	    );

StartStream(2,
            StreamRegistry.DealFutureStream,
            StreamRegistry.DealOptionStream,
            StreamRegistry.OrdersLogFutureStream,
            StreamRegistry.OrdersLogOptionStream,
            DefaultFutureDepthStream,
            DefaultOptionDepthStream,
            StreamRegistry.SessionFutureStream);

Где 1 и 2 номер стрим менеджера, в который соответствующие потоки надо добавить.
И так далее...

Я смогу заняться 1 пунктом в конце недели, как освобожусь...
Спасибо:

frontman

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


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

Alexander

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


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


Для каждого потока отдельный thread точно не нужен. Надо часть потоков - в один thread, часть - в другой.
Автор топика
Спасибо:

Alexander

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


Занялся пунктом 2), добавил пункт 6) - его тоже надо сделать, сейчас некорректно работает после клиринга из-за него.


Кто возьмётся?
Автор топика
Спасибо:

frontman

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


Кстати сегодня разговаривал с одним из специалистов РТС. Он сказал что есть метод перерегистрации пары заявок. Что нибудь слышали об этом?
По моему в плазе это не реализовано еще...
Спасибо:

Alexander

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


frontman Перейти
Кстати сегодня разговаривал с одним из специалистов РТС. Он сказал что есть метод перерегистрации пары заявок. Что нибудь слышали об этом?
По моему в плазе это не реализовано еще...


Что за "перерегистрация пары заявок"?
Автор топика
Спасибо:

frontman

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


ReRegisterOrder(Order, Order) - Перерегистрировать заявку на бирже.
Это прям из мануала строчка. Я в рамках терминологии этой написал...
Так вот есть метод позволяющий передвигать пару заявок.
Ну так меня заверил человек с РТС))
Спасибо:

frontman

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


FutMoveOrder - это для передвижения одной заявки
А есть что то такое же для двух...
Я вот и спрашиваю знаете ли вы об этом что то?
Спасибо:

Alexander

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


frontman Перейти
FutMoveOrder - это для передвижения одной заявки
А есть что то такое же для двух...
Я вот и спрашиваю знаете ли вы об этом что то?


Знаем.
FutMoveOrder - для перемещения 2х заявок как раз, а не 1ой.
Автор топика
Спасибо:

frontman

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


Т.е ReRegisterOrder(Order, Order) перемещает вот эти две заявки? А куда тогда?
Если бы он выглядил вот так : ReRegisterOrder(Order, Order, Order, Order) я б еще понял ... А так что то не пойму(( Извините...
Спасибо:

Alexander

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


frontman Перейти
Т.е ReRegisterOrder(Order, Order) перемещает вот эти две заявки? А куда тогда?
Если бы он выглядил вот так : ReRegisterOrder(Order, Order, Order, Order) я б еще понял ... А так что то не пойму(( Извините...


У вас исходный код есть - смотрите сами. Там всё очевидно, я только что по коду сам посмотрел.
Почему другие могут пользоваться поиском, а вы не умеете? Надо учиться. И лучше поздно, чем никогда.
Автор топика
Спасибо:

frontman

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


Этот метод для отмены одной заявки и регистрации другой в рамках одной транзакции.
А я говорю о методе отменяющем 2 заявки и выставляющим 2 заявки в рамках одной транзакции.
То что есть явно это не делает.
Спасибо:

Alexander

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


frontman Перейти
Этот метод для отмены одной заявки и регистрации другой в рамках одной транзакции.
А я говорю о методе отменяющем 2 заявки и выставляющим 2 заявки в рамках одной транзакции.
То что есть явно это не делает.


Я ведь говорю что по коду несложно понять. :)
Добавил пункт 7. Опять никто не готов взяться, будем ждать пока у нас руки дойдут?
Автор топика
Спасибо:

frontman

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


Да если меня с работы раньше не выгонят то скоро займусь)
Спасибо:

FiNick

Фотография
Благотворитель
Дата: 16.10.2011
Ответить


Alexander Mukhanchikov Перейти
7) Добавить поддержку FutMoveOrder - одновременное перемещение 2х заявок.


Не пойму, чем ReRegisterOrder(Order, Order, Order, Order) лучше двух последовательных ReRegisterOrder(Order, Order) в плане быстродействия или удобства??
Одной транзакцией это сделать нельзя вродебы.

Спасибо:

Mikhail Sukhov

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


FiNick Перейти
Alexander Mukhanchikov Перейти
7) Добавить поддержку FutMoveOrder - одновременное перемещение 2х заявок.


Не пойму, чем ReRegisterOrder(Order, Order, Order, Order) лучше двух последовательных ReRegisterOrder(Order, Order) в плане быстродействия или удобства??
Одной транзакцией это сделать нельзя вродебы.



Тоже не понимаю, зачем такой костыль. Для такого метода нужно и код написать в стратегии. Что мне кажется совсем уж не удобно. Подозреваю, что это сделано для атомарного изменения multi leg заявки. Но могу ошибаться.
Спасибо:

esper

Фотография
Программист
Дата: 16.10.2011
Ответить


FiNick Перейти
Не пойму, чем ReRegisterOrder(Order, Order, Order, Order) лучше двух последовательных ReRegisterOrder(Order, Order) в плане быстродействия или удобства??
Одной транзакцией это сделать нельзя вродебы.


Это вроде не костыль, FutMoveOrder (OptMoveOrder) позволяет переставить две заявки за одну транзакцию
Спасибо:

Alexander

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


FiNick Перейти
Alexander Mukhanchikov Перейти
7) Добавить поддержку FutMoveOrder - одновременное перемещение 2х заявок.


Не пойму, чем ReRegisterOrder(Order, Order, Order, Order) лучше двух последовательных ReRegisterOrder(Order, Order) в плане быстродействия или удобства??
Одной транзакцией это сделать нельзя вродебы.



1) На бирже это учитывается как 1 транзакция. Когда у тебя ограничение в 30\60\150 транзакций в секунду - такая экономия крайне важна.
2) Результат приходит в одном ответе
3) Крайне удобно для выполнения обязательств маркет мейкинга
Автор топика
Спасибо:

Alexander

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


4) пункт сделал
Автор топика
Спасибо:

frontman

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


Для меня это экономия в деньгах прежде всего.
http://www.rts.ru/s186#trans - денег неплохо так берут.
Спасибо:

Alexander

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


frontman Перейти
Для меня это экономия в деньгах прежде всего.
https://www.rts.ru/s186#trans - денег неплохо так берут.


Я правильно понял, что вы взялись делать пункт с MoveOrder?
Автор топика
Спасибо:

frontman

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


Ну... Да))
Как сделаю вам написать надо, что бы вы мне логин и пароль дали для?
Спасибо:

Alexander

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


frontman Перейти
Ну... Да))
Как сделаю вам написать надо, что бы вы мне логин и пароль дали для?


Да. Или сюда к сообщению фикс приложите, мы сами закоммитим.
Автор топика
Спасибо:

frontman

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


ок.
Спасибо:
1 2 3  > >>

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

loading
clippy