Блог им. SergeyEgorov

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

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

В качестве торгового ядра используем только собственные разработки. Библиотеку для реализации торговой логики, и два собственных адаптера для соединения с брокерами, адаптеры используют 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
★5
7 комментариев
Приветствую собрата по разуму(программиста) и предметной области(трейдингу).
avatar
FinSerfing, :-) на самом деле я в гораздо большей степени программист, нежели трейдер. Но предметная область мне очень нравится, масса увлекательнейших задач.
avatar
SergeyEgorov, тут главное понимать, что трейдинг — это высокоагрессивная среда.
Из этого следует как минимум следующее:
1. Люди тут сливаются так же часто, как в бизнесе. Т.е. найти постоянного заказчика почти невозможно.
2. Полно посредников и шарлатанов типа Герчика, которые продают людям надежду и косят свои комиссии(люди тоже конечно виноваты). 90% трейдинга — это околорыночная(обманная) деятельность.
Курсы, семинары, продажа нерабочих роботов, сигналов и прочего хлама.
3. Есть сферы в которые не стоит соваться, потому как там в конечном счёте конкуренция упирается в объём ресурсов(например скальпинг).
4. Не стоит усложнять ни в технических, ни в трейдерских аспектах. сЛОЖНОе не работает.

Это то, что первым пришло на ум.
Думаю, будет ещё.
avatar
FinSerfing, :-) Мы не покупаем и не продаем сигналы, и не проводим семинары, мы в основном стараемся делать то, что умеем делать лучше всего, то есть писать код. А подкасты Герчика я слушал последний раз зимой, и мне как раз показалось что он честно в каждом своем выступлении заявлял что «98% трейдеров сливают», а что он на семинарах рассказывает я не знаю, не был на них.
avatar
SergeyEgorov, то, что не продаёте — это хорошо.
Сие положительно повлияет на репутацию и карму.

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

P/S/ Трейдер без актуального стейтмента — это шарлатан(без исключений).
avatar
FinSerfing, :-) Проблема скорее в том, что многие люди ждут что кто-нибудь придет и вдруг поведает им «секрет вечной молодости», «тайну нескончаемого семейного счастья» или «уникальную методику прибыльной торговли на бирже». Кто-то же покупает книжки «Как научиться играть на гитаре за 20 дней». Раз есть спрос на такие заведомо несбыточные задачи, то есть и предложение.

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

теги блога SergeyEgorov

....все тэги



UPDONW
Новый дизайн