Алготрейдинг что это такое
Как добиться успеха в алгоритмическом трейдинге? (часть первая)
Как добиться успеха в алгоритмической торговле?
Сегодня в открытом доступе много информации об алгоритмической и количественной торговле. Трейдера, которого привлекает эта область, хочет синтезировать как можно больше информации, когда он только начинает. В результате новички могут быть ошеломлены «параличом анализа» и потратить много своего ценного времени на алгоритмическую торговлю, не добившись значительного прогресса. В этой статье я расскажу о том, как я подошел бы к алгоритмической торговле в качестве новичка, если бы только начинал свой путь. Эта статья окрашена личным опытом, поэтому, пожалуйста, прочитайте ее с пониманием того, что я описываю то, что работает для меня. Я не претендую на то, чтобы быть гуру по личному или профессиональному развитию, но мне удалось развить свои навыки алгоритмической торговли до такой степени, что я смог оставить свою основную работу для торговли на рынках – так что, возможно, у меня есть личный опыт и понимание, которые могут быть полезны для вас. В этой статье, я намерен предоставить вам некую «дорожную карту» для начала и достижения максимально эффективного прогресса, поделившись некоторыми практическими вещами, которые я узнал на своем пути в качестве алготрейдера.
Это статья посвящена:
1) Чему научиться, чтобы добиться успеха
2) Как научится этому
3) Важные практические соображения
Что делать чтобы добиться успеха?
Активное практика это гораздо важнее, чем пассивное обучение. Изучение теоретических основ важно, но это только первый шаг. Чтобы стать опытным в алгоритмической торговле, вы должны применять теорию на практике. Чтобы преуспеть в алгоритмической торговле, обычно нужно иметь знания и навыки, которые охватывают ряд дисциплин. Это включает в себя как технические, так и другие навыки.
Технические навыки, необходимые для долгосрочной успешной алгоритмической торговли, включаю в себя:
Программирование
Если вы еще не можете программировать, начните учится. Чтобы заниматься серьезной алгоритмической торговлей, вы должны уметь программировать, так как этот навык позволяет проводить эффективные исследования. Забудьте о программах типа «нажмите и перетащите», которые обещают успех в алгоритмической торговле без необходимости писать код, и если какой либо гуру трейдинга скажет вам, что вам не нужно кодировать, развернитесь и бегите не оглядываясь от него. Примите, что навыки программирования являются предпосылкой для успешной алгоритмической торговли. Через некоторое время вы обнаружите, что вам это нравится.
Полезно ознакомиться с синтаксисом языка на основе С, такого как С++ и Java, но в тоже время сосредоточьтесь на основах структур данных и алгоритмах. Это даст вам очень прочную основу и хотя может потребоваться десятилетие, чтобы стать экспертом С++, я считаю, что большинство людей могут достичь достойного уровня за шесть месяцев напряженной работы. Это подготовит вас к тому, что последует дальше.
Также полезно знать хотя бы один из языков более высоко уровня, таких как Python, R или MATLAB, поскольку вы, вероятно будете делать подавляющее большинство своих исследований и разработок на одном из этих языков. Мое личное предпочтение R.
Когда вы начнете, я не думаю, что это будет иметь большое значение, какой из этих языков высокого уровня вы выберете. Со временем вы начнете узнавать, какой инструмент является наиболее подходящим для выполнения поставленной задачи. Поэтому не слишком зацикливайтесь на своем первоначальном уровне – просто сделайте выбор и начните!
Смысл возможности программирования в этом контексте заключается в том, чтобы обеспечить тестирование и реализацию алгоритмических торговых систем. Поэтому может быть огромной пользой иметь качественную среду моделирования в вашем распоряжении. Как и в случае любой задачи моделирования, важным соображением являются точность, скорость и гибкость. Вы всегда сможете написать свою собственную среду моделирования, и иногда это будет наиболее разумной вещью, но часто вы можете использовать инструменты, которые создали другие люди для этой цели. Это имеет то преимущество, что позволит сосредоточиться на реальных исследованиях и разработках, которые непосредственно связаны с торговой стратегией, а не тратить много времени на создание самой среды моделирования. Недостатком является то, что иногда вы не совсем точно знаете, что происходит под капотом, и бывают случаи, когда использование чужого инструмента помешает вам преследовать определенную идею, в зависимости от ограничений инструмента. Хороший инструмент моделирования должен иметь следующие характеристики:
Есть несколько вариантов, но для новичка, вероятно, нет ничего лучше, чем платформа Zorro, которая сочетает в себе точность, гибкость и скорость с простым языков сценариев на основе C, что делает его идеальным введение в программирование. Платформа постоянно совершенствуется и обновляется, причем улучшения выпускаются примерно раз в квартал. Zorro может выглядеть не очень впечатляюще, но он упаковывает в себе множество функций и является отличным выбором для начинающих. Платформа Zorro широко использует возможности в алгоритмической торговле и включает в себя подробные учебники по началу работы, которые направлены на новичка.
Статистика
Было бы трудно быть успешным алгоритмическим трейдером без хорошего знания статистики. Статистика лежит в основе почти всего, что мы делаем, от управления рисками до изменения эффективности и принятия решения о распределении по конкретным стратегиям. Важно отметить, что статистика станет вдохновением для многих ваших идей для торговых алгоритмов. Вот некоторые конкретные примеры использования статистики в алгоритмической торговле, чтобы проиллюстрировать, насколько важен этот навык:
Помимо этого, наиболее важное применение статистики в алгоритмической торговле связана с интерпретацией результатов тестирования и моделирования. Есть некоторые существенные подводные камни, такие как выемка данных или «P-hacking» — которые возникают естественным образом в результате процесса разработки стратегии и которые очевидны, если вы не понимаете статистику тестирования гипотез и последовательного сравнения. Неправильный учет этих предубеждений может быть катастрофическим в торговом контексте. Хотя этот вопрос невероятно важен, он далеко не очевиден и представляет собой самый значительный барьер на пути к успеху с которым я столкнулся. Пожалуйста, потратьте некоторое время на понимание этого принципиально важного вопроса – я не могу не подчеркнуть насколько он важен.
Также оказывается, что человеческий мозг прискорбно неадекватен, когда дело доходит до выполнения обоснованных статистических рассуждений. Даниел Канеман в книге «Думай медленно… Решай быстро» обобщает несколько десятилетий исследований и когнитивных предубеждений, с которыми люди сталкиваются. Канеман обнаружил, что мы склонны слишком доверять собственным способностям и суждениям, что человеческий разум систематически впадает в заблуждения и ошибки в суждениях, и что мы в подавляющем большинстве склонны приписывать слишком много значения случайности. Важным следствием работы Канемана является то, что, когда дело доходит до выводов о сложной системе со значительным количеством случайности, мы почти гарантированно принимаем плохие решения без надежной статистической основы. Мы просто не можем полагаться на собственную интерпритацию.
«Думай медленно… Решай быстро» — это не книга о трейдинге, но она помогла мне в торговле больше, чем любая другая книга, которую я читал. Очень рекомендую. Кроме того, не случайно работа Канемана создала область поведенческой экономики.
Риск менеджмент
Управление рисками. Существует множество рисков, которыми необходимо управлять в рамках алгоритмического трейдинга. Например, существует инфраструктурный риск (риск того, что ваш сервер выйдет из строя или пострадает от отключения питания, оборванного соединения или любого другого вмешательства) и встречный риск (риск того, что встречная сторона сделки не сможет выполнить сделку или риск того, что ваш брокер обанкротится и заморозит ваш счет). Хотя эти риски, весьма реальны и их необходимо учитывать – больше внимания уделяется управлению рисками на уровне торговли и портфеля. Этот вид управления рисками пытается количественно оценить риск потерь и определить оптимальный подход к распределению стратегии или портфеля стратегий. Это сложная область, и есть несколько подвохов и вопросов, о которых практикующий трейдер должен знать.
Две стратегии распределения, о которых стоит узнать – это распределения Келли и оптимизация средней дисперсии (MVO). Они использовались на практике, но они несут в себе некоторые сомнительные предположения и практические вопросы осуществления. Именно этими предположениями должен заниматься новичок в алгоритмической торговле.
Лучшее место, чтобы узнать о распределении Келли – в «руководстве по математике портфолио» Ральфа Винса, хотя есть множество сообщений в блогах и на форумах о распределении Келли, которые будет легче переварить.
Сложность в реализации Келли заключается в том, что она требует регулярной ребалансировки портфеля, что приводит к покупке в выигрышах и продаже в убытках – что легче сказать, чем сделать.
MVO, за которую Гарри Марковиц получил Нобелевскую премию, включает в себя формирование портфеля, который лежит на так называемой «эффективной границе» и следовательно, минимизирует дисперсию (риск) для данной доходности или, наоборот максимизирует доходность для данного риска. MVO страдает от классической проблемы, с которой алгоритмические трейдеры будут постоянно сталкиваться: оптимальный портфель формируется задним числом, и нет никакой гарантии, что прошлый оптимальный портфель будет оставаться оптимальным в будущем. Базовая доходность, корреляция и ковариация компонентов портфеля не являются стационарными и постоянно меняются часто непредсказуемым способом.
Другим способом оценки риска, связанного со стратегией, является использование Value-at-Risk (VaR), которое обеспечивает аналитическую оценку максимального размера убытка от торговой стратегии или портфеля за заданный временной горизонт и при заданном доверительном уровне.
Наконец, я хочу упомянуть эмпирический подход к измерению риска, связанного с торговой стратегией: перестановка системных параметров или SPP. Этот подход пытается обеспечить обьективную оценку эффективности стратегии на любом доверительном уровне в любое время интересующего горизонта. Под «непредвзятым» я подразумеваю, что оценка не подвержена тенденциям интеллектуального анализа данных или «P-hacking», упомянутым выше. Лично я считаю, что этот подход имеет большую практическую ценность, но он может быть очень дорогим в вычислении и не подходить для некоторых торговых стратегий.
Теперь вы знаете о нескольких различных инструментах, которые помогут вам в управлении рисками. Я не буду рекомендовать один подход по сравнению с другим, но я рекомендую изучить каждый из них, особенно их преимущества, недостатки и предположения. Тогда вы сможете выбрать тот подход, который соответствует вашим целям и который вы понимаете достаточно глубоко, чтобы строить реалистичные ожидания. Следует также иметь ввиду, что существует множество различных ограничений, в рамках которых необходимо управлять портфелями проектов и стратегий, особенно в институциональных условиях.
Последнее слово по управлению рисками: при измерении любой метрики, связанной с торговой системой, учитывайте, что она статична – скорее, она почти всегда динамично развивается со временем. Таким образом, точечное измерение говорит лишь крошечную часть истинной истории. Пример того, почему это важно, можно увидеть в портфеле акций, риск которых управляется путем измерения корреляций и ковариаций различных компонентов. Такой портфель направлен на снижение риска за счет диверсификации. Однако такой портфель сталкивается с проблемами, когда рынки танкуют: в этих условиях ранее некоррелированные активы становятся гораздо более коррелированными, сводя на нет эффект диверсификации именно тогда, когда это необходимо больше всего!
Переходя к трем основным навыкам, которые я описал, я также хотел бы добавить численную оптимизацию, машинное обучение и анализ больших данных, однако они выходят за рамки того, что я бы назвал «минимальными требованиями». Эти навыки приятно иметь в своем инструментарии, они облегчат вашу жизнь в качестве алгоритмического трейдера.
Для авантюрных и по-настоящему преданных делу я также могу порекомендовать изучение поведенческих финансов, микроструктуры рынка и макроэкономики. Опять же, это не минимальные требования, но это даст вам понимание, которое поможет ориентироваться на рынках. Финансы и экономика помогают генерировать торговые идеи, но вам не нужно формальное образование в этих областях.
Наконец, было бы упущением с моей стороны не упомянуть о «нетехнических навыках», которые пригодятся. Особенно важным из них является критическое мышление. Вы будите читать горы информации о рынках на своем алгоритмическом торговом пути, и каждая страница должна быть прочитана критическим взглядом. Заведите привычку проверять идеи самостоятельно и собирать собственные доказательства, а не полагаться на утверждение других людей.
Другие нетехнические навыки, которые стоит культивировать, включают настойчивость перед лицом отказа (вы к сожалению, будете вынуждены отказаться от большинства ваших торговых идей) и способность проводить высококачественны, воспроизводимые и обьективные исследования.
Блог компании AMarkets | Лайфхаки для алготрейдинга: что важно учитывать?
Торговля на финансовых рынках не обязательно должна вестись вручную. Для тех, кто хочет максимально автоматизировать торговый процесс существует алготрейдинг. Это способ автоматической торговли, когда создается алгоритм, описывающий условия открытия, сопровождения и закрытия позиции, после чего эти действия осуществляются программным способом.
Таким образом, задача трейдера сводится к разработке и отладке своей собственной торговой системы, после чего система работает автоматически, без его участия.
Такую торговлю также называют трейдингом с использованием механических торговых систем, которые на Форекс называются советниками.
Механическая торговая система предполагает последовательное исполнение всех без исключения сигналов, без оценки и вынесения суждения относительно текущей торговой ситуации.
Обычно алготрейдинг используют с определенной целью, например, для долгосрочного инвестирования, когда нет возможности много времени проводить перед монитором с целью открытия и отслеживания позиций.
Этапы алготрейдинга
Алготрейдинг подразумевает несколько этапов.
Сбор данных. Нужно сказать, что обычно в программу уже заложены инструменты технического анализа, но все равно перед началом торговли рекомендуется детально изучить интересующий вас инструмент. Важно определиться с такими важными моментами, как правила открытия позиции, расположение уровней поддержки и сопротивления, а также правила расчета SL и ТP и условия пробоя уровней.
Создание торгового алгоритма. После этого переходят к созданию алгоритма торговли. Если у вас есть знания одного из языков программирования, таких как C++, Java и др., то можете написать торгового робота самостоятельно. В противном случае есть специальные конструкторы для алготрейдинга, такие как MetaTrader или TSLab.
Тестирование на исторических сделках. Протестировать алгоритм нужно обязательно, чтобы оценить его эффективность. Для этого выбирают ранее совершенные сделки.
Внедрение алгоритма. После успешного тестирования алгоритм можно внедрять в торговлю. Желательно для начала открывать небольшие позиции, чтобы в случае неудачи не терять крупных сумм.
Также нужно помнить о том, что рынок меняется и средний возраст успешных алгоритмов не превышает 3 года. Периодически нужно проводить мониторинг роботов для алготрейдинга, которые работают более 2х лет.
Преимущества и недостатки алготрейдинга
Как известно, у любой торговой системы есть преимущества и недостатки. Что касается алготрейдинга, то он обладает рядом бесспорных плюсов:
Также не следует забывать и о недостатках алготрейдинга:
В заключение нужно отметить, что алготрейдинг позволяет не только увеличить прибыль от торговли, но и снизить нагрузку на трейдера. Есть много вариаций алготрейдинга, в числе которых парный трейдинг или арбитраж. Использоваться он может как на валютном, так и на фондовом рынках.
Торговые стратегии SWT-метода. Алготрейдинг и вопросы терминологии.
Алгоритмическая торговля, или Алгоритмический трейдинг (Algorithmic trading) — это метод исполнения большой заявки с помощью особых алгоритмических инструкций, когда большая заявка делится ее на множество мелких со своими характеристиками цены и объёма и со своим временем вывода на рынок.
Такие алгоритмы исполнялись автоматически и были придуманы для того, чтобы трейдерам не приходилось постоянно следить за котировками и делить большую заявку на маленькие вручную, а также для того, чтобы однократный вывод всего объема покупок или продаж на рынок не вызывал ажиотажа и сопутствующего изменения настроений участников рынка.
Алгоритмическая торговля в классическом определении не ставит основной целью получить прибыль. Её цель — уменьшить стоимость исполнения крупной заявки при выводе ее на рынок, минимизировать влияние на рынок и уменьшить риск неисполнения этой заявки.
Алготрейдинг в этом случае решал задачи финансового посредника при исполнении крупного заказа от клиента на продажу или приобретение того или иного актива, например в ходе IPO. И приоритеты — минимум издержек при оптимизации цены исполнения.
Встречная сделка в таких случаях обычно не рассматривается в принципе. Задача — исполнить поручение с максимальной выгодой, но на первом месте стоит исполнить.
В последнее время в отечественной практике термин «алгоритмическая торговля» часто ошибочно используется в тех случаях, когда речь идёт об механических торговых системах, в которых сделки также выполняются по определенному алгоритму. Но здесь ставятся совсем другие цели и задачи, главная из которых — получить прибыль, и используются алгоритмы совсем другого плана.
Такие системы могут быть с ручным или автоматическим исполнением сделок. И правильным названием для таких систем автоматической торговли будет термин Торговый робот.
Общим для торгового робота и для системы алгоритмического трейдинга является тот факт, что в обоих случаях сделки производятся автоматически, по заданному алгоритму, без участия человека, которому остаются только функции контроля. Различие в целях и в методах их достижения.
Таким образом, торговый робот — это автоматическая торговая система, основной задачей которой является получение прибыли на основе некоторой торговой стратегии, задающей однозначные правила открытия и закрытия позиций, а также систему управления рисками.
Часть автоматических торговых систем в своей работе охватывает торговые стратегии, основанные на математике и статистике на основе компьютерного анализа рыночной информации на базе сложных математических формул и быстрой обработки данных. И именно такие торговые системы и трейдинг на их основе в отечественной практике чаще всего именуется алготрейдингом.
Что касается мировой практики, то в англоязычной среде для торговых стратегий, основанных на использовании математики и статистики, преимущественно используется термин количественный анализ.
Количественный анализ — это использование математических и статистических методов в финансах, а те, кто работает в этой области, являются количественными аналитиками или на финансовом жаргоне квантами.
По своей сути количественной анализ является подразделом технического анализа, поскольку имеет дело с численной информацией о рынке и с поиском типовых паттернов и условий для выполнения тех или иных операций.
Кванты могут специализироваться в различных конкретных областях, которые помимо разработки торговых стратегий могут включать структурирование производных инструментов, ценообразование, управление рисками, алгоритмическую торговлю, управление инвестициями.
Процесс обычно состоит из поиска в обширных базах данных паттернов корреляции между ликвидными активами, паттерны движения цены, арбитраж и т.д, включая высокочастотную торговлю.
Так что уважаемые разработчики и строители торговых роботов вы не алготрейдеры в изначальном и узком понимании этого слова. Хотя время идет, язык меняется, приобретаются новые смыслы и утрачиваются старые.
Так что уважаемые разработчики и строители торговых роботов вы не алготрейдеры в изначальном и узком понимании этого слова. Хотя время идет, язык меняется, приобретаются новые смыслы и утрачиваются старые.
Так что возможно термин алготрейдинг и приживется в этом значении. По крайней мере в русскоязычной среде уже практически прижился.
Бот с Уолл-стрит. Что такое алгоритмическая торговля криптовалютами
Индустрия вокруг цифровых денег не только трансформирует привычные нам рынки, но и быстро перенимает их технологические достижения. Заимствования коснулись и инновационных решений, используемых в биржевых торгах. Алгоритмический трейдинг криптовалютами сегодня набирает обороты. Давайте непредвзято посмотрим, насколько он эффективен и стоит ли его осваивать начинающим трейдерам.
По оценке ZeroHedge, 84% сделок на мировых биржах осуществляется с помощью инструментов высокочастотного трейдинга (high-frequency trading) — основного вида алгоритмической торговли, при котором специализированные программы в автоматическом режиме ищут возможности для заработка, продают и покупают позиции в доли секунды. Иначе говоря, главные фигуранты процесса — роботы, и в большинстве случаев они ведут дела друг с другом.
В «старом» финансовом мире биржевая активность компьютеризируется ещё с 1970-х. С возникновением централизованных торговых площадок в сфере криптовалют алгоритмический трейдинг перекочевал и сюда; он уже оказывает влияние на волатильность и ликвидность монет. В частности, у отраслевых аналитиков вызывает беспокойство то, насколько ощутимо воздействие ботов на курс биткойна.
Из-за волатильности цифровых денег и конкуренции в бизнесе вокруг них продукты для алгоритмической торговли становятся все популярнее. В массе своей крупные (и наиболее надежные) биржи, включая Bitfinex и Poloniex, не только не препятствуют автоматизированной торговле, но и поощряют ее. Как минимум потому, что получают комиссию с каждой транзакции, вне зависимости от того, теряет или зарабатывает деньги клиент.
В криптотрейдинге возможны различные стратегии. Основные — это арбитраж, который предполагает заработок на разнице в цене актива на разных рынках (допустим, на двух биржах), и маркет-мейкинг, то есть игра на курсах монет и их деривативов.
Системами алготрейдинга пользуются как профессионалы, в том числе на стороне финансовых организаций, так и «любители» — простые обладатели криптовалют, пытающиеся приумножить свой капитал. Решения такого класса разнятся по степени сложности и по принципам устройства. Выделим три основные категории ПО для работы с криптобиржами:
Разберемся, в чем разница между упомянутыми категориями торгового ПО.
В простейшие решения для автоматизированной торговли криптовалютами закладываются готовые сценарии, определяющие их действия в той или иной ситуации на площадке. Логика бота может быть довольно изощренной, однако, чтобы изменить принципы его «поведения», необходимо внести изменения в его код.
У таких решений масса достоинств, в том числе:
Впрочем, по существу, это обычная программа или скрипт, которая действует исходя из предусмотренных в ней триггеров и их сочетаний. Как следствие, для эффективной работы требуется регулярно вручную вносить коррективы в логику бота. Дохода полностью пассивного, вообще без вмешательства бенифициара, боты не обеспечивают. С длинным горизонтом такие боты вполне могут работать в минус.
Главным образом такие программы действуют на основе метрик технического анализа: это один из подходов к прогнозированию состояния финансовых рынков, у которого немало последователей среди трейдеров. Технический анализ применительно к криптовалютам часто подвергается критике с упором на то, что без учета внешних, внебиржевых факторов, строить достоверные прогнозы проблематично.
Бот имеет определенные преимущества (хотя и не тотальное всестороннее превосходство) перед людьми, однако в индустрии не первый год идет гонка вооружений. Так что подобные программы конкурируют не только с живыми трейдерами, но и со своими софтовыми «собратьями», которые могут оказаться гораздо совершеннее и результативнее.
Существуют и более сложные системы для алготрейдинга криптовалютами, и похоже, что будущее именно за ними. Такого рода решения используют «умные» алгоритмы и, как правило, способны к самообучению. В их основе — нейросети и методы machine learning, повышающие глубину и оперативность анализа. Такие продукты дороже и сложнее в функционировании.
Надо отметить также, что ПО для алгоритмического трейдинга третьего типа — роботы-подсказчики (не совершают сделки, но дают рекомендации) — может относиться как к числу простых ботов с заранее прописанной логикой, так и к числу более изощренных систем на базе ИИ. Это довольно перспективная категория продуктов для торговли на криптобиржах: опрос европейских потребителей финансовых услуг показал, что две трети из них готовы к использованию роботов-советников. Программы-советники могут использоваться для ведения дел на криптобирже и в связке с механизмом доверительного управления, когда выбранный вами брокер с помощью API (без прямого доступа к вашему аккаунту) ведет сделки за вас.
Среди наиболее любопытных проектов на ниве «интеллектуальной» автоматизации криптотрейдинга — Signals. По уверению создателей, он призван демократизировать алгоритмическую торговлю на биржах цифровых активов. Сервис представляет собой платформу, на которой можно создавать свои стратегии алготрейдинга и сигналы, по которым торговое ПО должно предпринимать действия, и далее использовать их на практике с применением алгоритмов машинного обучения. Кроме того, пользователи могут зарабатывать на своих сигналах — делиться ими с другими клиентами Signals в обмена за токены SGN.
Стоит ли софтинка выделки
С одной стороны, у алгоритмического трейдинга масса достоинств. С другой — он точно не панацея, тем более для новичков. С точки зрения выявления инсайтов в крупных массивах данных и скорости реакции алгоритмы, использующие анализ больших данных, нейросети и машинное обучение вне конкуренции. Однако многие системы автоматизированной торговли имеют недостатки, помимо перечисленных ранее, например:
Нужно учитывать и то, что готовый бот, в известном смысле, кот в мешке — эффективность работы системы будет трудно предсказать и, тем более, гарантировать. Нельзя забывать и о том, что в мир криптовалют пришли гранды высокочастотной биржевой торговли, включая Jump Trading и Tower Research, а торговые платформы на базе искусственного интеллекта постоянно совершенствуются. И именно топовые игроки рынка будут снимать с него сливки.
В сухом остатке — на сегодняшний день роботизированные трейдинг-решения как минимум способны освободить человека от рутины, предлагать ему торговые стратегии, страховать от потери капитала при колебаниях рынка. Абсолютно точно имеет смысл попробовать в деле роботов-советников. Однако полностью отдавать биржевые операции на откуп ПО преждевременно.