суббота, 30 июля 2011 г.

Новый блог

Решил переместить блог с ничего незначащего названия stockmarketdotnet на StockSharp.blogspot.com. Постепенно буду фиксить ссылки.

ВАЖНО Новости располагаются на официальном сайте http://stocksharp.com

среда, 29 июня 2011 г.

Прошло обучение по C# + Stock# (продвинутая группа)

На минувших выходных закончились курсы. Вел 6 выходных дней, практически весь июнь. Начало было "интересным". В учебке Алора отрубили интернет. Пришлось выкручиваться, и на ходу менять программу. Даже написал простенький эмулятор Quik, чтобы продолжить обучение. Но потом Алор себя полностью реабилитировал, сделав интернет и починив систему охлаждений помещения (проще говоря, кондиционер). В целом помещение было на высоте.

На вторых двух выходных мы узнали, что демо Quik от ARQA на выходных отключен. В срочном порядке поназаказали у Цериха логины, так что это практически ничем не омрачило наше обучение в те выходных.

В целом весь процесс был куда более насыщенный, чем мое первое обучение. Во-первых, 6 дней против 4-ех, и удалось по больше рассказать про события и асинхронную модель. Это, пожалуй, самое важное в алго трейдинге. Во-вторых, разделение на базовый и продвинутый уровни дало положительный результат. Не 100%, но все же намного лучше, чем мое пилотное выступление. В любом случае, как и обещал, буду всегда доступен к ответам на вопросы.

Всем отучившимся спасибо. Было очень интересно со всеми общаться. Надеюсь, виделись не в последний раз, и в следующих раз встретимся уже на предметных конференциях или... в стакане. =)

ps Следующее обучение будет, скорее всего, для базовой группы и его будет вести Павел Касаткин (автор Quik2Quant). Напишу в следующем сообщении.

среда, 15 июня 2011 г.

2-ой вебинар по роботам.

Сегодня, в 20 часов будет проводить вебинар по роботам Павел Касаткин. Павел является создателем адаптера под OpenQuant для Квика (помимо того, что мы с ним начинали делать Stock# вместе). Так что хорошая возможность задать вопросы тем, кто был на первом вебинаре, так и кто его пропустил.

понедельник, 30 мая 2011 г.

Торговые роботы на заказ от команды Stock#

Команда создателей Stock# открывает сервис по разработке торговых роботов и аналитических программ на заказ.

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

Отправить заявку для оформления заказа Вы можете на странице http://stocksharp.com/robot/.

вторник, 17 мая 2011 г.

PlazaTrader. Beta

Извещаю о начале бета тестирования коннектора к Плазе - PlazaTrader. Выложил сюда. Об ошибках пишите на форум. Документация пока не готова, но есть пример. При желании разобраться можно достаточно быстро. Успехов всем и особая благодарность aspirant-у, который фактически и сделал коннектор к Плазе.

понедельник, 16 мая 2011 г.

Вебинар по роботам. Отчет

3 мая я вел вебинар по роботам на C#. Рассказывал по Quik API, что такое Stock# и как лучше писать бота. На выходных получил материалы и публикую их в блоге. Видео выложил сюда. В текстовом виде опубликовано http://finlabportal.ru/2011/05/s-roboty-pr...mixaila-suxova/ http://finlabportal.ru/2011/05/otvety-na-v...mixaila-suxova/

Местами волновался, местами смеялся. Мой первый опыт в вебе, так что сильно не пинайте.

вторник, 10 мая 2011 г.

Шлюз к АльфаДирект готов

Кто прогает под Альфу может его брать и мучать. По вопросам, что как и зачем, пишите на форум S#. Если будут вопросы по другим шлюзам, то пишите в другие форумы (в Альфе только Альфа).

среда, 4 мая 2011 г.

Stock# 3.1

Дамы и господа - новая версия! Бета тест был пройден успешно и давайте я расскажу вам о новых плюшках и исправленных сухарях.

Основная фича релиза - это поддержка опционной модели. В релизе представлены алгоритмы для работы с моделью Блэке-Шоулза, алгоритмы котирования по волатильности и дельта-хеджирование, а так же работа с синтетическими позициями. То, что предлагается за деньги в ряде программ, у нас бесплатно. =)

