Разработка фичи: как эффективно пройти путь от идеи до реализации

Варианты создания роботов

Существует несколько вариантов создания роботизированного софта для торговли на бирже:

  • Создание роботов для работы на прямом подключении – такие системы работают «в обход» торговой системы брокера, отправляя заявки напрямую в «движок» торговой системы биржи. Этот вариант используют уже опытные трейдеры, которые готовы платить в том числе и за такой способ подключения.
  • Подключение к брокерской торговой системе по API. Некоторые брокеры позволяют подключать внешний торговый софт к своим торговым системам по специальным интерфейсам. Клиенты ITI Capital могут делать это с помощью API SMARTcom. В этом случае роботы могут быть достаточно сложными.
  • Автоматизация операций напрямую в торговом терминале. Наиболее простой, подходящий для новичков способ, заключается в том, чтобы автоматизировать торговлю напрямую в базовой программе любого трейдера – терминале.

Сегодня мы будем рассматривать третий вариант, поскольку он наиболее прост.

Оптимизация

При оптимизации мы задаем диапазон отдельных настроек и простой шаг, с которым он будет меняться. Тестер стратегий составляет все возможные комбинации параметров робота и проверяет его на заданном временном промежутке. Если удается выявить сеты настроек, имеющих хороший результат, то тестер отобразит их.

На подготовительном этапе нужно:

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

  • нежелательно выбирать для оптимизации глубокую историю. Так, в 90-х или начале нулевых годов могут быть проблемы с котировками,

  • выбрать период оптимизации и форвард-теста. Например, если выбран период с 2010 г. по 2020 г., то есть смысл непосредственно оптимизацию проводить на отрезке с 2010 г. по 2018 г. или 2019 г., а оставшиеся 1-2 года использовать для теста. Проверить как советник работает с новыми сетами настроек, чтобы исключить подгонку параметров на истории.

Также нужно определиться с ключевыми для оптимизации параметрами советника. Нужны только те настройки торгового робота, которые сильнее всего влияют на результат торговли. В случае с Zigzager это:

  • Extdepth – отвечает за чувствительность зигзага. Чем параметр меньше, тем больше волн будет выделять индикатор, а это повысит количество сделок,

  • TakeProfit – размер тейк-профита,

  • размер в пипсах, после которого стоп переносится в безубыток,

  • период МА.

Оптимизация может занять продолжительное время. Тестеру нужно будет выполнить несколько сотен/тысяч тестов с разными комбинациями настроек.

Определите драйверы роста

Возьмите три листа бумаги и назовите их «Цель», «Стратегия», «Навыки».

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

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

На третьем — выпишите навыки успешных представителей профессии. Присмотритесь к коллегам по офису или программистам, чью работу считаете образцовой. Желательно найти людей, которые на 3–5 лет опережают ваше профессиональное развитие и занимаются тем, к чему вы только стремитесь. Если подходящих примеров нет, откройте сайты с вакансиями и составьте список навыков, за которые работодатели платят квалифицированным специалистам.

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

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

Схема пирамиды будущего. Чтобы двигаться к цели, программисту нужно проработать стратегию и подобрать подходящие навыки для её достижения

Представьте Python-программиста после стажировки в веб-студии.

Цель. Через пять лет вырасти до старшего разработчика, получать от 150 тысяч рублей в месяц и трудиться в современной российской IT-компании.

Стратегия. Каждые полгода расширять обязанности и увеличивать доход. Найти новую работу, а если не получится — развиваться внутри веб-студии.

Навыки. Освоить фреймворк Django, системы Docker и Kubernetes, базы данных Postgres и MongoDB, сервис Redis, Git и инструменты мониторинга Sentry или Prometheus. Стать уверенным Linux-пользователем. Выучить английский язык и гибкие методологии Scrum, Kanban, Agile. Как плюс — научиться управлять проектами, чтобы в будущем возглавить команду разработчиков.

Теперь проверим, подходят ли навыки под карьерную цель и стратегию:

  Технические требования выписаны из вакансий на должность старшего Python-разработчика. Человек не знает, в какой компании будет работать, и поэтому ориентируется на популярные технологии.

  Программист планирует работать в России, поэтому английский язык можно отложить или вычеркнуть. Для новичка важнее технические скиллы.

  Scrum, Kanban или Agile применяют многие IT-команды. Разработчик готов часто менять компании и может познакомиться с гибкими методиками на практике. Значит, этот навык можно специально не прокачивать.

  Навык управления проектами помогает контролировать рабочую нагрузку и вовремя закрывать задачи. Это знания, которые всегда пригодятся.

