В современном трейдинге без программ не обойтись, это несомненно. Торговля осуществляется в Интернете, Интернет состоит из компьютеров, а в компьютерах работают программы. Одну из программ вы наверняка уже используете – это торговый терминал, предназначенный для выставления заявок на покупку и продажу активов. Но этим не исчерпывается все их многообразие.
В этой статье мы поговорим о других программах – индикаторах, скриптах и роботах, которые берут на себя часть рутинных функций, автоматизируют трейдинг и превращают его в «легкую прогулку». Как практик с шестилетним опытом, я уверен, что применение автоматизации в торговле является совершенно необходимым условием извлечения прибыли из финансовых рынков.
Правила использования торговых программ
Знакомство с торговыми роботами обычно начинается с прочтения рекламной статьи про очередной чудо-алгоритм. После этого начинающий трейдер приобретает робота и включает в соответствии с приложенной инструкцией. Дальше возможны варианты: если трейдер нетерпеливый, то он ставит в настройках повышенный риск и робот сливает депозит мгновенно. Более осторожный запускает робота с малым риском, в соответствии с инструкцией, и робот начинает сливать депозит медленно и мучительно.
Но результат один – финансовые потери и разочарование в алгоритмическом трейдинге. Либо в трейдинге вообще. А вся проблема заключается в неправильном подходе к автоматизации. Как действовать правильно и не совершать ошибок – этому и посвящена данная статья. Основное внимание будет уделено торговым роботам как самому перспективному направлению в автоматизации торговли. Дополнительно рассмотрим индикаторы и скрипты, также являющимися программами, помогающими автоматизировать торговлю.
Правило намбер ван – автоматизировать можно и нужно только свою торговлю, которая уже идет и имеет какие-то положительные результаты, либо хотя бы нулевые. Сначала изучаем азы – в чем вообще смысл трейдинга, как работать с терминалом, простые торговые системы. Можно попытаться поторговать с микроскопическим риском, ощутить вкус неудач и побед, понять, подходит ли вам это дело. Если ответ положительный, надо браться за дело по-серьезному.
Как взяться за дело по-серьезному
Сначала необходимо сосредоточиться на создании своей торговой системы. Можно взять для начала чью-нибудь готовую, этого добра в Интернете навалом. Разобраться, в чем ее смысл, вникнуть в нюансы. И вручную протестировать на историческом графике. Если систему невозможно протестировать на истории, сразу ее отбрасываем, нет никакого смысла применять ее на практике в торговле.
На этапе тестирования у вас уже должна появиться масса идей, как эту систему доработать и улучшить. Это уже первый шаг к созданию своей системы. Своя система – это не что-то супер-пупер сверхновое и невиданное ранее. Под словами «своя система» я подразумеваю торговую систему, которую вы сами лично протестировали и знаете ее параметры. Которая показала на тесте результаты, устраивающие вас. Короче, про которую вы знаете все и верите в нее)
Ведь новую систему придумать трудно, по большому счету их всего две – трендовая и контртрендовая. Все остальное – нюансы. Но нюансов и вариантов очень много. Надо быть готовым к тому, что работать с тестированием систем придется долго и нудно. Это работа несложная, но трудозатратная (см. рисунок ниже). И 99% систем, на первый взгляд кажущихся рабочими и прибыльными, в процессе тестирования отправляется в утиль. И это прекрасно – намного хуже было бы выявить это при торговле на реале.
Подготовка к автоматизации
Предположим, вы нашли систему, которая показывает на истории приемлемые для вас результаты. Следующий этап – пробуем ее торговать вручную. Т.е. совершаем сделки в соответствии с правилами выбранной системы. Здесь тоже наверняка выяснятся некоторые нюансы, которые не были видны при тестировании на истории. Например: не хватает маржи для открытия сделок; спред съедает большую часть прибыли, что делает систему убыточной; слишком мало или слишком много сделок в единицу времени.
Иногда даже выясняется, что систему, которая прекрасно выглядела на историческом графике, в реале торговать невозможно. И приходится возвращаться к началу, к новому поиску и тестированию. Если эти напасти вас миновали и все нормально, продолжайте торговать где-то в течение месяца. При этом результат неважен, главное – точно и четко придерживаться системы. В любом случае вы либо будете болтаться около нуля, либо немного заработаете.
По истечении этого месяца у вас неминуемо возникнут вопросы:
- как можно улучшить работу системы, например, увеличить время торговли
- нужно ли тратить так много времени на анализ графика
- зачем совершать так много телодвижений для открытия сделок.
- обязательно ли все это делать вручную.
Наверняка ведь придуманы средства автоматизации рутинных операций, таких, как вычисление объема сделки или нахождения на графике определенной свечной конструкции. И будете правы)
Автоматизация — путь к прибыльной торговле
После ручного тестирования торговой системы на истории и проверки этой системы в реальной торговле начинается следующий этап – автоматизация. Автоматизация в трейдинге – это замена действий, выполняемых вручную в торговом терминале, на те же самые действия, выполняемые программой-роботом. Причем действия эти будут, как правило, выполняться лучше и точнее, что очень важно.
Роботу незнакомы усталость, сомнения, страх, жадность, плохое самочувствие и прочие человеческие проявления, которые могут сгубить даже хорошую и прибыльную систему. Например, человек из-за страха получить убыток испугался открыть сделку, которая в итоге оказалась бы прибыльной. При риске в 1% и соотношении прибыль/убыток 3 к 1 недополученная прибыль составила 3%. А мы помним, что наша цель – 10% в месяц. Потеряна практически треть прибыли, а недополученная прибыль – это убыток.
Если упустить еще две прибыльные сделки, всего две сделки, из-за сомнений и прочих «тараканов», месяц пройдет впустую или даже в минус. А по закону подлости так обычно и бывает – прибыльные сделки пропускаешь, а убыточные ловишь все. Есть в этом какая-то мистика. Точнее, не мистика, а точный психологический расчет у людей по ту сторону графика цены. Так что психологические факторы надо исключать, а то месяц сидеть без зарплаты не очень прикольно. Пусть робот лучше торгует, он железный.
Рост прибыли в результате улучшения исполнения сделок
Ведь разница между хорошей и плохой торговлей небольшая, и с виду крохотное улучшение исполнения сделок дает большой прирост прибыли. Рассмотрим этот очень важный момент подробнее. Хорошее исполнение торговой системы – это точные входы именно в точках, предусмотренных системой, что человеку несвойственно. А свойственно человеку бояться, выжидать, сомневаться «пойдет — не пойдет». И только если «пошло», догонять цену, когда она уже ушла с точки, предусмотренной по системе. А это ломает систему и уничтожает прибыль.
Допустим, при внутридневной торговле количество сделок в день – 1-3, возьмем в среднем 2, т.е. имеем примерно 40 сделок в месяц. Улучшение исполнения каждой сделки в среднем на 5% дает рост прибыли в месяц минимум на 2%. Два процента, Карл! А нам надо суммарно сделать всего 10. Таким образом, только за счет хорошего исполнения благодаря использованию робота, мы значительно продвинулись в сторону хорошей торговли.
Торговые роботы в терминологии МетаТрейдера (а вы наверняка пользуетесь этим терминалом) называются советниками. Советник – это программа, загруженная в МетаТрейдер, которая выполняет действия по заданному алгоритму. Например, при превышении ценой какого-то уровня открывает позицию на покупку и выставляет ордера СтопЛосс и ТейкПрофит на определенном расстоянии. При этом уровень входа и размер позиции тоже вычисляется автоматически в соответствии с правилами торговой системы.
Как видите, ничего сверхъестественного нет. Но главное здесь то, что советник должен выполнять именно те действия, которые вы до него выполняли сами. Действия, которые вы протестировали и которые, как вы убедились, приводят к результату. Результат – рост депозита, т.е. превышение суммарной прибыли в прибыльных сделках над суммарными убытками в убыточных.
Использование индикаторов и скриптов
Кроме советников (роботов), бывают еще индикаторы и скрипты. Индикатор отличается тем, что он не выполняет торговых действий. Он только рисует на свечном графике или отдельном графике значения каких-то вычисленных параметров цены. Например, Moving Average (20) показывает среднеарифметическое значение цены за 20 последних свечей. В принципе, можно вычислить его и вручную, но для того и нужен компьютер, чтобы облегчать рутинную работу.
Опять же, если вы используете какой-то индикатор в торговле, вы должны ясно понимать, что он делает, какие значения вычисляет. Ничего плохого в индикаторах нет, но только в том случае, если они протестированы лично вами и облегчают выполнение правил торговой системы. Например, если вы торгуете в продолжение импульса, правило системы может звучать так: «Открываем сделку после пробоя ценой линии Moving Average (20)».
Большой популярностью в Интернете пользуются т.н. индикаторы-«стрелочники», которые рисуют стрелку вверх или вниз в том месте, где нужно открыть сделку на покупку или продажу соответственно. Удобно, думать вообще не надо – стрелка появилась, ткнул на кнопку, открыл сделку. Настоятельно рекомендую избегать таких индикаторов, по причине, указанной выше – вы не знаете их алгоритм работы.
А программируют их таким образом, чтобы показывать на истории именно то, что вы хотите увидеть – сплошную прибыль (см. рис. ниже). Либо, в простейшем случае, просто «прикручивают» стрелки к какому-нибудь стандартному индикатору МетаТрейдера. Прибыль так не получить, это просто пустая трата времени.
Пара слов про скрипты – это программы, которые при запуске выполняют какое-то одноразовое действие. Например:
- открывают ордера с заранее заданными параметрами;
- закрывают все ордера на графике;
- вычисляют однократно значение какой-либо величины и др.
Скрипты помогают в автоматизации процесса торговли, наряду с советниками и индикаторами.
Где брать роботов
Какие же действия конкретно предпринять, чтобы автоматизировать свою проверенную торговую систему? Есть несколько способов, самый лучший из которых – нанять фрилансера, т.е. человека, который умеет программировать торговых роботов. Он получит ваше техническое задание и удаленно через Интернет сможет реализовать вашу систему в виде программы.
Единственный недостаток этого способа – ваш торговый алгоритм может «уйти на сторону». Но недостаток этот скорее гипотетический. Фрилансеры обычно дорожат своей репутацией, да и сам по себе торговый алгоритм мало кому интересен. Вряд ли у вас он будет сверхуникален, основные методы торговли известны всем, а нюансы все равно останутся у вас в голове.
Лучшая биржа фрилансеров, пишущих советники для терминала МетаТрейдер, находится на сайте MQL5. Это тот самый сайт, на котором предлагают зарегистрироваться при установке МетаТрейдера. Все просто – переходим в раздел «Фриланс» и создаем новый заказ. Сайт берет за свои услуги 10%, т.е. если вы договорились с фрилансером на 50 долларов, он в итоге получит 45.
Сайт русскоязычный, там есть подробная инструкция, как заказать робота. Все сделано довольно удобно и логично. Заказ проходит несколько этапов – размещение, согласование технического задания (ТЗ), демонстрация и т.д. После согласования ТЗ требуемая сумма блокируется на счете заказчика, оплата исполнителю происходит только после подтверждения со стороны заказчика о точном выполнении ТЗ.
Советы по работе с биржей фрилансеров MQL5
- На сайте MQL5 есть система арбитража, т.е. разрешения споров между заказчиком и исполнителем. Арбитраж работает довольно медленно, но за несколько месяцев вполне реально добиться справедливости. Нюанс – при разрешении спора в пользу заказчика 10% комиссии все равно остаются сайту. Так что лучше работать с проверенными и надежными исполнителями, а не искать идеал.
- Раньше на сайте MQL5 несложного робота можно было заказать за 30$. Сейчас цены выросли, адекватные расценки начинаются где-то с 50$. На эту сумму вначале и ориентируйтесь, более сложные и дорогие стратегии имеет смысл заказывать после освоения всех нюансов торговли роботами на простых системах.
- Кроме того, если у вас сложная в программировании система, лучше разбить ее на части и сделать несколько ТЗ и несколько недорогих заказов вместо одного дорогого. В этом случае вы сможете в процессе выполнения одного ТЗ выявить все нюансы, которые наверняка появятся, и скорректировать последующие ТЗ. А программисту в рейтинг пойдет несколько выполненных работ, вместо одной.
- Большой плюс заказа робота у фрилансера – вы досконально разберетесь в работе своей системы. Вы думаете, что и так хорошо ее знаете? Ха! Уверяю, что вопросы, которые вам зададут, никогда не приходили вам в голову и заставят много напрягать мозг. И это прекрасно. Как говорится, хочешь разобраться в каком-то вопросе – возьми себе ученика, желательно тупого. Программисты, конечно, не тупые, но взгляд со стороны будет очень полезен.
Другие методы создания своих роботов
Рассмотрим вкратце альтернативу фрилансерам:
1. Использование графических конструкторов, в которых торговая система рисуется в графическом редакторе из «кубиков» — графических элементов, каждый из которых выполняет одну простую операцию. Примерами таких систем – конструкторов торговых стратегий является Bots Builder Pro или Mission Automate, которые позволяют создавать роботов для МетаТрейдера.
Если вы не привязаны к этому терминалу (МетаТрейдеру), можно использовать, например, TSLab или StockSharp.
Дополнено. Недавно StockSharp получил объемное обновление, для частных трейдеров есть бесплатный тариф. Вот информация с оф. сайта:
Что такое Дизайнер — это уникальная программа, где можно делать торговых роботов без программирования. Абсолютно! Все сделано на уровне блок схем, которые изучают даже дети.😀
Но давайте по пунктам чем отличается в этом плане Дизайнер от других платформ:
- Дизайнер поддерживает и режим кубиков и кодов на C#. Почему? А почему нет!? Программа удобна и для тех, кто совершенно не умеет программировать, и для тех, кто имеет базовые знания.
- Наши кубики не просто ограниченный набор. Во первых, они элементарны, что делает их гибкими в совершенно разных сценариях использования (они НЕ заточены под определенные стратегии, подойдут любые стратегии!). Во вторых, кубики можно создавать самостоятельно прямо внутри Дизайнера. Вы можете создавать кубики из кода, а можете создавать кубики из кубиков!
- Дизайнер умеет сам скачивать нужную историю. Это функция встроена внутри. Но для тех, кто хочет больше удобства — есть Гидра. Гидра качает данные, Дизайнер их использует.
- Дизайнер БЕСПЛАТНЫЙ. Да, именно так! Для всех частных трейдеров у нас сделан специальный тарифный план. В нем вы можете использовать бесплатно один коннектор. На реальных торгах (не демо, настоящие торги)! Любой. Фондовая биржа, крипто биржа, форекс — не важно. Вы можете выбрать любой! И это пожизненная льгота. От вас не потребуется ни ввода карточки, ни прохождения какой-то верификации. Достаточно зарегистрироваться на нашем сайте, установить Инсталлер — входная точка в нашу платформу (Назначение, установка и работа с S#.Installer.) и там выбрать подходящий для вас коннектор.
- Вам не нужно проходить какие-то регистрации по реферальным программам, менять один тариф у брокера на другой. Ваш существующий тариф у вашего существующего брокера уже совместим с нашими программами.
- Вы можете создавать свои коннекторы. Мы не прячем документацию, не просим за нее деньги! Вся документация онлайн. Более того, коннектор к бирже BitStamp в качестве примера лежит на нашем ГитХаб репозитарии. Мы приветствуем всех тех, кто хочет создавать коннекторы, и мы готовы вам помогать.
- Наше ядро полностью открыто. Все алгоритмы, бэктестеры, формат хранения данных и прочее — оно не закрыто, а открыто!
2. Описание алгоритмов торговых систем с помощью языков программирования высокого уровня, специально разработанных для торговых роботов. Эти языки доступны и просты в изучении, и имеют большие возможности в создании торговых программ. Примеры инструментальных программных систем «все-в-одном», использующих свои языки высокого уровня — Wealth-Lab или MultiCharts.
3. Если вы программист и хорошо владеете, например, С++ или Phyton, вам не составит труда самому написать код робота. Например, Tinkoff Invest API поддерживает Phyton. Можно использовать встроенный язык программирования МетаТрейдера, он похож на С++ и называется MQL4 или MQL5 в зависимости от версии терминала. Также на сайте MQL5 есть большая библиотека готовых решений в разделе CodeBase. Имеется большое сообщество программистов на MQL4/ MQL5, можно задать вопрос непосредственно разработчикам терминала. В МетаТрейдере также есть модули интеграции с другими языками.
Хотя я не рекомендую самому заниматься программированием роботов. Не царское дело, лучше тратить свое время на создание своих торговых систем, а наших роботов пусть пишут специально обученные люди. Мы не программисты, а трейдеры. Трейдер – это бизнесмен, а программист у него наемный работник. Не забывайте об этом)
Итоги
Возвращаясь к началу статьи – я не очень понимаю, как можно доверить свои деньги роботу, скачанному из Интернета. Пусть даже приведено описание алгоритма робота и график доходности, и пусть даже они настоящие, а не выдуманные и нарисованные в Фотошопе, что маловероятно. Все расклады на рынке предусмотреть невозможно, и увидев незнакомую ситуацию, вы учтете ее в алгоритме робота либо просто будете отключать его в этом случае.
А незнакомый робот из Интернета просто начнет сливать, и вы не будете знать, что делать. Выключить его или подождать, что ситуация изменится? А вдруг он отыграет убыток и выйдет в прибыль? А вдруг он продолжит сливать? Эти сомнения абсолютно недопустимы. На рынке вы всегда должны четко знать, что делать, независимо от того, торгуете ли вы вручную или с помощью робота.
Таким образом, правильный путь к использованию торговых программ (роботов) в трейдинге с нуля таков:
ЕЩЁ НА ТЕМУ «ТОРГОВЫЕ РОБОТЫ»:
- Алготрейдинг – заработок на автопилоте или ловушка для начинающих?
- 5 мифов о том, кто такой трейдер, чем он занимается и сколько зарабатывает
ФИНАНСОВЫЙ ЛЕДОКОЛ
Мини-книга о том, какую цель ставить в трейдинге, как двигаться к ней, как ускорить это движение и как всему этому научиться