Помимо опционов были сделаны еще ряд интересных фич:
  1. S# теперь использует тип decimal. Он предотвращает ряд неприятных моментов с неправильным округлением, присущие использованию double.
  2. Пункто-цифровой график (крестики-нолики).
  3. Рассчет проскальзывания для стоп-заявок.
  4. Котирование теперь само решает, как переставлять заявку.
  5. Метод GuarantyCancelOrder объявлен устаревшим.
  6. Появились критерии остановки стратегии по ошибке (например, продолжать работу в случае возникновения ошибки в алгоритме). Для этого используются новые свойства Strategy.ErrorCount и Strategy.MaxErrorCount.
  7. Словообразование TimeShift заменено на Emulation в названиях некоторых классов. Для более четкого отражения смысла.
  8. Новые методы у Strategy для записи логов AddInfoLog, AddWarningLog и AddErrorLog.
  9. Добавлен SecurityIdGenerator для возможности изменения алгоритма генерации Security.Id. Напомню, сейчас для РТС идентификатор равен Код@RTS. Для ММВБ - Код@Класс.
  10. Возможность рассчета отрицательного проскальзывания.
  11. Новое свойство ActionRule.Name для удобства просмотра в логах какое именно правило была активировано.
  1. Новая струстура базы данных. Если уже работает Гидра версии 3.0, то нужно запустить скрипт миграции trading_diff.sql. Для тех, кто начнет пользоваться Гидрой впервые, этот скрипт не нужен, и нужно использовать trading.sql.
  2. Поддержка миллисекунд, что обеспечивает еще большую точность для тестирования на истории. Плюс к этому, теперь данные качаются аж с 2003-го года.
  3. Расширенная поддержка РТС Стандарт.
  4. Возможность редактирования инструментов.
  5. Фильтр для внесистемных сделок РТС.
Quik
  1. Увеличение скорости запуска и остановки DDE экспорта.
  2. Увеличение скорости метода запуска Quik.
  3. Изменены настройки экспорта стакана (рекомендуется из закрыть в Quik-е, потому что у них теперь новый заголовок).
SmartCOM
  1. Поддержка версии от 29.03.2011.
  2. События SmartComWrapper лучше задокументированы.
Исправленные баги:

Особо хочу отметить тот факт, что эту версию помогали делать Михаил Миткевич и Александр Shurik Муханчиков.

среда, 27 апреля 2011 г.

SmartCOM был объявлен устаревшим

Цитата с форума РТС, где отписался Андрей Осташов:

Причиной кончины SmartTrade COM было настоятельное желание роботописателей выделить API в отдельный продукт, неотягощенный торгово-терминальными функциями, кушающими системные ресурсы. Что и было сделано. В результате на свет появился SmartCOM.
Развитие технологий не стоит на месте. Мы начинаем задумываться о SmartNet.
Так что рано или поздно SmartCOM безусловно умрет.
Кто не знает Андрея - это сотрудник ITInvest. По должности я не знаю кто он, но вверенное ему хозяйство включает поддержку IT решений (такое как SmartCOM) и новое направление в программах ITInvest. Так что, считайте, почти официальное заявление.

Считаю решение правильным, так как технология морально устарела. Но новая библиотека от SmartNet пока не очень хороша (смог через нее получить рыночные данные, дальше забросил). По субъективным впечатлениям оформлена хуже, чем SmartCOM. Есть надежды, что к официальному релизу все в корне измениться.

Те, кто пользуется SmartCOM, бдите. Как говориться предупрежден, значит вооружен.

вторник, 26 апреля 2011 г.

Бесплатный вебинар по роботам на C#

Во вторник, 3 мая в 20 часов состоится вебинар. На вебинаре я расскажу про сам язык C#, чем он отличается от других языков, в чем он программируется, и как выглядят роботы, написанные на таком языке.

Если есть вопросы, то лучше их задать заблаговременно. И рассчитывайте, что формат примерно час с копейками.

пятница, 22 апреля 2011 г.

понедельник, 18 апреля 2011 г.

Парочка картинок по статистике сайта

Зашел в Google Analytics. Я в статистике сайта не особо сильно разбираюсь, так что мне абсолютные цифры ничего не подскажут. Но оценил прикольную фичу оценки количества посетителей в виде карты мира и отдельных стран.

Вот что по миру в общем (картинки кликабельны):

Cтрана-лидер меня не удивила, но что есть заходы из Южной Америки, Ближнего Востока и даже из Африки, конечно, повергло в шок. Там есть интернет? =)






И, конечно, Россия. Вынес для себя 2 вещи:
1) Россия имеет границу с Америкой; 2) Бизнес центры нужно строить не в Питере и не в Москве.

четверг, 14 апреля 2011 г.

Transaq и AlfaDirect

Примерно месяц назад для S# появился шлюз для Транзака. Автор идеи и реализации - Андрей Ефимов. Шлюз пока не в релизном состоянии, но надеюсь, доведем совместно для использования роботами и этот шлюз.

