Альфа-Коннектор (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/fo...l-fa-Konniektor/?page=2 ).

Tags:


Thanks: OvcharenkoVI


1 2  >
Sergey Masyura

Avatar
Date: 3/27/2012
Reply


Исправлена подписка на несколько инструментов http://stocksharp.codepl...changeset/changes/15873
Thanks: OvcharenkoVI

Sergey Masyura

Avatar
Date: 3/27/2012
Reply


http://stocksharp.codepl...changeset/changes/15884

Сделана корректная отмена ордеров, находящихся в процессе регистрации (т.е. не имеющих id).

Можно писать код вида:
Code

_trader.RegisterOrder(order);
_trader.CancelOrder(order);


Такой код используется в котировании в том числе.
Thanks:

Mikhail Sukhov

Avatar
Date: 3/27/2012
Reply


Sergey Masyura
http://stocksharp.codeplex.com/SourceControl/changeset/changes/15884

Сделана корректная отмена ордеров, находящихся в процессе регистрации (т.е. не имеющих id).

Можно писать код вида:
Code

_trader.RegisterOrder(order);
_trader.CancelOrder(order);


Такой код используется в котировании в том числе.


Такого кода в котировании нет. После регистрации ожидается появление заявки. И только потом возможна отмена.
Thanks:

Sergey Masyura

Avatar
Date: 3/27/2012
Reply


http://stocksharp.codepl...changeset/changes/15885


Добавлена поддержка ExpiryDate (даты истечения) при регистрации ордера. До этого использовалось CancelTime (время снятия заявки).
Thanks:

Sergey Masyura

Avatar
Date: 3/27/2012
Reply


Mikhail Sukhov
Sergey Masyura
http://stocksharp.codeplex.com/SourceControl/changeset/changes/15884

Сделана корректная отмена ордеров, находящихся в процессе регистрации (т.е. не имеющих id).

Можно писать код вида:
Code

_trader.RegisterOrder(order);
_trader.CancelOrder(order);


Такой код используется в котировании в том числе.


Такого кода в котировании нет. После регистрации ожидается появление заявки. И только потом возможна отмена.


Раньше был. Сейчас уже нет.
Thanks:

Sergey Masyura

Avatar
Date: 3/27/2012
Reply


http://stocksharp.codepl...changeset/changes/15886

Исправлена подача ордеров типа Market. Спасибо за баг репорт Валерию ( http://stocksharp.com/users/390/ )
Thanks: OvcharenkoVI

OvcharenkoVI

Avatar
Date: 3/28/2012
Reply


В принципе Коннектор приходит в рабочее состояние, пригодное для релиза 4.1. огромное спасибо Сергею за подписку на несколько инструментов.
Thanks: Sergey Masyura

Sergey Masyura

Avatar
Date: 3/28/2012
Reply


http://stocksharp.codepl...changeset/changes/15912

Добавлены AlfaLimitStopCondition, AlfaLimitStopTargetCondition, AlfaTrailingStopCondition. Регистрация стоп-лимит / стоп-лимит + цель заявок.

Примеры API подачи ордеров:
Code

            var order = new Order
            {
                Type = OrderTypes.Conditional,
                Portfolio = _portfolio,
                Security = _security,
                Volume = 1,
                Direction = OrderDirections.Buy,
                StopCondition = new AlfaLimitStopCondition
                {
                    StopPrice = textBoxBuyStopPrice.Text.To<double>(),
                    Slippage = Double.Parse(textBoxBuyStopSlippage.Text)
                }
            };


            _trader.RegisterOrder(order);


Code

            var order = new Order
            {
                Type = OrderTypes.Conditional,
                Portfolio = _portfolio,
                Security = _security,
                Volume = 1,
                Direction = OrderDirections.Buy,
                StopCondition = new AlfaLimitStopTargetCondition
                {
                    StopPrice = textBoxBuyStopTarget_Price.Text.To<double>(),
                    Slippage = textBoxBuyStopTarget_Slippage.Text.To<double>(),
                    TargetPrice = textBoxBuyStopTarget_Target.Text.To<double>()
                }
            };


            _trader.RegisterOrder(order);



Ближайшие таски:
- Отладка маркет котирования
- Распознавание типов ордеров при начальном чтении их из терминала при старте экспорта
Thanks: OvcharenkoVI

Sergey Masyura

Avatar
Date: 3/29/2012
Reply


http://stocksharp.codepl...changeset/changes/15920
http://stocksharp.codepl...changeset/changes/15921
http://stocksharp.codepl...changeset/changes/15922

Исправлено получение позиций по инструментам (Trader.Positions и Trader.GetPosition()).
Thanks:

OvcharenkoVI

Avatar
Date: 3/29/2012
Reply


Sergey Masyura
http://stocksharp.codeplex.com/SourceControl/changeset/changes/15920
http://stocksharp.codepl...changeset/changes/15921
http://stocksharp.codepl...changeset/changes/15922

Исправлено получение позиций по инструментам (Trader.Positions и Trader.GetPosition()).


В бешеном темпе работаешь )
Thanks:
1 2  >

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

loading
clippy