пятница, 29 января 2010 г.

Stock# 1.6

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

1. QuikTrader теперь поддерживает TRANS2QUIK 1.1. Для тех, кто в не в курсе - это такая версия, которая умеет мониторить состояние заявки и сделок по ней. Включить включил, а вот доступа из вне не дал. Причина в том, что тесты показали точно такую же скорость отклика, что и DDE (подозреваю, что схожий механизм). Соответственно, чтобы не поддерживать две режима, оставил включенным пока только старый. Багов меньше, возможностей больше.

2. Переименовал класс Task в Strategy как четко определяющее свое предназначение. Так же сделал его более умным. Сам набирает сделки, сам определяет позицию, проскальзывание (подробнее, пункт 6), прибыль-убыток (пункт 7). Разве что не кушает сам.

3. В документацию добавил топик, описывающий как из робота отслеживать состояние соединения и производить переподключение в случае потери соединения с Квиком. А также, добавил класс ReConnectionManager, который умеет автоматизировать работу с соединением. Пример использования в документации и примере Sample.

4. Вынес всю логику работы со свечками в отдельный класс CandleManager.

5. Добавил класс SyncTrader (и аналог для свечек - SyncCandleManager). Класс нужен для предотвращения ошибок меж потокового взаимодействия с визуальными контролами WPF (графическая библиотека в .NET). Рекомендуется при отсутствии большого опыта в создании графических программ на .NET. Подробнее, в документации.

6. Добавил класс BaseSlippageManager (это абстрактный класс, а его реализации - TraderSlippageManager, StrategySlippageManager, SecuritySlippageManager, AccountSlippageManager). Это, как нетрудно догадаться из названия, механизм для подсчета проскальзывания. Пример использования в документации и примере SampleSMA.

7. Так же, как и для проскальзывания из пункта 6, добавил менеджеров P&L (прибыли-убытка): TraderPnLManager, StrategyPnLManager, SecurityPnLManager, AccountPnLManager.

8. Добавил событие ITrader.SecuritiesChanged, сигнализирующее об изменении параметров инструментов.

9. Добавил событие ITrader.QuotesChanged, сигнализирующее об изменении стакана. Нужен для мониторинга низко ликвидных инструментов.

10. В самый последний момент добавил класс MarketDepth - стакан по русски. Прислали по почте, я его отрефакторил и вот он в составе библиотеки.

11. А также ряд других важных архитектурных изменений для следующего релиза, который обещает превратить Stock# в версию 2.0.

12 комментариев:

  1. Добрый день, Cyril!

    Я не разрабатываю публично МТС. Я предоставляю бесплатную библиотеку, упрощающую разработку МТС.

    ОтветитьУдалить
  2. Добрый день, версия 1.6 при подключени к Qiuk пишет сообщение:
    Код ошибки Failed Сообщение Connection failed at step 3, error message was \"Current version of library is not supported by QUIK.\
    Что это может быть ? в 1.5 не ошибок не наблюдается.

    ОтветитьУдалить
  3. Ed,

    Лучше это на форуме обсудить... Как вариант - обновить терминал. Какая у Вас версия терминала?

    ОтветитьУдалить
  4. Версия терминала 5.14.0.93.
    Вопрос, а исходники библиотек Ecng я так понимаю вы не предоставляете ? Хотелось бы на них взглянуть.

    ОтветитьУдалить
  5. Ed,

    Последняя версия 5.16. Насчет исходников - смотря для каких целей.

    ОтветитьУдалить
  6. Для своих личных(не коммерческих) потребностей, ведение статистической и аналитической зависимости, подключение хранилища для внешней системы.

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

    ОтветитьУдалить
  8. S# - это бесплатная, но не открытая библиотека.

    а. Вот это отчасти и тормозит в принятии решения об открытом коде. Каждый начнет модернизировать код и в итоге полезные мысли просто не дойдут до S#.

    b. Я удивлен. Обычно бывает наоборот, есть код, нет документации и автора. И приходится разбираться самому. Тут и автор, и документация. Неужели мало?

    ОтветитьУдалить
  9. Михаил, думаю, дискуссию по этому поводу продолжать не стоит, т.к в этом случае прав всегда автор, и все права принадлежат только автору. У меня был простой вопрос, можно или нельзя.

    ОтветитьУдалить
  10. Ed, надеюсь я на него ответил. Будут вопросы по библиотеке - пишите в форум.

    ОтветитьУдалить
  11. Здравствуйте. К сожалению на форуме задаю вопрос, но ветка не создается, поэтому задам его тут.

    Сделал робота. На одном квике он корректно работает без ошибок и нареканий, ставлю к другому брокеру-при попытке открыть ордер выдает ошибку, что невозможно открыть сделку, т.к. не правильно указан код клиента(XXX)
    Каким образом можно самому задать код клиента, который будет передаваться квику?

    ОтветитьУдалить
  12. Доброго Вам, Михаил!
    Исходники я так понимаю, под семью замками? :)

    ОтветитьУдалить