Альтернативный Альфа-Коннектор
Atom Ответить
09.02.2012


Всем добрый день,

Появилась альтернативная версия коннектора под альфу. За это отдельное спасибо Родиону ThumpUp ( https://stocksharp.ru/users/16581/ ).
Версия пока что не окончательная, но исправлены многие недостатки оригинального Альфа-коннектора от Stock#.

Скачать код можно с codeplex, для деталей смотрите коммит http://stocksharp.codepl.../changeset/changes/14273

Если у Вас желание помочь проекту, отписывайте баги и фидбэк по этому коннектору в данном топике!

Успехов,
Сергей

Теги:


Спасибо: OvcharenkoVI




69 Ответов
1 2 3  >
OvcharenkoVI

Фотография
Автор статей
Дата: 09.02.2012
Ответить


Круто! Очень хотелось бы посмотреть документацию по этому коннектору)
Спасибо:

Mikhail Sukhov

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


Sergey Masyura Перейти

Появилась альтернативная версия коннектора под альфу. За это отдельное спасибо Родиону ThumpUp ( https://stocksharp.ru/users/16581/ ).


А где сам автор? Давайте его расцелуем, что ли.
Спасибо:

ra81

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


Целовать не нужно :). Лучше крепкое мужское рукопожатие :)


Документации особой не требуется. Коннектор ведет себя так как должен себя вести по идеологии BaseTrader.

Единственный ньюанс это наличие методов UnregisterPortfolios(), UnregisterSecurities(), UnRegisterOrders(), UnRegisterMyTrades(), UnregisterOrders(), UnRegisterPositions() - которые позволяют убрать подписку на получение этих данных. Есть и обратные методы RegisterXXX(). Например нужны данные только по позициям, тогда дерегистрируем все таблицы после старта экспорта и включаем RegisterPositions(). Будем получать только изменения по позициям и новые позиции, но позиция Деньги сюда не входит.

На самом деле на низовом уровне, где данные получаются от Альфы, коннектор загребает все новые данные, потому как фильтровать их невозможно. Составные фильтры по SQL запросу толком не работают. Отсюда данные фильтруются на уровне Wrapper и в трейдер уже доходит только то, на что была подписка. Это вероятно нужно учитывать.

StartExport() - автоматом запускает экспорт основных данных. Таким образом если например бумаги не пришли в событии TraderConnected, они придут позже. (Часто бывает что в текущем коннекторе при старте бумаги не приходят или портфели.)

Более подробная дока будет позже. ПОтому как самому нужна.

На самом деле я взял за основу текущий коннектор и на данном этапе переработал событийную модель в части подписки/отписки на получение данных. Работа с ордерами и свечками просто копипастнута. Постепенно и до нее дойдут руки, если не удовлетворит - переработаю и ее.

Баги есть. Но исправляю. Можно сказать что это преальфа релиз :).

Спасибо: Sergey Masyura

Mikhail Sukhov

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


ra81 Перейти

Баги есть. Но исправляю. Можно сказать что это преальфа релиз :).


Главное - не забросить начинание. Как там Альфа? Собирается новое решение выпускать? Если есть вопросы по коннекторам, не стесняемся задавать их.
Спасибо:

ra81

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


Mikhail Sukhov Перейти
ra81 Перейти

Баги есть. Но исправляю. Можно сказать что это преальфа релиз :).


Главное - не забросить начинание. Как там Альфа? Собирается новое решение выпускать? Если есть вопросы по коннекторам, не стесняемся задавать их.


Ну вообще жду открытия рынков. Проверю изменения выложу новый коммит. Возможно на нем закончится работа с таблицами. Дальше ордера и история.

Новый коммит. Исправлены баги в подписке/отписке на таблицы. Провел тестирование всего кроме исторических данных.
Если обнаружится какой баг, сообщайте.

http://stocksharp.codepl.../changeset/changes/14410
Спасибо:

ra81

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


Добавил предварительное чтение всех таблиц при старте экспорта. Это избавит от проблемы не появления инструментов и данных, по которым не было изменений. Чтение Заполняет трейдер данными что есть в таблицах терминала.

http://stocksharp.codepl.../changeset/changes/14416
Спасибо:

ra81

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


Новый коммит. http://stocksharp.codepl...changeset/changes/14570#

В нем переработана работа с ордерами и особенно со стопами. Основные видные изменения - добавился параметр StopPrice в AlfaStopConditions. Стоп заявку теперь нужно создавать следующим образом:

Код
            var order = new Order()
            {
                Direction = OrderDirections.Sell,
                Type = OrderTypes.Conditional,
                Security = sec,
                Portfolio = portfolio,
                Volume = 10,
                StopCondition = new AlfaStopCondition()
                                    {
                                        Slippage = 5,
                                        StopPrice = (double)(sec.BestAsk.Price + 1),
                                    },
            };

            _trader.RegisterOrder(order);

Таким же образом стоп ордера всасываются в S#. Выставляется StopPrice и Slippage при получении новых ордеров от терминала.

Стоп заявки с TakeProfit не тестировались. И не факт что будут отрабатывать корректно. Ставиться должны нормально, и апдейтиться, а вот парситься как будут, бог знает.
Спасибо: fau Sergey Masyura

ra81

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


Новый коммит http://stocksharp.codepl.../changeset/changes/14616

Добавлен следящий стоп. Создать его можно следующим образом:


Код
            var order = new Order()
            {
                Direction = OrderDirections.Buy,
                Type = OrderTypes.Conditional,
                Security = sec,
                Portfolio = portfolio,
                Volume = 10,
                StopCondition = new AlfaStopCondition()
                {
                    Slippage = 1.5,
                    StopPrice = (double)(sec.BestAsk.Price + 1 ),
                    TrailingLevel = 1,
                },
            };

            _trader.RegisterOrder(order);

Сразу после создания ордера на покупу он будет иметь следующие параметры (после всасывания S# от терминала):

  • Price = StopPrice + Slippage
  • Стоп цена будет равна StopPrice
  • Заявка будет неактивна и активируется только когда цена вырастет до StopPrice


В процессе смены котировок инструмента, состояние заявки будет постоянно обновляться в части Price и StopPrice, разница между ними должна быть равна Slippage.

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

ra81

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


Новый коммит http://stocksharp.codepl.../changeset/changes/14671

Видные изменения:

Добавилось свойство AlfaTrader.IsConnected
MinLotSize в инструментах отражает минимальный размер лота.
Спасибо:

exarh

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


Решил попробовать ваш коннектор, т.к. другой для Альфы с двумя запущенными стратегиями вообще отказывается работать. Сразу на багу наткнулся
В AlfaTrader.cs на линии 663 вальнулось:
order.Volume = (Int32)raw["qty"];
order.Balance = (Int32)raw["rest"];
должно быть наверно
order.Volume = Int32.Parse((string)raw["qty"]);
order.Balance = Int32.Parse((string)raw["rest"]);
Спасибо:

ra81

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


Новый коммит http://stocksharp.codepl.../changeset/changes/15488

Долго не обновлял, по причине глобальных переделок. Часть из них сделана по аналогии Сергея. Что в итоге получилось?

1) Полностью асихронная модель приема данных от терминала. Все приходящие данные заворачиваются в очередь. Обработкой очереди занимается отдельный поток. Таким образом блокировки терминала минимальны. Поток минимально обрабатывает очредную порцию данных и передает ее выше, в обертку для таблиц. Каждая таблица имеет свою очередь и обрабатывает ее своим потоком. Парсит данные и передает их тем, кто на них подписался. Получаем многопоточный прием данных. По каждой таблице приходить будет в своем потоке.

2) Асинхронная подача заявок. Заявки при регистрации ставятся в очередь. Сюда же входят ордера на отмену заявок. Все ордера ставятся в очередь. Очередь обрабатывается своим потоком. Он извлекает ордера по очереди и начинает регистрацию. Регистрация неблокирующая, то есть управление возвращается сразу после подачи заявки. Если произошла ошибка при регистрации/отмене ордера, то формируется сообщение об ошибке и кладется в очередь ошибок, которая в свою очередь обрабатывается своим потоком вызывающим события в зависимости от типа ошибки. Если ордер прошел нормально, то он помещатеся в список ордеров ожидающих подтверждения.

Дальше от терминала приходят по событию OrderConfirmed подтверждения. Ищем ордера в списке ожидающих подтверждение и если нашли, то сразу ставим номер ордера при успешной регистрации, или помещаем сообщение об ошибке в очередь ошибок при неуспешной. Такая же ерунда для ордеров на отмену.

