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

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