Вывод. Оставляем технические навыки и управление проектами. Остальное откладываем, пока не изменится карьерная цель или стратегия.

Программы для создания эксперта

Одним из способов программирования торгового советника является использование специализированных программ. Функционально они мало отличаются от описанной выше платформы TSLab и друг от друга и разработаны для снижения трудоемкости написания исходного кода. Создание самой торговой системы остается за трейдером.

Одной из таких программ является Forex EA Generator, реализующая блочную схему построения эксперта. Программа предполагает наличие минимальных знаний проектирования механических торговых систем.

Программа Gordago Forex Optimizer разработана с функционалом, приближенным к торговой платформе. Помимо создания советника она позволяет тестировать разработку на истории, а так же осуществлять с ее помощью торговлю, в случае наличия доступа к торговым серверам. Работа с программой интуитивно понятна – начало работы начинается с задания условий входа в рынок и выхода из него, задания инструментов анализа рынка. Функционал программы позволяет использовать разработанные эксперты в МТ4.

Полностью в автоматическом режиме эксперты создаются в программе Hlaiman EA Generator. Программа работает с торговой платформой МТ4. Для создания эксперта необходимо добавить на график желаемые инструменты технического анализа и нанести на график стрелки, указывающие места и направления входа в рынок, где осуществил бы вход сам трейдер. После этого программа самостоятельно просчитывает заданные условия входа и разрабатывает алгоритм робота. При этом качество отработки условий входа зависит от качества и количества заданных точек – они должны расставляться строго в соответствии с разработанной стратегией и таких точек должно быть нанесено максимальное количество. К сожалению, программа отсутствует в свободном доступе, что не позволяет провести тестирование созданных с ее помощью советников.

Заключение

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

Всем удачной торговли и профита!

17.06.2016

Запуск торгового робота

Если результат нас устраивает, тогда остаётся только запустить стратегию в работу.

Для этого необходимо нажать кнопку «Enable», после чего появится окно, в котором необходимо указать объём открываемой позиции и, по желанию, можно указать значение Take Profit и Stop Loss в USD. Если эти графы оставить пустыми, тогда позиции будут закрываться по условиям, описанным в торговой стратегии.

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

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

Для удаления стратегии достаточно нажать на крестик в конце строки.

В платформе R StocksTrader, в отличие от терминала MetaTrader 4 и MetaTrader 5, нет надобности постоянно держать включенным компьютер, чтобы робот имел возможность торговать. Услуги VPS сервера здесь так же не требуются. Достаточно запустить Торгового робота на платформе, после чего он автоматически запускается на сервере и начинает работать.

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

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

Delivery и discovery-команды

Для начала нужно знать две вещи. Написание кода само по себе — небольшая часть большого процесса. А также, что над созданием продукта или новых фич работают две команды — Delivery и Discovery.

Сколько нужно людей, чтобы сделать сайт с нуля

Discovery — этап формирования образа продукта и определение того, что и как мы строим. За  этот этап отвечает команда, прозванная в честь самого этапа — Discovery-команда, состоящая из продакт-менеджеров, аналитиков, дизайнеров и исследователей.

Delivery — этап реализации задуманного на первом этапе Discovery, то есть сама разработка или product delivery. За этот этап отвечает команда инженеров с тимлидом и продакт-менеджер.

Delivery — исследуют и проверяют.

Discovery — пишут код и запускают продукт.

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

Как отличить пиэма, тимлида и техлида

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

Раскатываем на пользователей

Когда фича протестирована со всех сторон, можно предлагать её пользователям. Но здесь необходимо сделать несколько шагов.

В первую очередь считаем, сколько экземпляров сервиса нужно развернуть, чтобы выдержать нагрузку. Для ответа нужно изучить результаты тестов производительности.

Далее проверяем, какие нужны шаги для выкатывания фичи. Чаще всего используется постепенная выкатка (canary deployment), так как пользовательские сценарии уникальны и люди могут найти какие-то ошибки.

Убеждаемся, что выкатка релиза не обрушит тайминги, время ответов, количество ошибок и другие метрики.

И, наконец, даже если всё проверили, не включаем фичу сразу для всех, а используем фича-тоглы (feature toggles), задействуя узкий сегмент пользователей. Небольшую часть пользователей легче откатить в случае обнаружения проблем. С помощью фича-тоглов можно провести A/B-тесты и проверить гипотезы.

Внедряем мониторинг

Фичу раскатили, но её целостность и стабильность работы необходимо отслеживать. Для этого настраиваем мониторинг для отслеживания важных метрик и алерты, которые будут предупреждать о сбоях.

