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

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

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

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

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

Читайте на SMART-LAB:
🖥 Софтлайн накопил долги
Разработчик ПО отчитался за 4 квартал и весь прошлый год   Софтлайн (SOFL) ➡️ Инфо и показатели     Результаты за 4 квартал —...
Фото
🔔 Информация о выплате купонного дохода для наших инвесторов
Сегодня, 19 февраля, ООО МФК «ПСБ Финанс» выплатило купонный доход по облигациям ПСБ Фин2P2 (RU000A10E4G8) за купонный период с...
Фото
Вышел эфир RENI для Bazar
Благодарим платформу Bazar за приглашение на разговор!  Хотя, видео вышло с заголовком «Шокирующая правда о рынке страхования в 2026 году |...
Фото
Россети Ленэнерго. Отчет об исполнении инвестпрограммы за Q4 2025г. Опасения оправдались - обесценение съело прибыль
Компания Россети Ленэнерго опубликовала отчет об исполнении инвестпрограммы за Q4 2025г., где показаны финансовые показатели компании по...

теги блога SergeyEgorov

....все тэги



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