Подобный способ регистрации ордеров обеспечивает нормальную работу терминала при подаче ордеров. Он не завешивает его. Если подавать ордера с таймаутом, терминал перестает принимать данные пока ордер не зарегистрирован окончательно. Это может длиться больше 30 секунд в разных ситуациях. Тестовые прогоны показали достаточную надежность такой системы. На каждый поданный ордер приходит либо успех либо ошибка (отлавливается по событиям типо OrderRegisterFailed). Прогнал серии по 100 ордеров, общей массой в 1000 и больше. Расхождений не было найдено. Были расхождения при отключении терминала в момент подачи заявок.

Если ордер был успешно зарегистрирован, будет событие NewOrder, если была ошибка - событие OrderRegisterFailed. И аналогично для других операций.

Обеспечить обновление ордеров подобным способом невозможно.Поэтому методы Update работают через отмену/подачу нового ордера.

Если подать сразу 2 ордера, второй не пройдет и будет событие об ошибке. Это надо учитывать.Подача ордеров неблокирующая. У альфы есть предел по скорости подачи/отмены ордеров.



В остальном функционал остался прежний.
Спасибо:

ra81

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


exarh Перейти
Решил попробовать ваш коннектор, т.к. другой для Альфы с двумя запущенными стратегиями вообще отказывается работать. Сразу на багу наткнулся
В AlfaTrader.cs на линии 663 вальнулось:
order.Volume = (Int32)raw["qty"];
order.Balance = (Int32)raw["rest"];
должно быть наверно
order.Volume = Int32.Parse((string)raw["qty"]);
order.Balance = Int32.Parse((string)raw["rest"]);


Это версия видать совсем дремучая. Уже давно переделано подругому. Только что влил новую. Никаких багов нет.
Спасибо: exarh

exarh

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


ra81 Перейти
Новый коммит https://stocksharp.codepl.../changeset/changes/15488
Если подать сразу 2 ордера, второй не пройдет и будет событие об ошибке. Это надо учитывать.Подача ордеров неблокирующая. У альфы есть предел по скорости подачи/отмены ордеров.


Целый день воюю с этими двумя последовательными ордерами. Тут вопрос в чем. Запускаю 2-3 стратегии на разных инструментах. Я не могу сказать в какой момент они отменят заявку или выставят ордер. А тут встречаются накладки - я специально для синхронизации завел в стратеги статичное поле LastOrderRegistrationTime и при регистрации жду для примера одну секунду от этого значения, а вот ордер отмену не могу предсказать (использую правила) и тут пару раз и проскачила ошибка:

13:36:02.234 | Error | Стратегия для XXXX | Заявка 3421621415 не была принята по причине System.Exception: Поручение не может быть принято, т.к. превышена предельная интенсивность..

Я вот и думаю, т.к. это явный косяк Альфы, то и обработку его зашить в коннектор. Иначе две и более стратегии придется вручную синхронизовать. Ведь один такой сбой и вся стратегия рушится, т.к. почему-то появляется дубликат заявки (все-таки в конце концов видать доходит до сервера).
К примеру в AlfaTrader можно свойство добавить что-то вроде RegisterOrderInterval (установить по умолчанию в секунду) и когда из очереди выбирать на установку или отмену заявки для последующей заявки ожидать этот интервал и плюс (возможно) дожидать ответа от Альфы (успешно или неуспешно)
Спасибо:

ra81

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


exarh Перейти
ra81 Перейти
Новый коммит https://stocksharp.codepl.../changeset/changes/15488
Если подать сразу 2 ордера, второй не пройдет и будет событие об ошибке. Это надо учитывать.Подача ордеров неблокирующая. У альфы есть предел по скорости подачи/отмены ордеров.


А здесь можно некоторые подробности, я про тонкости Альфы не в курсе. Т.е. не могли бы сказать примерный интервал времени, через который можно подавать вторую заявку? Т.е. у меня, к примеру 2 стратегии работают и через определенное время отменяют и выставляют ордера на покупку или отмену заявки (допустим в начале очередной минуты). Допустим на первой секунде новой минуты одна стратегия выставила ордер на отмену заявку, а вторая на покупку - то выходит есть вероятность, что второй ордер будет failed? и мне будет необходимо немного рассинхронизовать стратегии.

Если две заявки почти одновременно, что скорее всего будет иметь место при срабатывании по окончанию свечи, то та что будет второй 100% будет failed.
Ну вообще каждая заявка будет иметь ответ. Либо новую сделку либо ошибку. Отсюда выставлять заявки имеет смысл как угодно, Только реализовать гарантированное исполнение. Написать хелпер методы, или министратегию, которая будет гарантированно проводить сделку, с учетом возможных ошибок регистрации и прочего. Время выставления заявки у альфы может варьироваться. 1 секунда у меня где-то.
Спасибо:

Sergey Masyura

Фотография
Автор статей
Дата: 12.03.2012
Ответить


exarh Перейти
ra81 Перейти
Новый коммит https://stocksharp.codepl.../changeset/changes/15488
Если подать сразу 2 ордера, второй не пройдет и будет событие об ошибке. Это надо учитывать.Подача ордеров неблокирующая. У альфы есть предел по скорости подачи/отмены ордеров.


Целый день воюю с этими двумя последовательными ордерами. Тут вопрос в чем. Запускаю 2-3 стратегии на разных инструментах. Я не могу сказать в какой момент они отменят заявку или выставят ордер. А тут встречаются накладки - я специально для синхронизации завел в стратеги статичное поле LastOrderRegistrationTime и при регистрации жду для примера одну секунду от этого значения, а вот ордер отмену не могу предсказать (использую правила) и тут пару раз и проскачила ошибка:

13:36:02.234 | Error | Стратегия для XXXX | Заявка 3421621415 не была принята по причине System.Exception: Поручение не может быть принято, т.к. превышена предельная интенсивность..

Я вот и думаю, т.к. это явный косяк Альфы, то и обработку его зашить в коннектор. Иначе две и более стратегии придется вручную синхронизовать. Ведь один такой сбой и вся стратегия рушится, т.к. почему-то появляется дубликат заявки (все-таки в конце концов видать доходит до сервера).
К примеру в AlfaTrader можно свойство добавить что-то вроде RegisterOrderInterval (установить по умолчанию в секунду) и когда из очереди выбирать на установку или отмену заявки для последующей заявки ожидать этот интервал и плюс (возможно) дожидать ответа от Альфы (успешно или неуспешно)


В последней версии альфа-коннектора с транка ордера ложатся в очередь и вызываются последовательного из одного потока. Это должно решить параллельную работу стратегий.
Автор топика
Спасибо: exarh

ra81

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


exarh Перейти
ra81 Перейти
Новый коммит https://stocksharp.codepl.../changeset/changes/15488
Если подать сразу 2 ордера, второй не пройдет и будет событие об ошибке. Это надо учитывать.Подача ордеров неблокирующая. У альфы есть предел по скорости подачи/отмены ордеров.


Целый день воюю с этими двумя последовательными ордерами. Тут вопрос в чем. Запускаю 2-3 стратегии на разных инструментах. Я не могу сказать в какой момент они отменят заявку или выставят ордер. А тут встречаются накладки - я специально для синхронизации завел в стратеги статичное поле LastOrderRegistrationTime и при регистрации жду для примера одну секунду от этого значения, а вот ордер отмену не могу предсказать (использую правила) и тут пару раз и проскачила ошибка:

13:36:02.234 | Error | Стратегия для XXXX | Заявка 3421621415 не была принята по причине System.Exception: Поручение не может быть принято, т.к. превышена предельная интенсивность..

Я вот и думаю, т.к. это явный косяк Альфы, то и обработку его зашить в коннектор. Иначе две и более стратегии придется вручную синхронизовать. Ведь один такой сбой и вся стратегия рушится, т.к. почему-то появляется дубликат заявки (все-таки в конце концов видать доходит до сервера).
К примеру в AlfaTrader можно свойство добавить что-то вроде RegisterOrderInterval (установить по умолчанию в секунду) и когда из очереди выбирать на установку или отмену заявки для последующей заявки ожидать этот интервал и плюс (возможно) дожидать ответа от Альфы (успешно или неуспешно)


Ну просто нужно в стратегиях учитывать что заявка может не исполниться в первый раз. Надо подать снова на исполнение. Или просто сделать метод отдельный. Использовать можно котирование для подачи заявок. Пока вроде бы котирование работает в моем коннекторе. Только пишет про ошибку. Залью чуть позже версию в которой уже и ошибок не пишет.

А то что пишет ошибку у Вас это нормально. Альфа не дает две заявки быстро исполнить. Надо учитывать сей факт. То что Сергей пишет про коннектор из транка, верно. Но я намеренно отказался от подобного метода подачи заявок. Почему написано в комментариях к коммиту. Да и даже при ожидании исполнения каждой заявки, заявка может исполниться с ошибкой. В любом случае надо учитывать в стратегии факт возможного ошибочного исполнения заявок. А то что Вы пишете мол заявка даже при ошибке регистрируется и появляется в терминале, Это позволю себе заметить наверняка не совсем так. При сообщении о предельной допустимости заявка точно не регистрируется сервером. Видимо ваши стратегии посылают снова заявки свои на исполнение.
Спасибо: exarh seashaman