Ресурсные метрики: затраты на CPU и оперативную память, скорость чтения с диска, количество операций с БД и тайминги.

Продуктовые метрики: размер чаевых водителю, частота вызова такси пользователем и другие характеристики, свидетельствующие о том, что фича полезна.

Обязательно внедряем процесс устранения и анализа ошибок. Одним из лучших инструментов для этого являются логи микросервисов. Они позволяют проследить путь запроса пользователя по всей распределенной микросервисной системе и выяснить, что именно привело к нештатному поведению. Но устранением ошибки дело не ограничивается. Дополнительно проводится post-mortem анализ — процесс, на котором разбирается ошибка и ищется решение (а не виновный!), способное предотвратить повторение ошибки в будущем.

Результаты оптимизации

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

Типовая ошибка – выбор сета только по максимальной прибыли. Это неверный подход, при выборе нужно ориентироваться на 4 критерия:

  • количество сделок – от 300,

  • просадка на 0,01 лота – до $300,

  • фактор восстановления при бэктесте – от 5. Рассчитывается как прибыль, отнесенная к просадке в валюте,

  • положительный бэктест (участок, на котором тестер подбирает параметры советника) и форвард-тест.

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

Также при отборе параметров нужно учитывать характер работы самого советника. В нашем случае среди результатов были неплохие сеты, но в них использовался очень небольшой тейк-профит и трейлинг-стоп. Это слишком «хрупкие» настройки, они будут чересчур сильно зависеть от брокера, а позиция будет закрываться при малейшем откате, брать их в работу не рекомендуется.

Подобрать один из лучших сетов удалось как раз по этой логике. Им оказался набор параметров с тейк-профитом в 1100 пипсов и переводом в безубыток на уровне 500 пипсов.

Ипотечный кризис 2008 г. Zigzager прошел без проблем. Несмотря на настоящий шторм осенью 2008 г. депозит стабильно рос.

То же можно сказать про начало 20-х годов. Кривая роста депозита не идеальна, но капитал все же рос. Прибыль в валюте невелика, но и торговля велась минимальным лотом, можно увеличить объем сделки и масштабировать профит.

После подбора сета параметров остается установить его. Для этого:

  • в окне настроек советника нажмите на кнопку «Загрузить»,

  • в открывшемся окне выберите папку, где хранятся сеты настроек и сам файл с расширением .set. Настройки загружаются двойным щелчком по файлу или кнопкой «Открыть»,

  • остается нажать на «Ok» в окне с настройками Zigzager.

Стоимость платных биржевых роботов

Среди других минусов использования автоматических советников отзывы называют иногда слишком высокую цену такого удовольствия, как биржевой робот. Сколько стоит хорошая механическая система? Стоимость некоторых биржевых роботов достигает 500-1 тыс. долларов США, а зачастую и превышает эти цифры. Их приобретение не всегда целесообразно, так как несмотря на гарантии продавца или разработчика программы по возврату вложенных средств, запросто можно купить кота в мешке. Стоит, кстати, отметить, что в интернете много достаточно хороших автоматических советников, которые распространяются на бесплатной основе, и в то же время способны принести трейдеру постоянную прибыль.

Определитесь с вашим проектом

Первый шаг — всегда решать, каким проектом вы хотите заняться. В Интернете есть множество предложений, подходящих для разных уровней навыков. Или вы можете придумать его самостоятельно!

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

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

Что касается проектов по созданию резюме, убедитесь, что все, что вы решите, имеет какое-то отношение к интересующей вас должности. Эти проекты имеют большое значение для развития ваших профессиональных способностей!

На этом этапе не беспокойтесь о том, как вы выполните свой проект или какие инструменты вы будете использовать. Пока просто оставьте его в фазе «что, если».

Выберите что-нибудь веселое

Вы потратите много часов на этот проект, убедитесь, что вы выбрали то, что вас волнует и делает счастливыми. Не бойтесь пропускать общие темы проекта, если у вас есть идея, которая отражает вашу уникальность!

Плюсы и минусы роботов для торговли на рынке Форекс

Торговля с помощью робота или алгоритмический трейдинг, как и любой другой вид торговли обладает своими сильными и слабыми сторонами.