Идея оказалось заразительной, и несколько дней назад появился еще один - уже для Альфа Директ. Любезно предоставил его нам Sergey Masyura. Сегодня занимался рефакторингом и по ходу дела узнавал клиентский API для Альфы. Сделано все просто, без изысков. Как говорится, вот топор - лес там.

Два этих шлюза (aka коннектора, адаптера и т.д.) находятся в одном репозитарии с Plaza, которая в своей разработке приближается к логическому концу. Если есть желающие помочь в доделке Альфы или Транзака - присоединяйтесь к проекту.

И еще. Если у кого-то есть контакты технических ребят из Финама (я так понимаю, это самый главный пользователь Транзака) или из Альфа-Директ, напиши мне в личку на форум. Есть желание поместить ссылку к ним на сайт о разработке, и, в последствии, о доступной библиотеке.

среда, 13 апреля 2011 г.

Stock# 3.1 beta

Очередное бета тестирование новой версии. Кратко об изменениях:

Новые фишки:
  1. Опционы (Блек-Шоулз, хеджер, систетика, котирование).
  2. Перевод с double на decimal.
  3. Поменял названия классов из пространства Testing.
  4. Кретики-нолики.
  5. SmartCOM от 29.03.2011.


Баги:
  1. http://stocksharp.com/forum/yaf_postst716_Niekorriektnyi-vyvod-stakanov-v-Gidrie.aspx
  2. http://stocksharp.com/forum/yaf_postsm6450_Oshibka-pri-importie-instrumientov-s-Finama.aspx#post6450
  3. http://stocksharp.com/forum/yaf_postst719_-3-0-19--Niepravil-no-schitaietsia-Position-v-PositionManager.aspx
  4. http://stocksharp.com/forum/yaf_postst735_Probliema-s-GuarantyCancelOrder.aspx


Для перехода на новую Гидру нужно прогнать скрипт trading_diff.sql.

вторник, 5 апреля 2011 г.

четверг, 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# были освещены кратко + базовые вещи нужно повторять каждый раз, чего не происходило. И формат будней для этого предпочтительнее, как мне кажется.

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

четверг, 24 февраля 2011 г.

Гидра

Для S# сделал программу Гидра, которая качает данные с Финама (тики), РТС (тики), Квик (стаканы), Смарт (стаканы) и сохраняет локально на диск во внутренний формат (специально был разработал для компактного хранения маркет данных). Программа разрабатывалась для бэктестинга, но по мере использования выяснилось, что может жить и свой жизнью (использоваться вне S#).

Отличается от других подобных программ тем, что есть API, через который можно получить загруженные данные. Так же Гидра сама умеет экспортировать данные в другие форматы (сейчас это Excel, xml и txt).

Гидра доступна с исходниками. Основана на расширяемой (плагины) модели, тоесть можно подключить и другие источники. Если кто хочет ее взять под свой контроль или просто развить своими идеями - велкам.

суббота, 19 февраля 2011 г.

Визуальные редакторы

Давно не писал беллетристику по роботам. Но на днях прислали ссылку на комоновский тред по tslab. Зашел посмотреть и увидел ЭТО:


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

Даже мои конкуренты по API для роботов - cofite - ввязались в это направление (судя по качеству картинки, пока не так далеко продвинулись, как tslab):


Немного теории о визуальном программировании. Появилось оно в лохматом году, наверное, даже раньше, чем привычные уже языки C, Паскаль и Бейсик. Помните блок схемы, что в школе на уроках информатики нас учили? Так вот, это прародитель всех нынешних редакторов. Эйфория по таким редакторам была еще чаще, чем кризисы в экономике. Каждый раз какая-то компания выдумывала очередной подход в решении проблемы визуального кода, маркетологи это разносили, но итог всегда был один - не взлетало. Даже Майкрософт вляпывался в эту направление. И так же терпел неудачу. А он то новатор (-аггрегатор) всего, что есть сейчас у программистов.

В чем причина провальности таких решений? В направлении. Людям, которые только изучают программирование, визуальный редактор только навредит. Он дает первоначальный вау фактор, который исчезает уже ко второму дню использования. Через неделю, код будет выглядеть как на картинке. И вот тут как раз и происходит крах такого подхода. Они были призваны упростить программирование. А вместо этого, происходит усложнение. И более того, код в текстовом файле начинает занимать значительно меньше места, чем вся эта мега-диаграмма, не влезающая аж 8 мониторов. А уж как ее тестировать - у-у-у-у. Это отдельная тема мазохизма.