seashaman

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


Стратегия котирования под коннектор AlfaPlus от Родиона работает. Изредка случаются сбои, стратегия завершается без позиции. Сильно не разбирался, просто в основной стратегии контролирую этот момент и дублирую в случае чего. В целом коннектор работает шустренько. Продолжаю наблюдения.
Спасибо:

ra81

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


новый коммит http://stocksharp.codepl.../changeset/changes/15576

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

OvcharenkoVI

Фотография
Автор статей
Дата: 14.03.2012
Ответить


Хорошее дело затеял, Родион
Спасибо:

Mikhail Sukhov

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


Приветствую, альфа строители.

Хотел спросить вам как дело с вашим коннектором. Я так понимаю их сейчас целых 2, и не понятно какой из них использовать. Мы хотим выпускать версию 4.1, и этот вопрос предлагаю решить окончательно. Чем альтернативный коннектор лучше текущего? Может быть их соединить в плане фич и багов? Надо уже и на дев ветку накатить все то, что в транке фиксилось, так как именно из дева будет собираться новая версия.
Спасибо:

OvcharenkoVI

Фотография
Автор статей
Дата: 20.03.2012
Ответить


Mikhail Sukhov Перейти
Приветствую, альфа строители.

Хотел спросить вам как дело с вашим коннектором. Я так понимаю их сейчас целых 2, и не понятно какой из них использовать. Мы хотим выпускать версию 4.1, и этот вопрос предлагаю решить окончательно. Чем альтернативный коннектор лучше текущего? Может быть их соединить в плане фич и багов? Надо уже и на дев ветку накатить все то, что в транке фиксилось, так как именно из дева будет собираться новая версия.


С моей точки зрения, коннектор Сергея более рабочий, по крайней мере меньше багов замечал. У Родиона интересная система с подписками на таблицы. Собственно Сергей говорил, что, возможно, что то возьмет из alfaplus, в таком случае для 4.1 это будет лучшим вариантом
Спасибо:

ra81

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


OvcharenkoVI Перейти
Mikhail Sukhov Перейти
Приветствую, альфа строители.

Хотел спросить вам как дело с вашим коннектором. Я так понимаю их сейчас целых 2, и не понятно какой из них использовать. Мы хотим выпускать версию 4.1, и этот вопрос предлагаю решить окончательно. Чем альтернативный коннектор лучше текущего? Может быть их соединить в плане фич и багов? Надо уже и на дев ветку накатить все то, что в транке фиксилось, так как именно из дева будет собираться новая версия.


С моей точки зрения, коннектор Сергея более рабочий, по крайней мере меньше багов замечал. У Родиона интересная система с подписками на таблицы. Собственно Сергей говорил, что, возможно, что то возьмет из alfaplus, в таком случае для 4.1 это будет лучшим вариантом


Вообще с моей точки зрения, текущая версия моего коннектора работает гладко и без багов. Во всяком случае мы в две каски используем его всяко разно. Отрабатывает без глюков. Если баги и есть то обычно с Сергеем мы их фиксим одновременно, поскольку я базировался на его коде и мы с ним общаемся по этим вопросам.

Ну и моя версия более юзер френдли. Собрать рабочий код на коннекторе Сергея сложнее. Много надо понять для начала. Ну так было у меня лично. С этого и начался новый коннектор.

Что еще сказать, в моей версии точно работают подписки на разные инструменты одновременно, если Сергей не пофиксил то у него нет. У меня работают события об ошибках регистрации ордеров, у него не работали. Отсюда стратегии тоже могут загонять. Ну и у нас разные схемы подачи ордеров. У него синхронная, у меня асинхронная, то есть подача ордера мгновенная и в терминал так же уходит ордер без ожидания. Отсюда терминал не подвисает. У Сергея была подача с ожиданием.

Пока что весь тот функционал что нужен для работы стратегий достаточен и рабочий. Есть вещи которые весят в тудушках, как то "Время отмены ордера" итд, но эт минорно все. Так что решайте сами :). Ну и если речь шла о багах, то show me the bugs?? :). DerivedOrder поправлю как тока сертификат продлят изверги, а то не тестится.

