четверг, 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. Пользуйтесь!

среда, 16 марта 2011 г.

Курсы по обучению языку C#. Часть 2.

После пилотных занятий хочу продолжить заниматься обучением языку C#. Для тех, кто видит объявление в первый раз. Это курс из лекций и практических заданий по обучению программирования торговых роботов на C# с применением бесплатной платформы Stock#. Планирую сделать обучение ввиде нескольких групп, которые разделены по уровням сложности и времени. Вот программа с сайта, где можно записаться:

Базовая программа (нет опыта)

  • Базовые элементы языков программирования
  • Как строится логика программы
  • Знакомство со средой разработки, Visual Studio
  • Арифметические операции на языке C#, типы данных
  • Циклы, условия, массивы, списки, словари
  • Методы, свойства, события
  • Классы, основы ООП
  • Поиск ошибок через Debugger
  • Работа с файлами
  • Создание графического приложения

Продвинутая программа (опыт более 1 года)

  • Методы, свойства, события
  • Классы, основы ООП
  • Общепринятые стили программирования
  • Поиск ошибок через Debugger
  • Работа с файлами
  • Работа с БД, основы SQL
  • Многопоточность и синхронизация
  • Создание графического приложения
  • Стратегии, свечки, алгоритмы
  • Отчеты, логирование, настройки
  • Тестирование стратегий

Сразу скажу, на будни и выходные меня одного может не хватить. Я планирую провести на пару с создателем адаптера Quik2Quant. Павел подключиться к обучению не сразу, так что в начале будет какая-то одна группа. Какая именно решит ее высочество популярность. Так что регистрируйтесь, таким образом вы высказываете свое мнение.

Обучение проходит на свой аппаратуре (ноут, с установленным Квиком и студией). У кого с этим проблема (с ноутом), напишите мне, можно это решить. Но своя аппаратура все таки лучше.

Цены, координаты, время - все на сайте.

понедельник, 14 марта 2011 г.

Обучение первой группы

Вчера был последний день обучения программирования роботов на C# с использование S# пилотной группы. Обучались все, в том числе и я. Вынес для себя много полезного для следующих курсов:

Во-первых, группу нужно разделять. На первый курс лекций попало явно более 1 уровня: те, кто уже занимается автоматизацией в трейдинге, и те, кто практически не имеет опыта.

Во-вторых, программу нужно упрощать. Лучше давать минимум, но чтобы но был усвоен, чем давать продвинутую технику, которую большинство проигнорировало.

В-третьих, программу нужно расширять. Некоторые аспекты C# были освещены кратко + базовые вещи нужно повторять каждый раз, чего не происходило. И формат будней для этого предпочтительнее, как мне кажется.

Все эти замечания буду устранять. Хочу всех поблагодарить за то, что пришли, и дошли этот тяжелый путь до конца. =)