Для тех, кто пока еще не знаком с Stock# и чем знаменательная эта версия.
Stock# - это бесплатная платформа для программирования на C# роботов, где максимально скрыты технические детали. Трейдер, программирующий на Stock#, сосредоточен только на ключевых моментах - самих торговых действиях. И не нужно в сотый раз спрашивать, как подключиться к Quik и как работает SmartCOM. А так же плюс в том, что код робота с минимальными изменениями можно перенести с одной платформы на другую.
Версия 3.0 теперь позволяет тестировать роботов, написанных на Stock#. То, что раньше требовало неповоротливых и дорогих программ в виде MetaStock, Ami, WealthLab, NinjaTrader и т.д., теперь бесплатно.
А теперь традиционный список изменений для тех, кто будет переходить на новую версию:
Стратегии и алгоритмы
- Собственно, тестирование стратегий через шлюзы HistoryTestTrader, RealTimeTestTrader и EmulationTestTrader. Подробнее, в документации.
- Гидра - программа для скачивания маркет-данных (сделки + стаканы) для последующего прогона стратегий по ним.
- API для работы с хранилищем данных. Гидра его как раз использует. Позволяет сделки и стаканы сохранять во внутренний формат. Формат очень компактный и ориентирован как раз на маркер-данные. По сравнению с БД сжатие ~ в 15-20 раз.
- StrategyManager теперь имеет методы Start, Stop, Pause и Resume.
- Методы IsFullEmpty и IsHalfEmpty для определения наполненности стакана.
Quik
- Сокращенная таблица инструментов. Теперь имеет всего несколько колонок. Поэтому, у Security значения BestBid и BestAsk теперь инициализируются только когда запущен экспорт стакана. Так же и с LastTrade - нужен экспорт по таблице всех сделок.
- Добавил экспорт портфелей.
- Код клиента в таблицах заявки и стоп-заявки.
- Возможность получить список адресов серверов, а так же указать, на какой конкретно адрес нужно произвести подключение.
- Переделал работа с экспортом произвольных таблиц.
SmartCOM
- SmartComWrapper.
- SmartExtensionInfoHelper для получения Smart-овской информации из торговых объектов.
- Вагон и маленькая тележка фиксов. Стало стабильнее работать благодаря фидбекам.
Общее
- Добавил свойство ITrader.OrderFails для получения всех ошибочных заявок.
- Класс WorkingTime для указания расписания работы.
- Метод ICandleManager.GetLastCandle для получения текущей свечки.
- Методы поиска торговых объектов по критериям переместил из ITrader в TraderHelper и называются теперь они Filter.
- Появилась возможность создавать свои собственные торговые объекты через 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;
- Переход на формат Excel 2007 в отчетах.
- Улучшенная работа Unit.
Всех исправлений и улучшений я не стал описывать, слишком уж много получилось. Но я думаю этого будет достаточно, чтобы для себя окончательно решить в пользу Stock# 3.0. Пользуйтесь!
Скажите, а можно ли используя Stock# оперировать Греками и волатильностью опционов? Как? Через QUIK?
ОтветитьУдалитьStock# сейчас поддерживает только Квик и Смарт. Смарт не транслирует волатильность. Если будете сами ручками ее забивать, подойдет и он. Если нужна рыночная, то только Квик.
ОтветитьУдалитьМихаил, что насчёт опционных Греков? Мне их нужно будет самому расчитывать или как-то можно уже готовые использовать?
ОтветитьУдалитьВ 3.1 делается поддержка опционов. В том числе и греки. Но я думаю начать изучать S# стоит уже сейчас, если знания C# не на высоком уровне.
ОтветитьУдалитьВ чём причина такой разницы между объемами библиотек версий 3.0 и 2.6.2 (3.9 ГБ и 114.5 МБ соответственно)?
ОтветитьУдалитьКак насчет того, чтобы провалиться в папочку 3.0 и все увидеть своими глазами? Неужели коммент быстрее написать? =)
ОтветитьУдалить