И что же получается? Почему до сих пор создают такие редакторы, и даже крупные компании? Там сидят одни дураки? Отнюдь. Как я уже говорил, все дело в направлении. Направление таких редактором - это визуализация сложных процессов (масштаба компании) с возможностью встраивания готовых блоков. А когда на таком инструменте новички без опыта (а именно на них почему наши разработчики направляют свои усилия) пытаются создавать торговые алгоритмы, где, как правило, пестрит одна математика, то все это выливается один большой и неповоротливый монстр с единственным вопросом у создателя - "И что же дальше?".

четверг, 17 февраля 2011 г.

Курсы по обучению языку C#

Решил и в блоге дать новость.

Я буду вести курсы по обучению программированию на C#. Обучение неотрывно от практики, и сразу буду говорить, как запрограммировать то или другое на S# под Quik. Уровень - самый начинающий (то, кто не знает язык вообще). Уровень после курсов - умение запрограммировать стратегию на S#.

Даты: 26 + 27 февраля, 12 + 13 марта. Начало в 11 часов.

Обучение будет производиться в учебной аудитории Алор, по адресу г. Москва, Комсомольский пр-т, д. 9а (2-й этаж), офис 206 (http://www.alor.ru/include/areas/regions/y...%C0%CB%CE%D0%BB).

Обучение по схеме пара, перерыв, пара, обед, пара, перерыв, пара.

Стоимость - 10 000 р.

upd:
Мест осталось 0.

четверг, 10 февраля 2011 г.

Stock# 3.0 beta

На прошлой неделе выпустил первую бета версию S# 3.0. Сегодня - вторую. Решил отписать в блоге об этом. Это не официальное пока сообщение о всех изменениях и фичах, поэтому никакой конкретики.

Основная фича - это тестирование на истории. Это был настоящий долгострой, который я начал почти год назад. С переменным успехом, с изменениями планов, но в конечном итоге я довел дело до конца. Конечно, еще многое нужно будет улучшать, убыстрять и параллелить, но задел сделан - тестирование роботов под Quik и SmartCOM на истории! Вау! Такое еще никто не делал на рынке софта для трейдинга у нас. Это фактически открыло новое направление - анализ стратегий. То, что раньше предлагалось только через Велс, Ами и т.д. теперь доступно и для нормальных высокочастотных роботов. И главное - абсолютно бесплатно =)

Вторая фича получилась производной. Это программа Hydra, которая поставляет данные как раз для тестирования. Тестирование по-тиковое, поэтому и программа скачивает сделки, а не свечки или какие другие котировки. Название Hydra получилось из-за способа работы - множества "голов", "кушающих" данные из разных источников. Данные, кстати, не только сделки, но так же и стаканы, что еще больше влияет на точность тестирования. Кстати, сама программа распространяется с исходниками. Так что, если есть желающие развивать ее под другие источники, велкам!

А пока тестирование беты.

среда, 19 января 2011 г.

Quik2Quant 1.1

После длительного тестирования программный адаптер Quik2Quant полностью готов к работе, в результате исправления багов и недочетов продукт обзавелся стабильностью в работе и одновременно лишился постфикса beta.
Кроме того, появилось несколько новых фич, призванных облегчить жизнь простого юзера:
  • Установка с помощью установочного файла. Шаманства с бубном вокруг разных папок больше нет.

  • Автоматический поиск пути к терминалу Quik при включенных внешних транзакциях.
  • Автоматическая настройка торговых счетов. Провайдер сам найдет имеющиеся в терминале счета, останется только выбрать нужный.
  • Импорт требуемых инструментов из таблицы текущих параметров. С помощью встроенного в адаптер модуля можно в два клика настроить нужные инструменты для торговли и они мгновенно появятся в OpenQuant

понедельник, 10 января 2011 г.

Скальперский робо-привод Glass. Бета версия.

Программа Glass предназначена для тех трейдеров, кому необходим удобный и быстрый привод для QUIK и SmartCom. Скальпинг и QUIK- понятия не совсем подходящие друг другу и, чтобы у трейдеров, использующих терминал QUIK, не возникало проблем с QUIK и скальпинг стратегиями, мы сделали удобный скальперский привод к QIUK.

Особое внимание мы уделили скорости обработки действий и отображения информации, т.к. считаем это критичным при активном стиле торговли. Продукт Glass - как удобный и быстрый скальпинг привод к терминалу QUIK - не создает дополнительных задержек при обработке заявок через привод.

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

Программа работает совместно с QUIK (www.quik.ru) терминалом, поддерживаемым почти всеми брокерами Российского Фондового рынка (ММВБ, РТС).