К плюсам торговли с помощью торгового советника можно отнести:

  • Торговый робот приносит доход круглосуточно. У него нет графика и распорядка, а также деления на часовые пояса. Один раз установили, включили автоторговлю и все. Робот будет работать пока его не выключить.
  • Советник (робот) не имеет эмоций и стресса. Бездушная программа работает по заложеному в нее алгоритму, ни шагу влево или вправо, как бы не вел себя рынок. Робот анализирует рынок и совершает сделки не прислушиваясь к внутреннему голосу и интуиции.
  • Скорость работы гораздо выше чем у трейдера. Принятие решения по сделкам (открыть или закрыть) происходит почти мгновенно, за доли секунды, и не требуют вмешательства человека.
  • Возможность одновременной торговли на нескольких валютных парах. Надо лишь загрузить настройки для каждой валютной пары и запустить робота. Человеку же очень сложно переключаться между активными парами, как правило торговля идет только на одной.
  • Не нужно делиться прибылью с роботом.  Все что заработает советник, остается у вас на балансе. В случае же доверительного управления вы как правило отдадите от 20 до 50% своего заработка.

К условным минусам можно отнести:

  • Для работы советника нужен стабильный интернет. Компьютер, на котором будет установлена программа торговли (как правило Meta Trader) должен быть всегда включен и иметь доступ в интернет. Обрыв связи приведет к остановке торговли и нежелательным результатам. Выходом из данной ситуации служит подключение к отдельному VPS серверу, на котором будет запущен Мета Трейдер. Данный сервер, как и сам робот входит в набор инструментов TradeCapital, разработчики этим значительно упростили нам жизнь. Все обновления торгового советника происходят автоматически, без нашего вмешательства. Из сторонних VPS серверов, наверное самым лучшим решением является ForexBOX. Недорого и надежно.
  • Без тестирования и рекомендации сложно выбрать торгового робота. Если Вы для пассивного дохода решили выбрать торговлю роботом на рынке Форекс, то возможна ситуация, что выбранный Вами советник не оправдает надежд и сольет весь депозит. Сейчас в интернете предлагается много роботов, бесплатных и дорогих. Но согласитесь, что неразумно тестировать каждый торговый советник на надежность и доходность. Так никаких денег не хватит…
  • Отсутствие обновлений и техподдержки (не относится к качественным продуктам). Как правило погнавшись за низкой ценой можно получить однодневный и некачественный продукт, который на всю жизнь отобьет желание зарабатывать на рынке Форекс и оставит неприятный осадок.
  • Не учитывает новостной фон. Робот в своей торговле использует заложенный в него алгоритм и оперирует только математическими расчетами и ценами на валютные пары. Но все сильные колебания на рынке зависят от внешних факторов — войны, эпидемии, политические баталии… В этих случаях в работу советника требуется вмешательство трейдера.

Создание программных кодов

Важно! Я веду этот блог уже почти 10 лет. Все это время я регулярно публикую отчеты о результатах публичных инвестиций

Сейчас мой публичный инвестпортфель — более 5 000 000 рублей.

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

Подписаться

Хорошую базу для познания MQL создает владение языком программирования «С++», но и без этих знаний язык MQL хорошо поддается изучению. Многие рядовые трейдеры, изучающие язык самостоятельно, считают, что для написания несложных скриптов и программ достаточно самостоятельного изучения языка программирования в течение недели.

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

Программирование роботов, в большинстве случаев, производится в специальном разделе торгового терминала MetaTrader4 – MetaEditor. Это многофункциональный и удобный специализированный редактор, с помощью которого можно самостоятельно создавать любые торговые алгоритмы.

Достоинством редактора является то, что созданные алгоритмы могут быть запущены сразу после создания, так как они автоматически появляются в торговой платформе. MetaEditor в МТ4 обладает такими характеристиками, как:

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

Платформа StockSharp является библиотекой торговых экспертов, написанных на языке С. Работа на базе этой платформы требует знания языка программирования, изучение которого может занять достаточно длительное время.

Платформа TSLab представляет собой визуальный редактор, собирающий торговый советник из функциональных блоков. Блоки написаны на языке С#, но их код в процессе программирования скрыт от пользователя. Существует и возможность использования языка C# и комбинирования программирования с визуальным редактором. Так можно дописывать отсутствующие в стандартном наборе элементы.

Промежуточной по функционалу, между платформами StockSharp и TSLab является платформа WealtLab. Она имеет визуальный редактор, правда, не очень хорошо развитый, и возможность использования языка программирования. Достоинством является отличный тестер стратегий.

Рейтинг
( Пока оценок нет )
Editor
Editor/ автор статьи

Давно интересуюсь темой. Мне нравится писать о том, в чём разбираюсь.

Понравилась статья? Поделиться с друзьями:
ПрофиСлайд
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: