Sergey Cellinsky
Sergey Cellinsky личный блог
19 марта 2015, 22:18

торговая платформа

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

Эпоха smartx

Этот раздел наверное будет самым большим, т.к. именно с этой платформой я собирал все шишки и он оставил самые яркие воспоминания. Первым брокером для меня был/есть itinvest, со своей платформой smart-trade. Появление продукта smart-x с модулем tradescript, открыло для меня мир железных болванов, которые покупают/продают, а ты такой сидишь, потягиваешь оранжад и рассматриваешь каталог яхт (игрушечных разумеется). Порог вхождения в этот инструмент крайне низкий, а главное, он тесно интегрирован с торговой платформой. Т.е. я получил то-же рабочее место трейдера + средства автоматизации.  Закладываем условия на лонг-селл/шорт-ковер, запускаем сценарий и наслаждаемся эффектом. Проблемы поперли через некоторое время. Первый звоночек прозвенел, когда выяснилось, что после разрыва соединения терминалом и автоматическим реконнектом, бот прекращает работу и не запускается. Т.е. терминал реконнект умеет, а tradescript нет. Сюрприз был неприятный, т.к. обнаружилось все в конце дня, когда я собирался подсчитать свои миллионы, а вместо этого на меня из терминала смотрел жырный лось, т.к. реконнект случился аккурат, как бот вошел в позицию. Как следствие, он из нее уже не вышел, и пока я бегал по офису занимаясь работой, животное отжиралось, а депо кукожилось. После этого я ввел в правило, заглядывать в терминал каждый час. Еще через какое-то время, у меня взгляд на терминальное окно приобрел автоматический характер, я периодически оглядывал состояние и все сворачивал продолжая работать работу, которая в отличии от этой ваше биржи меня кормила. Очередной взгляд вскольз, зацепился за что-то странное… Где-то я это видел… где-же… где-же. блин, да я это с утра видел, время 15 часов, а графики застыли на 12. С утра снова был вход, рестартуют терминал, здравствуй очередной лось. Теперь контрольный осмотр включал в себя разглядывание графика и проверке, что он подает признаки жизни. Третий технический лось обнял, когда подводя итоги дня, я выяснил, что почему-то бот сидит в позиции с сайзом на всё депо. Иссесно в минусе да еще каком. После серии экспериментов, выяснилось, что с какой-то вероятностью, у движка теряется счетчик размера позиции. Т.е. он показывает, что позиция например 10 лотов, а внутри себя считает что 0 и если приходит сигнал в туже сторону, добирает позицию еще. В итоге, если у нас условие входа в позицию повторяется, то он начинает набирать ее пока хватит средств на ГО. В периодическое ТО, добавился пункт разглядывания размера позиции, с последующим рестартом терминала, если бота заклинило. Времени на работу оставалось все меньше. Последней каплей, стал глюк с повисающим стаканом заявок. Я фиг знает, какая была связь, но, в терминале бывало вис стакан заявок, это приводило к тому, что сигнал на вход пришел, а войти мы пытаемся по цене из стакана. Если он завис полчаса назад, то и входить бот будет ценой получасовой давности и понятно, с каким результатом. На этот раз лося не было, была упущенная прибыль. Я пошел на форум брокера, написал письмо с большим количеством слов, которые в приличном обществе не произносят, потом посчитал до десяти и стёр все нахрен, т.к. толку от таких писем не было никакого. Разработка трейдскрипта у брокера почти неживая, выглядит так, что человек его написавший уволился и заниматься им банально некому. На вопросы поддержка как может отвечает, но особого интереса к ликвидации багов не проявляет. В общем, в этом доме нам не рады. Итого: как бесплатное знакомство с алготрейдингом да. Как автоматическая система — категорическое нет. Оставлять ее без присмотра, примерно тоже самое, что оставить на скамеечке неприметную сумку с деньгами. До первого любопытного гражданина.

tradematic trader

Наевшись вдоволь со скриптом, начал искать что нибудь другое. В списке торговых систем у брокера был tradematic trader с весьма гуманным прайсом и приличным внешним видом. Оплатив и скачав, я был просто в восторге. По сравнению с трейдскриптом — небо и земля. И сам реконнектится, и ботов перезапускает, и размер позиции не теряет — просто экстаз. Поначалу. Первое, что меня насторожило, страный вид графиков, довольно посредственная работа той части, которая отвечала за отрисовку индикаторов и проблемы с эргономикой ui. Закрались мысли, что софт таки сыроват, но эйфория после трейдскрипта всё это замылила и я перся как удав по стекловате. Быстренько заколебавшись делать логику из конструктора, перешел на C# (на нем кажется сценарии программируются), навалял роботов и стал ждать, когда разбогатею. Ждать пришлось недолго, т.к. с первым залпом ко мне прилетел лось по имени 'программа совершила недопустимую операцию'. Она случилось всего однажды, но запомнилось надолго, т.к. столько денег я до той поры еще не терял. Вторым номером я встретился со сбоем связки quik + tradematic (к этому времени появился брокер с квиком), когда в ТМ переставали поступать данные по инструментам или как вариант, он не мог отправить заявку. Это сопровождалось воплями об таймаутах, требовало внимания в процессе работы, что уже начало раздражать. У меня начали закрадываться подозрения, что производителя торгового софта экономят на программистах, и как следствие продукты, которые работают с деньгами, уступают в качестве какой нибудь gnu софту, который пишут студенты бесплатно, зато с интересом.  Добивающим сюрпризом, стала ошибка в работе паралельных стратегий, когда одна стратегия снимала заявки другой работающей по тому-же инструменту. Следует отдать должное техподдержке, они отвечали на вопросы в отличии от itinvest, помогали как могли, исправляли ошибки (в т.ч. была исправлена и проблема с паралельными заявками) но от бета-тестинга за свои деньги я уже устал и подумал, что надо вновь пускаться в путь. (сейчас заглянул на сайт ТМ, порадовался, что у них появилось интегрированное sms-информирование о событиях, как же мне этой хрени не хватало). В общем, как первое знакомство за небольшие деньги и с приемлемым качеством — вполне себе. А возможность писать ботов на C# позволяет творить практически что угодно. Приглядывай знай, да радуйся. Но, у меня к тому моменту появилась новая любимая жена...

tslab

Это изделие внушало своей ценой. Мало того, оно само стоило ничего так, так еще требовало активации интерфейса smatcom (у itinvest) — который тоже не бесплатен. Правда с квиков интегрирвалось на халяву. Я решил, что поскольку полимеры все равно уже тогой, хоть посмотрю что втюхивают народу эти граждане за такие денжищи… в общем, уже год я сижу на тслабе. Это поделие однозначно лучшее из того, что мне попадалось в части вылизанности и качества. Проблем у него тоже хватает, но они не носят фатального характера. Тех поддержка в зад не целует, но на корректно поставленые вопросы отвечает оперативно. Достает необходимость ежемесячной активации (я бы предпочел заплатить за год вперед честно говоря, т.к. они присылают ключи когда до експайра предыдущих остается три дня, если где-то эта технология даст сбой, время на реакцию уже не остается, очень напрягает такое постоянное хождение по грани). Однако за прошедшее время программа ни разу не заклинило наглухо. Если даже что-то там в потрохах скрипта кривило и он повис, в логах появляется надпись что истекло время ожидания и по крайней мере на это можно успеть отреагировать, а не подсчитывать убыток к вечеру.

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

среда исполнения

Понятно что среда исполнения программной платформы — windows, ибо под unix like к сожалению никто не пишет, но оно и понятно. Основной потребитель сидит под виндой, а профи напишут себе торговую платформу сами хоть под андроед. Но вопрос в другом — а где держать эту винду. На домашнем компе — не вариант. У меня аллергия оставлять включенным комп дома, мало-ли что пил китаец, когда паял блок питания. На работе — тоже радости мало, надо договариваться что бы просверилил дырку в корп. фаерволе, это значит обьяснять зачем да почему — в общем не вариант. Остается аренда. Я начинал с более дешевого, когда арендуется vps (virtual private serveк), там ставят лицензионную винду и дают доступ по rdp. Пробовал разных провайдеров, в итоге остановился на ihc.ru, который в отличии от трех предыдущих (даже не вспомню каких) был не таким жадным и как следствие арендованая винда не напоминала дохлую рыбу пытающуюся переползти песчаный бархан раз, связь за все время что я у них был — пропала по-моему всего один раз и то это было связано с каким-то жестким форс-мажором уровня ЦОД. А связь и вычислительная мощность, эта те вещи без которых самый чудесный алгоритм сольет депо и полетит в корзину. Однако, со временем во мне разыгралась параноя, что мои гениальные разработки (которые когда нибудь сделают меня миллионером) украдет какой нибудь излишне любопытный админ, просто покопавшись в имидже ОС. В итоге vps был заменен лезвием в блейде у одного из выделенных хостеров, на тушку был взгроможден линух, на линухе виртуальная машина с виндой на зашифрованом томе, ключ от которого спрашивается при каждом включении машны. Ключ, 12ти разрядное шестнадцатиричное число, записаное со смещением на обратной стороне столешницы стола гендиректора и на перилах одного из этажей моего подъезда (доктор, куда вы меня ведете???).

В виндах установлен cygwin (за этот проект я готов расцеловать разработчиков во обе щёки), и на нем написана обвязка, которая занимается третьей очень важной вещью. Она непрерывно обнюхивает и рассматривает запущенный tslab на предмет, а не наделал-ли тот в штаны, и при обнаружении аномалий, начинает орать по sms и jabber. Перед началом торговой сесии, оно следит, что связь с брокером есть и канал уведомления фурычит, послав об этом контрольное сообщение. На случай, если система отвалится от интернета и не сможет подать сигнал бедствия, в другой конторе арендован сервис мониторинга, который постоянно пинает сам линукс, на предмет его доступности из интернета и живости, а так-же винду, проверяя, что в логах tslab каждые 5 минут появилась новая запись с датой близкой к текущей.  Для контроля связности тслаб-брокер, каждый час инициируется сделка купли-продажи по контрольному инструменту и проверяется, что заявкии исполнены, а не были пристрелены где-то по дороге. В общем, спустя год после начала эпопеи, удалось получить систему, которую не очень страшно оставлять один на один с деньгами в течении дня.

