Альфа-Коннектор (dev, s# 4.1)

Альфа-Коннектор (dev, s# 4.1)
Atom
3/26/2012
Sergey Masyura


В dev ветке на CodePlex идет работа по обновлению Альфа-Коннектора и приведению его в полностью рабочее состояние.

Последние изменения:

  • Адаптирован под S# 4.1 в плане синхронизации объектов (использование ProcessSecurityAction, ProcessEvents, security.BeginUpdate() и др)
  • Работа с API Альфа-Директ из специально выделенного потока, обработка торговых данных из второго специального потока.
  • Отправление ордеров без блокировки, использование OrderConfirmed для получения id (работа с ордерами еще ведется)
  • Работает подписка на trades для разных инструментов.

TODO:

  • Механизм повторной регистрации ордера, если тот не был принят брокером по причине превышения числа транзакций в секунду.
  • Поддержка всех типов ордеров (STP, STP + TARGET PROFIT, %TR)
  • Преобразование id инструментов в формат, единый с Quik, Plaza, Smart.
  • Тестирование стратегий котирования
  • Тестирование strategy rules.
  • todo

Замечания, пожелания, баги приветсвуются. Пожалуйста, пишите в комментариях. Если это кому-то надо, дело пойдет на порядок быстрее.

PS: Особая благодарность Родиону и альтернативному алфьа-коннектору за экономию времени по некоторым вопросам ( http://stocksharp.com/forum/2385/Al-tiernativnyi-Al-fa-Konniektor/?page=2 ).


Tags:


Thanks: OvcharenkoVI


< 1 2 
Sergey Masyura

Avatar
Date: 4/5/2012
Reply


http://stocksharp.codeplex.com/SourceControl/changeset/changes/16069

Исправлено маркет котирование (раньше перерегистрация ордера работала через UpdateLimitOrder, теперь старая заявка снимается и выставляется новая).

Thanks:

Sergey Masyura

Avatar
Date: 4/5/2012
Reply


Проверил стоп-ордера на ММВБ по просьбе - работают.

Портфель должен быть выбран, соответсвующий МММБ - например, 41469-000@MICEX_SHR Бумага должна быть с ММВБ - например, ОАО Сбербанк SBER3@MICEX_SHR Объем должен быть кратным минимальному лоту - например, для сбера 10 акций - это один лот. В коннектор передается число акций. Стоп-Цена задается в условии, а не ордере


				StopCondition = new AlfaLimitStopCondition
				{
					StopPrice = textBoxBuyStopPrice.Text.To<double>(),
					Slippage = Double.Parse(textBoxBuyStopSlippage.Text)
				}

StopPrice и Slippage должны быть кратными минимальному шагу цены - например, 95.50 и 0.01

Thanks: OvcharenkoVI

Ignat

Avatar
Date: 4/5/2012
Reply


А работает ли move? Ранее для изменения ордера надо было снять-поставить, move в чистом виде не работал, соответственно и транзакций в 2 раза больше было и времени тратилось больше на изменение ордера. И решен ли как-нибудь вопрос с невозможностью выставления более 1 ордера в секунду? Пропадающие в никуда ордера до того момента, как на форуме нашел объяснение про причину, конкретно напрягали.

Thanks:

Sergey Masyura

Avatar
Date: 4/6/2012
Reply


Ignat: А работает ли move? Ранее для изменения ордера надо было снять-поставить, move в чистом виде не работал, соответственно и транзакций в 2 раза больше было и времени тратилось больше на изменение ордера. И решен ли как-нибудь вопрос с невозможностью выставления более 1 ордера в секунду? Пропадающие в никуда ордера до того момента, как на форуме нашел объяснение про причину, конкретно напрягали.

Можно у альфа-трейдера вызывать ReRegister - но внутри себя он выполнет две тразакции снятие и выставление новой. В альфа-коннекторе в комментарий записывается transaction id, при UpdateLimitOrder через API альфы нет возможности его изменить. В результате получаем новый ордер с другим id имеет тот же transaction id, что и оригинальный ордер - это ломает обработку ордеров. Кстати, UpdateLimitOrder тоже выполняет две транзакции, но за один вызов API.

Проблема с невозможностью выставления более 1 ордера в секунду решена внутри коннектора - если ордер не был принят, он повторно отправляется на регистрацию. Со стороны пользователя это не видно, механизм работает изнутри.

Thanks:

Sergey Masyura

Avatar
Date: 4/12/2012
Reply


http://stocksharp.codeplex.com/SourceControl/changeset/changes/16294

Исправлена регистрация/отмена стоп ордеров.

Thanks: OvcharenkoVI

Sergey Masyura

Avatar
Date: 4/18/2012
Reply


http://stocksharp.codeplex.com/SourceControl/changeset/changes/16417

Важный фикс по регистрации/обработке ордеров (ФОРТС/ММВБ).

Thanks:

AndreyStock

Avatar
Date: 8/16/2012
Reply


Добрый день! Только недавно начал работать со StockSharp (использую StockSharp 4.1.1). Работаю через терминал AlfaDirect, соответственно используется альфа-коннектор, насколько я понимаю. Периодически в процессе работы возникает какая-то ошибка, которая приводит к тому, что программа тихо, без каких либо сообщений или исключений, закрывается. Оборачивал все в try-catch, подписывался на все - все то же самое. Запускаю из-под VisualStudio, тоже никаких UnhandledException. Ошибка возникает, даже если не запускать никакой стратегии, а просто подписаться на получение некоторых данных из AlfaDirect - инструментов и стакана. Первая мысль - виноват COM объект. Возможно, где-то в его unmanaged коде возникает ошибка и закрывается весь процесс без exception'а. Насколько такая версия может быть правдой? Насколько стабилен этот COM-объект? Или нужно смотреть в сторону коннектора? Где и какие тогда исходники коннектора взять, чтобы погонять программу с исходниками из-под VisualStudio? Может я вообще не в ту сторону смотрю и есть какой-то другой путь? Буду рад любым советам и комментариям!

Thanks:

Sergey Masyura

Avatar
Date: 8/16/2012
Reply


AndreyStock: Добрый день! Только недавно начал работать со StockSharp (использую StockSharp 4.1.1). Работаю через терминал AlfaDirect, соответственно используется альфа-коннектор, насколько я понимаю. Периодически в процессе работы возникает какая-то ошибка, которая приводит к тому, что программа тихо, без каких либо сообщений или исключений, закрывается. Оборачивал все в try-catch, подписывался на все - все то же самое. Запускаю из-под VisualStudio, тоже никаких UnhandledException. Ошибка возникает, даже если не запускать никакой стратегии, а просто подписаться на получение некоторых данных из AlfaDirect - инструментов и стакана. Первая мысль - виноват COM объект. Возможно, где-то в его unmanaged коде возникает ошибка и закрывается весь процесс без exception'а. Насколько такая версия может быть правдой? Насколько стабилен этот COM-объект? Или нужно смотреть в сторону коннектора? Где и какие тогда исходники коннектора взять, чтобы погонять программу с исходниками из-под VisualStudio? Может я вообще не в ту сторону смотрю и есть какой-то другой путь? Буду рад любым советам и комментариям!

Исходный код коннектора доступен на http://stocksharp.codeplex.com/SourceControl/list/changesets . По поводу исключения - http://msdn.microsoft.com/en-us/library/system.windows.application.dispatcherunhandledexception.aspx

Thanks:

Alexander

Avatar
Date: 8/16/2012
Reply


Андрей, у вас проблема в лицензии, уверен на 90%. Берите свежую версию, 4.1.4 и получайте лицензию.

Thanks:
< 1 2 

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

loading
clippy