SergeyEgorov
SergeyEgorov личный блог
30 сентября 2013, 08:44

Торговые роботы на заказ

Небольшая но эффективная команда программистов с удовольствием примет заказы на разработку торговых роботов.

В качестве торгового ядра используем только собственные разработки. Библиотеку для реализации торговой логики, и два собственных адаптера для соединения с брокерами, адаптеры используют SmartCom (для торговли через АйТиИнвест) и Quik (последний заканчиваем тестировать).

Качество

Качество исполнения заказов гарантируется оптимальным покрытием всего исходного кода модульными тестами. Исходный код нашей библиотеки и адаптеров точно так же покрыт модульными тестами примерно на 98 процентов. Для тестирования адаптеров написаны эмуляторы и псевдо-объекты.

Ошибки, обнаруженные заказчиком в процессе последующей эксплуатации программного продукта мы устраняем за свой счет.

Характеристики роботов

Для снижения стоимости конечного продукта для заказчика, предлагаемые роботы реализуются в виде консольного приложения Windows с простым управлением из командной строки. Команды позволяют посмотреть текущее состояние робота, сигналы, позиции, заявки, сделки.


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

С момента запуска и до момента остановки, робот ведет торговый журнал в виде простых текстовых файлов. Выдержку из файла журнала робота можно посмотреть в самом конце этой записи (ибо объемна она).

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

Стоимость

Стоимость разработки робота, торгующего через SmartCom:

  • Торгующего один инструмент — 15 тыс. руб.
  • Торгующего пару инструментов — 20 тыс. руб.
  • Торгующего композитный инструмент — 50 тыс. руб.

Стоимость разработки робота, торгующего через Quik:

  • Торгующего один инструмент — 20 тыс. руб.
  • Торгующего пару инструментов — 25 тыс. руб.
  • Торгующего композитный инструмент — 60 тыс. руб.

Срок исполнения

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

  • Робот, торгующий один или пару инструментов — неделя.
  • Робот, торгующий композитный инструмент — полторы — две недели.

Скриншот настоящего торгующего консольного робота


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

Скриншот консольного робота

Выдержка из файла журнала робота

