четверг, 17 марта 2011 г.

Stock# 3.0

После продолжительного тестирования бета версии 3.0 спешу всех обрадовать - релиз готов! Те, кто еще не решился сделать upgrade с предыдущих версий, можете смело брать.

Для тех, кто пока еще не знаком с Stock# и чем знаменательная эта версия.

Stock# - это бесплатная платформа для программирования на C# роботов, где максимально скрыты технические детали. Трейдер, программирующий на Stock#, сосредоточен только на ключевых моментах - самих торговых действиях. И не нужно в сотый раз спрашивать, как подключиться к Quik и как работает SmartCOM. А так же плюс в том, что код робота с минимальными изменениями можно перенести с одной платформы на другую.

Версия 3.0 теперь позволяет тестировать роботов, написанных на Stock#. То, что раньше требовало неповоротливых и дорогих программ в виде MetaStock, Ami, WealthLab, NinjaTrader и т.д., теперь бесплатно.

А теперь традиционный список изменений для тех, кто будет переходить на новую версию:

Стратегии и алгоритмы
  1. Собственно, тестирование стратегий через шлюзы HistoryTestTrader, RealTimeTestTrader и EmulationTestTrader. Подробнее, в документации.
  2. Гидра - программа для скачивания маркет-данных (сделки + стаканы) для последующего прогона стратегий по ним.
  3. API для работы с хранилищем данныхГидра его как раз использует. Позволяет сделки и стаканы сохранять во внутренний формат. Формат очень компактный и ориентирован как раз на маркер-данные. По сравнению с БД сжатие ~ в 15-20 раз.
  4. StrategyManager теперь имеет методы Start, Stop, Pause и Resume.
  5. Методы IsFullEmpty и IsHalfEmpty для определения наполненности стакана. 

Quik
  1. Сокращенная таблица инструментов. Теперь имеет всего несколько колонок. Поэтому, у Security значения BestBid и BestAsk теперь инициализируются только когда запущен экспорт стакана. Так же и с LastTrade - нужен экспорт по таблице всех сделок.
  2. Добавил экспорт портфелей.
  3. Код клиента в таблицах заявки и стоп-заявки.
  4. Возможность получить список адресов серверов, а так же указать, на какой конкретно адрес нужно произвести подключение.
  5. Переделал работа с экспортом произвольных таблиц.


SmartCOM

  1. SmartComWrapper.
  2. SmartExtensionInfoHelper для получения Smart-овской информации из торговых объектов.
  3. Вагон и маленькая тележка фиксов. Стало стабильнее работать благодаря фидбекам.


Общее
  1. Добавил свойство ITrader.OrderFails для получения всех ошибочных заявок.
  2. Класс WorkingTime для указания расписания работы.
  3. Метод ICandleManager.GetLastCandle для получения текущей свечки.
  4. Методы поиска торговых объектов по критериям переместил из ITrader в TraderHelper и называются теперь они Filter.
  5. Появилась возможность создавать свои собственные торговые объекты через IEntityFactory. Вместо того, чтобы писать такой код:

    var riXXX = base.Trader.Securities.First(s => s.Code == "...");
    var thPrice = (double)riXXX.ExtensionInfo[DdeSecurityColumns.TheorPrice];
    var thPrice = (double)riXXX.ExtensionInfo[DdeSecurityColumns.Volatility];

    Теперь можно написать более изящно:

    var riXXX = (Option)base.Trader.Securities.First(s => s.Code == "...");
    var thPrice = riXXX.TheorPrice;
    var thPrice = riXXX.Volatility;
  6. Переход на формат Excel 2007 в отчетах.
  7. Улучшенная работа Unit.
Всех исправлений и улучшений я не стал описывать, слишком уж много получилось. Но я думаю этого будет достаточно, чтобы для себя окончательно решить в пользу Stock# 3.0. Пользуйтесь!

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

  1. Скажите, а можно ли используя Stock# оперировать Греками и волатильностью опционов? Как? Через QUIK?

    ОтветитьУдалить
  2. Stock# сейчас поддерживает только Квик и Смарт. Смарт не транслирует волатильность. Если будете сами ручками ее забивать, подойдет и он. Если нужна рыночная, то только Квик.

    ОтветитьУдалить
  3. Михаил, что насчёт опционных Греков? Мне их нужно будет самому расчитывать или как-то можно уже готовые использовать?

    ОтветитьУдалить
  4. В 3.1 делается поддержка опционов. В том числе и греки. Но я думаю начать изучать S# стоит уже сейчас, если знания C# не на высоком уровне.

    ОтветитьУдалить
  5. В чём причина такой разницы между объемами библиотек версий 3.0 и 2.6.2 (3.9 ГБ и 114.5 МБ соответственно)?

    ОтветитьУдалить
  6. Как насчет того, чтобы провалиться в папочку 3.0 и все увидеть своими глазами? Неужели коммент быстрее написать? =)

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