Суммарно, наверное лучшего из попсового инструментария выцедить невозможно. Дальнейшее улучшение, только отказ от поприетарного ПО типа tslab, т.к. очень дискомфортно понимать, что схлопнись эта контора и ты будешь очень быстро искать что-то другое и опять отлаживать, тюнить и прочий геморрой. А значит, надо писать что-то свое совсем с нуля, с завязкой на стандартные интерфейсы биржи, что бы случись и брокера поменять с минимальным геморроем, короче, целая эпопея заниматься которой имеет смысл, только став профессионалом.
23 Комментария
  • Good Amigo
    19 марта 2015, 22:47
    как много букв.
  • Redline
    19 марта 2015, 22:52
    >>Пробовал разных провайдеров, в итоге остановился на ihc.ru

    Какие еще пробовали?

    Я свой vmco собираюсь менять. Сейчас залез на хабр читать обзоры. Многие ultravds хвалят. Они как раз 21 числа начинают снова сервера выдавать. Не пробовали их?
    • Chepell
      20 марта 2015, 00:01
      Redline, ultravds могу рекомендовать. Более полугода на нем просидел. Отвалы были 2 раза. Первый раз само как-то восстановилось, а второй раз в скайп тп написал и через 10мин исправили, говорят что-то со свичом в стойке было.
      За такие деньги вариант ну просто идеальный!
    • Marco
      20 марта 2015, 08:13
      Redline, ultravds пользуюсь, поддержка вменяемая и оперативная, связь приемлемая. С полгода назад был серьезный инцидент с системой хранения, затронувший мою виртуалку. Время простоя — пара дней. :(( Данные восстановили, но с потерями. :((
  • Григорий
    19 марта 2015, 23:12
    цену в таких статьях сообщать обязательно.
  • Михаил Пиписькин
    19 марта 2015, 23:23
    ТС, самое страшное то, что ты так и не понял ничего. Любую систему нежно тестировать, e2e-test.
  • dimaAg
    20 марта 2015, 10:01
    Согласен, что нет на рынке готового софта для алготрейдинга, удовлетворяющего потребностям алготрейдинга даже начального уровня, в первую очередь по надежности исполнения алгоритма.Сам сижу последние несколько лет на трейдматике. Периодически сморю, что нового в tslab, пока все не очень радует.
    • Василий
      10 апреля 2015, 03:08
      dimaAg, и как вам работа в Tradematic? планирую к нему подключаться но как то смущает полуживой (даже скорее мертвй) тамошний форум — да и сам сайт немного подзаброшенным кажется
  • SoftAlgoTrade
    20 марта 2015, 10:04
    Sergey Cellinsky, Спасибо за интересный и независимый обзор!

    Полностью с Вами соглашусь. В наше время серьезные проблемы с платформами для алготрейдинга. Никто не в состоянии предложить качественное комплексное решение. В свое время я пришел к аналогичным выводам и понял, что если хочешь сделать хорошо, то нужно делать самому.
    Задача в реальности оказалась на много сложнее! Спустя полтора года бессонных ночей и упорной работы получилось написать свою платформу!
    Кстати, в обзоре Вы затронули только вопросы проторговки и исполнения стратегий. А как же тестирование и оптимизация? Какие решения используете?
  • dimaAg
    20 марта 2015, 12:58
    Тестирование можно в wealthlab делать
    • SoftAlgoTrade
      20 марта 2015, 13:55
      dimaAg, изучив систему тестирования и оптимизации изнутри могу с уверенностью сказать, что проторговывать стратегии нужно в том же комплексе в котором тестируете. Если взять одну и ту же стратегию и протестировать в разных программах, то с большой вероятностью вы не получите идентичные результаты! Тестирование это эмуляция торговли с большим количеством условностей и каждый считает их по-своему, а не редко многие платформы вообще не учитыват некоторые очень важные моменты.
      Поэтому протестировав в Велсе, а потом проторговав в другой программе Вы можете получить совершенно неожиданный результат! Архитектура всего ПО должна быть единой, только так можно минимизировать ошибки.
      Вот мне и интересно как пользователи решают проблемы переноса стратегий из одних программ в другие.
      • dimaAg
        20 марта 2015, 14:44
        SoftAlgoTrade, Действительно, такое бывает, что при тестировании одной и той же системы в wl и тм получаются разные результаты.Могут формулы индикаторов названных одинаково различаться или время бара, в тм он обозначается по началу интервала например, или цена входа+проскальзывание может дать несуществующую цену и в тм эта сделка учитывается, а в wl она отбрасывается и т.д. и т.п. Но как говорится, надо учить матчасть, разбираться в этих ньюансах и тогда все будет ок при переносе из проги в прогу.
        • SoftAlgoTrade
          20 марта 2015, 15:02
          dimaAg, конечно, это реально, но постоянно держать в голове все эти нюансы довольно хлопотное дело, а в сложных торговых алгоритмах порой нереализуемое. Вообще, мне кажется, что с архитектурой у алгоплатформ серьезные проблемы. Все подходят к решению однобоко: кто-то пилит коннекторы, кто-тестирует, кто-то оптимизирует. И в принципе их можно понять, каждая из задач уникальная и требует значительных усилий для решения.
          Я не стал искать простых путей и решил все задачи в комплексе:
          www.softalgotrade.com/software-architecture/
          • dimaAg
            20 марта 2015, 15:39
            SoftAlgoTrade, надо будет поизучать, как вы решили эти задачи комплексно в вашем софте, может действительно, то, что надо!
  • ra81
    27 марта 2015, 08:59
    Чтобы не париться с активацией подключите нормального брокера, который просто будет списывать с вам деньги и все. Ваши попытки юзать тслаба через смартком или квик = попытки выбрать самый паршивый вариант из предлагаемых.
      • ra81
        28 марта 2015, 09:17
        Sergey Cellinsky, могу точно за финам говорить. Они снимают просто каждый месяц со счета средства и все. Так же алор как я знаю. Вообще стоит написать support.tslab.ru и вам ответят как и что.

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

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