ЗЫ: пишу код для себя, так что стараюсь :)
Спасибо:

OvcharenkoVI

Фотография
Автор статей
Дата: 20.03.2012
Ответить


ra81 Перейти
OvcharenkoVI Перейти
Mikhail Sukhov Перейти
Приветствую, альфа строители.

Хотел спросить вам как дело с вашим коннектором. Я так понимаю их сейчас целых 2, и не понятно какой из них использовать. Мы хотим выпускать версию 4.1, и этот вопрос предлагаю решить окончательно. Чем альтернативный коннектор лучше текущего? Может быть их соединить в плане фич и багов? Надо уже и на дев ветку накатить все то, что в транке фиксилось, так как именно из дева будет собираться новая версия.


С моей точки зрения, коннектор Сергея более рабочий, по крайней мере меньше багов замечал. У Родиона интересная система с подписками на таблицы. Собственно Сергей говорил, что, возможно, что то возьмет из alfaplus, в таком случае для 4.1 это будет лучшим вариантом


Вообще с моей точки зрения, текущая версия моего коннектора работает гладко и без багов. Во всяком случае мы в две каски используем его всяко разно. Отрабатывает без глюков. Если баги и есть то обычно с Сергеем мы их фиксим одновременно, поскольку я базировался на его коде и мы с ним общаемся по этим вопросам.

Ну и моя версия более юзер френдли. Собрать рабочий код на коннекторе Сергея сложнее. Много надо понять для начала. Ну так было у меня лично. С этого и начался новый коннектор.

Что еще сказать, в моей версии точно работают подписки на разные инструменты одновременно, если Сергей не пофиксил то у него нет. У меня работают события об ошибках регистрации ордеров, у него не работали. Отсюда стратегии тоже могут загонять. Ну и у нас разные схемы подачи ордеров. У него синхронная, у меня асинхронная, то есть подача ордера мгновенная и в терминал так же уходит ордер без ожидания. Отсюда терминал не подвисает. У Сергея была подача с ожиданием.

Пока что весь тот функционал что нужен для работы стратегий достаточен и рабочий. Есть вещи которые весят в тудушках, как то "Время отмены ордера" итд, но эт минорно все. Так что решайте сами :). Ну и если речь шла о багах, то show me the bugs?? :). DerivedOrder поправлю как тока сертификат продлят изверги, а то не тестится.

ЗЫ: пишу код для себя, так что стараюсь :)


сегодня только с Сергеем обнаружили, что не заполняется ExtensionInfo у Security. Поправить бы.

Так у меня вот возникло много проблем при переносе проги с одной машины на другую. Какие ошибки только не вылетают.



С коннектором от Сергея такого не возникало. На самом деле очень хотелось бы их объединить, так как и в одном и другом есть очень важные вещи
Спасибо:

ra81

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


OvcharenkoVI Перейти

сегодня только с Сергеем обнаружили, что не заполняется ExtensionInfo у Security. Поправить бы.

Так у меня вот возникло много проблем при переносе проги с одной машины на другую. Какие ошибки только не вылетают.

С коннектором от Сергея такого не возникало. На самом деле очень хотелось бы их объединить, так как и в одном и другом есть очень важные вещи

Вот это уже другой разговор. Трабла с переносом ясно с чем связана. Если будут багрепорты будут багфиксы. Пофиксим ошибку переноса. А ExtensionInfo даж не знаю что за беда. ЧТо там должно содержаться ??

Код
security.SetPaperNo(paper_no);
security.SetCurrency(curr_code);
security.SetPlaceCode(place_code);


Вот тут собственно заполняется.
Спасибо:

Mikhail Sukhov

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


ra81 Перейти

Ну и моя версия более юзер френдли. Собрать рабочий код на коннекторе Сергея сложнее. Много надо понять для начала. Ну так было у меня лично. С этого и начался новый коннектор.


Значит надо совмещать. Задача даже более необходимая, чем кажется, так как в дев ветке вообще ничего уже по альфе не работает.

Предлагаю для начала включить коннектор в солюшен, чтобы его можно было компилировать со всеми другими программами. Затем, нужно перечислить все эти изменения и отличия. Потому что я даже не смотрел ни новый коннектор, ни старый на совместимость с S#. Вот как недавно было со стоп заявками... Надо начать, потом станет веселее. Не дело, вместо фиксов в существующем коннекторе, плодить новую ветку.
Спасибо:
1 2 3  >

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

loading
clippy