27.09.2013 10:11:53.375, SmartComAdapter, служба SmartCom2 уже выполняется
27.09.2013 10:11:53.516, SmartComAdapter, выполняется связывание обработчиков SmartCom
27.09.2013 10:11:53.844, DefaultBinder, подключение обработчика _IStClient_ConnectedEventHandler успешно выполнено
27.09.2013 10:11:53.844, DefaultBinder, подключение обработчика _IStClient_ConnectedEventHandler успешно выполнено
27.09.2013 10:11:53.844, DefaultBinder, подключение обработчика _IStClient_ConnectedEventHandler успешно выполнено
27.09.2013 10:11:53.844, DefaultBinder, подключение обработчика _IStClient_AddBarEventHandler успешно выполнено
27.09.2013 10:11:53.859, DefaultBinder, подключение обработчика _IStClient_AddSymbolEventHandler успешно выполнено
27.09.2013 10:11:53.859, DefaultBinder, подключение обработчика _IStClient_AddTickEventHandler успешно выполнено
27.09.2013 10:11:53.859, DefaultBinder, подключение обработчика _IStClient_AddTradeEventHandler успешно выполнено
27.09.2013 10:11:53.859, DefaultBinder, подключение обработчика _IStClient_DisconnectedEventHandler успешно выполнено
27.09.2013 10:11:53.859, DefaultBinder, подключение обработчика _IStClient_DisconnectedEventHandler успешно выполнено
27.09.2013 10:11:53.859, DefaultBinder, подключение обработчика _IStClient_DisconnectedEventHandler успешно выполнено
27.09.2013 10:11:53.859, DefaultBinder, подключение обработчика _IStClient_OrderFailedEventHandler успешно выполнено
27.09.2013 10:11:53.859, DefaultBinder, подключение обработчика _IStClient_OrderSucceededEventHandler успешно выполнено
27.09.2013 10:11:53.859, DefaultBinder, подключение обработчика _IStClient_SetPortfolioEventHandler успешно выполнено
27.09.2013 10:11:53.859, DefaultBinder, подключение обработчика _IStClient_UpdateBidAskEventHandler успешно выполнено
27.09.2013 10:11:53.859, DefaultBinder, подключение обработчика _IStClient_UpdateOrderEventHandler успешно выполнено
27.09.2013 10:11:54.063, SmartComConnector, выполняется 0 попытка установления соединения
27.09.2013 10:11:57.391, SmartComConnector, соединение установлено
27.09.2013 10:11:57.391, DefaultSubscriber, выполняется подписка на получение Portfolio для BP00000-RF-01
27.09.2013 10:11:57.406, DefaultSubscriber, выполняется подписка на получение Tick для RTS-12.13_FT
27.09.2013 10:11:57.438, DefaultSubscriber, выполняется подписка на получение Tick для Si-12.13_FT
27.09.2013 10:11:57.438, Program, соединение установлено
27.09.2013 10:11:57.469, GetBarsCommand, отправлен запрос на получение Bar-ов RTS-12.13_FT, 3600, 50
27.09.2013 10:11:57.469, GetBarsCommand, отправлен запрос на получение Bar-ов Si-12.13_FT, 3600, 50
27.09.2013 10:11:57.469, Program, загрузка информации о сигналах, заявках и сделках.
27.09.2013 10:11:57.484, Program, загрузка информации о сигналах, заявках и сделках завершена.
27.09.2013 10:11:57.531, MarketDataProvider, получен Tick Si-12.13_FT, 27.09.2013 10:10:26.000, 32738, 23, 794879897, StOrder_Action_Sell
/*** вырезано ***/
27.09.2013 11:17:01.672, BreakOutOnTick, сигнал пробой Signal Id: 15196423, DateTime: 09/27/2013 11:17:01, TradeAction: Sell, OrderType: Market, Price: 143670.0000, Stop: 0.0000, Limit: 0.0000, Amount: 3.0000, StrategyId: 1
27.09.2013 11:17:01.688, SignalQueueProcessor, формирование заявки по сигналу Signal Id: 15196423, DateTime: 09/27/2013 11:17:01, TradeAction: Sell, OrderType: Market, Price: 143670.0000, Stop: 0.0000, Limit: 0.0000, Amount: 3.0000, StrategyId: 1
27.09.2013 11:17:01.688, OrderQueueProcessor, отправка заявки Order Id: 15196424, DateTime: 09/27/2013 11:17:01, Portfolio: BP00000-RF-01, Symbol: RTS-12.13_FT, Action: Sell, Type: Market, Price: 0.0000, Amount: 3.0000, Stop: 0.0000, FilledAmount: 0.0000, DeliveryDate: 01/01/0001 00:00:00, RejectDate: 01/01/0001 00:00:00, RejectReason: , ExpirationDate: 09/28/2013 00:00:00, CancellationDate: 01/01/0001 00:00:00, CancellationReason: , Signal: 15196423.
27.09.2013 11:17:01.734, SmartComOrderManager, отправлена заявка 15196424, BP00000-RF-01, RTS-12.13_FT, StOrder_Action_Sell, StOrder_Type_Market, StOrder_Validity_Day, 0, 3, 0
/*** вырезано ***/
27.09.2013 11:17:03.531, MakeTradeOnRawTrade, исполнена сделка Trade Id: 15196544, DateTime: 09/27/2013 11:15:29, Portfolio: BP00000-RF-01, Symbol: RTS-12.13_FT, Price: 143650.0000, Amount: -3.0000, Order.Id: 15196424
27.09.2013 11:17:03.531, UpdatePositionOnTrade, сделкой Trade Id: 15196544, DateTime: 09/27/2013 11:15:29, Portfolio: BP00000-RF-01, Symbol: RTS-12.13_FT, Price: 143650.0000, Amount: -3.0000, Order.Id: 15196424 инициализирована позиция.
27.09.2013 11:17:03.578, PlaceStopOnTrade, сигнал Signal Id: 15196546, DateTime: 09/27/2013 11:17:03, TradeAction: Buy, OrderType: Stop, Price: 143650.0000, Stop: 144470.0000, Limit: 0.0000, Amount: 3.0000, StrategyId: 1 на отправку стоп заявки для позиции стратегии Strategy Id: 1, Description: Break out strategy, Portfolio: BP00000-RF-01, Symbol: RTS-12.13_FT, Amount: 3.0000.
27.09.2013 11:17:03.578, SignalQueueProcessor, формирование заявки по сигналу Signal Id: 15196546, DateTime: 09/27/2013 11:17:03, TradeAction: Buy, OrderType: Stop, Price: 143650.0000, Stop: 144470.0000, Limit: 0.0000, Amount: 3.0000, StrategyId: 1
27.09.2013 11:17:03.578, OrderQueueProcessor, отправка заявки Order Id: 15196547, DateTime: 09/27/2013 11:17:03, Portfolio: BP00000-RF-01, Symbol: RTS-12.13_FT, Action: Buy, Type: Stop, Price: 0.0000, Amount: 3.0000, Stop: 144470.0000, FilledAmount: 0.0000, DeliveryDate: 01/01/0001 00:00:00, RejectDate: 01/01/0001 00:00:00, RejectReason: , ExpirationDate: 09/28/2013 00:00:00, CancellationDate: 01/01/0001 00:00:00, CancellationReason: , Signal: 15196546.
27.09.2013 11:17:03.594, SmartComOrderManager, отправлена заявка 15196547, BP00000-RF-01, RTS-12.13_FT, StOrder_Action_Buy, StOrder_Type_Stop, StOrder_Validity_Day, 0, 3, 144470
27.09.2013 11:17:03.594, PlaceProfitOnTrade, сигнал Signal Id: 15196548, DateTime: 09/27/2013 11:17:03, TradeAction: Buy, OrderType: Limit, Price: 143650.0000, Stop: 0.0000, Limit: 137490.0000, Amount: 3.0000, StrategyId: 1 на отправку заявки фиксации прибыли для позиции стратегии Strategy Id: 1, Description: Break out strategy, Portfolio: BP00000-RF-01, Symbol: RTS-12.13_FT, Amount: 3.0000.
27.09.2013 11:17:03.594, SignalQueueProcessor, формирование заявки по сигналу Signal Id: 15196548, DateTime: 09/27/2013 11:17:03, TradeAction: Buy, OrderType: Limit, Price: 143650.0000, Stop: 0.0000, Limit: 137490.0000, Amount: 3.0000, StrategyId: 1
27.09.2013 11:17:03.594, OrderQueueProcessor, отправка заявки Order Id: 15196549, DateTime: 09/27/2013 11:17:03, Portfolio: BP00000-RF-01, Symbol: RTS-12.13_FT, Action: Buy, Type: Limit, Price: 137490.0000, Amount: 3.0000, Stop: 0.0000, FilledAmount: 0.0000, DeliveryDate: 01/01/0001 00:00:00, RejectDate: 01/01/0001 00:00:00, RejectReason: , ExpirationDate: 09/28/2013 00:00:00, CancellationDate: 01/01/0001 00:00:00, CancellationReason: , Signal: 15196548.
27.09.2013 11:17:03.594, SmartComOrderManager, отправлена заявка 15196549, BP00000-RF-01, RTS-12.13_FT, StOrder_Action_Buy, StOrder_Type_Limit, StOrder_Validity_Day, 137490, 3, 0
7 Комментариев
  • FinSerfing
    30 сентября 2013, 10:27
    Приветствую собрата по разуму(программиста) и предметной области(трейдингу).
      • FinSerfing
        30 сентября 2013, 11:06
        SergeyEgorov, тут главное понимать, что трейдинг — это высокоагрессивная среда.
        Из этого следует как минимум следующее:
        1. Люди тут сливаются так же часто, как в бизнесе. Т.е. найти постоянного заказчика почти невозможно.
        2. Полно посредников и шарлатанов типа Герчика, которые продают людям надежду и косят свои комиссии(люди тоже конечно виноваты). 90% трейдинга — это околорыночная(обманная) деятельность.
        Курсы, семинары, продажа нерабочих роботов, сигналов и прочего хлама.
        3. Есть сферы в которые не стоит соваться, потому как там в конечном счёте конкуренция упирается в объём ресурсов(например скальпинг).
        4. Не стоит усложнять ни в технических, ни в трейдерских аспектах. сЛОЖНОе не работает.

        Это то, что первым пришло на ум.
        Думаю, будет ещё.
          • FinSerfing
            30 сентября 2013, 12:41
            SergeyEgorov, то, что не продаёте — это хорошо.
            Сие положительно повлияет на репутацию и карму.

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

            P/S/ Трейдер без актуального стейтмента — это шарлатан(без исключений).

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн