Как написать робота для торговли на бирже: Как написать торгового робота — ITI Capital на vc.ru

Содержание

инструменты для начинающих / Хабр

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

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

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

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

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

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

Как это работало раньше

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

Меню для подключения Excel в одном из торговых терминалов прошлого поколения

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

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

Как это работает теперь: изучаем язык TradeScript

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

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

Плюсом TradeScript по сравнению с Wealth-Lab и тем же Metastock является отсутствие необходимости создания сложных конструкций и использования различных коннекторов для передачи приказов в торговый терминал. Конструктор роботов встроен в SMARTx, что позволяет добиваться значительно более высокой надежности и быстродействия.

Вот пример торговой стратегии, записанной на TradeScript:

Buy Signals 

# Покупаем, если момент и инерция имеют однонаправленный тренд 

TREND(EMA(CLOSE, 20), 15) = UP AND 

TREND(MACD(13, 26, 9, SIMPLE), 5) = UP 

Sell Signals 

# Продаем, если момент и инерция имеют однонаправленный тренд 

TREND(EMA(CLOSE, 20), 15) = DOWN AND 

TREND(MACD(13, 26, 9, SIMPLE), 5) = DOWN 

Exit Long Signal 

# Выходим, если тренд инерции и момента имеет противоположное направления 

TREND(EMA(CLOSE, 20), 15) = DOWN OR 

TREND(MACD(13, 26, 9, SIMPLE), 5) = DOWN 

Exit Short Signal 

# Выходим, если тренд инерции и момента имеет противоположное направления 

TREND(EMA(CLOSE, 20), 15) = UP OR 

TREND(MACD(13, 26, 9, SIMPLE), 5) = UP

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

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

Что еще: отладка на тестовом доступе

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

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

Полезные ссылки по теме инвестиций и биржевой торговли:


Как создать торгового робота и не потерять время

Чтобы создать торгового робота, нужна торговая система

Торговля на финансовых рынках сопряжена с множеством рисков, в числе которых самый главный — это риск совершить ошибку при принятии торгового решения. Мечта каждого трейдера – поставить вместо себя торгового робота, автомат, который всегда в отличной форме, не знает усталости и не подвержен людским слабостям: страху, жадности и нетерпению.

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

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

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

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

Торговые роботы и Forex

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

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

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

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


Как приступить к созданию торгового робота?

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

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

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

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

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

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

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

От трейдера в этом случае требуются базовое знание индикаторов технического анализа, умение подготовить необходимые ценовые данные и навыки работы с конкретным пакетом по работе с нейронными сетями. Главным недостатком такого подхода является то, что полученный с помощью специализированных инструментов по работе с нейронными сетями торговый автомат на самом деле является «черным ящиком» — принципы его работы неизвестны самому трейдеру, и нельзя в общем случае предсказать, какая фаза рынка ему не понравится.

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

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

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

Есть еще и пятый путь – попытаться купить готовую торговую систему в виде торгового робота и торговать с его помощью, при этом трейдер выступает в качестве оператора или настройщика. Такой вариант существенно экономит время (не требуется изучать множество новых вещей) и позволяет сразу же окунуться в мир автоматической торговли.

Главный недостаток такого подхода проистекает из его достоинств – вы не знаете, как работает данный торговый робот и на каких принципах он построен. И если даже продавец предоставил вам подробное описание заложенной в нем торговой системы, вы никогда не будете в ней уверены до конца.

Впрочем, 100%-ную гарантию не дает ни один подход, кроме депозита в банке. Но это не совсем то, за чем идет человек, интересующийся биржей и возможностями спекулятивного преумножения капитала.


Какой путь в автоматический трейдинг выбрать трейдеру?

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

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

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


Первые шаги по созданию торгового робота

Для написания автоматической торговой системы требуются навыки программирования и знание всех тонкостей обработки торговых запросов. Но вы можете на первом этапе начать знакомство с уже готовыми экспертами – торговыми роботами из бесплатной библиотеки Code Base.

Скачайте любой эксперт (торговый робот) и запустите его в тестере стратегий клиентского терминала MetaTrader 4 или MetaTrader 5. Выберите один участок истории с ярко выраженным трендом и второй участок, на котором цена находится в диапазоне/флете. Проведите оптимизацию входных параметров эксперта и посмотрите, как они отличаются на этих двух участках.

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

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

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

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

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

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


Программирование торгового робота

Вы изучили/изучаете язык программирования MQL4 или MQL5 и готовы написать свой первый советник для клиентского терминала MetaTrader. Здесь тоже возможно несколько вариантов.

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

Во-вторых, вы можете задавать вопросы на форуме MQL4.community или MQL5.community, если самостоятельно не смогли разобраться в каких-то моментах. Обычно остальные участники сообщества охотно помогают новичкам, если видят их искреннюю заинтересованность в изучении предмета.

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

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

«Всё украдено до вас»


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

Военные во всех странах склонны к чрезмерному уровню секретности, и не зря на этот счет существует множество анекдотов, среди которых есть и такой: «Военная тайна заключается не в том, что вы это знаете» — говорит инструктор курсантам военного училища, — «а в том, что это знаете именно вы». С торговыми системами ситуация примерно такая же: большинство трейдеров используют простые известные торговые идеи, только с небольшими доработками, например, в виде использования трейлинг стопа (Trailing Stop) или подтверждения сигналов от трендовых индикаторов.

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

Поэтому вы можете смело брать доступные в исходном виде коды торговых роботов и пытаться найти правильное их использование на тех или иных инструментах и таймфреймах. Тут на память сразу приходит другая избитая поговорка: «Вы не любите кошек? Вы просто не умеете их готовить!» В это трудно поверить, но вероятность того, что вы придумаете что-то принципиально новое, очень мала. Тут главное всё правильно сделать самому из доступных ингредиентов и не думать, что кто-то сверхумный пользуется какими-то секретными разработками из лабораторий NASA. В этом и заключается секрет Грааля.


Редкая птица долетит до середины Днепра…


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

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

Отклоняясь немного от темы, приведем в пример легендарную группу «Черепахи», которая успешно торговала на множестве рынков в конце 20-го века. Почитайте «Путь черепах», и вы поймете, что главное в профессии трейдера именно железная внутренняя дисциплина, а не какая-то суперсекретная система. Увы, большинство не сможет торговать по прибыльной стратегии, даже если получит её даром.

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

Именно для борьбы с подгонкой в тестере терминала MetaTrader 5 существует возможность форвардного тестирования на найденных при оптимизации параметрах системы. Если результаты форвард-тестирования торговой стратегии не сильно отличаются от результатов, полученных на участке оптимизации, то есть надежда, что торговый робот будет достаточно стабилен некоторое время после его запуска в онлайн-торговлю. Длина интервала для проведения оптимизации параметров и длительность этого «некоторого времени» зависят от конкретной торговой системы.

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

Иллюстрацией для такого примера могут служить результаты Чемпионата по автоматической торговле Automated Trading Championship, проводимого уже в течение многих лет. Все участники перед началом соревнований проходят автоматические проверки присланных экспертов — торговых роботов на интервале с января по конец июля. Главным требованием для прохождения такой проверки является полученная прибыль за восемь месяцев тестирования. Но менее половины допущенных к Чемпионату роботов остаются в плюсе после трехмесячной автономной работы.

Вы также можете попробовать свои силы в создании и правильной настройке своего торгового робота, чтобы принять участие в Чемпионате и получить результаты форвард-тестирования своего детища. Тем более что участие является бесплатным, а призы ощутимыми. Как говорится  — «Welcome»!

Заключение

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

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

Мы не даем здесь конкретных рекомендаций по изучению языка MQL4 или MQL5, на эту тему написано много других полезных статей. Цель данной публикации состояла в том, чтобы дать начальное представление о том, как и с чего начать создание собственного торгового робота для терминалов MetaTrader 4 и MetaTrader 5.

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

как работают и могут ли они увеличить доходность

Сейчас на бирже очень популярны торговые роботы. Есть люди, которые активно этих роботов продают: якобы они автоматически торгуют на бирже, делают это быстрее человека в 1000 раз, и можно получить прибыль в размере 20—50% в месяц. Куча положительных отзывов, негативных крайне мало. Но мне не верится, что у этих инструментов инвестирования такая доходность.

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

Алексей

Алексей, действительно, торговые роботы, которые автоматически торгуют на бирже, существуют. И да, они могут делать это в 1000 раз быстрее человека.

Михаил Шардин

строил торговых роботов

Профиль автора

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

Что за роботы и для чего они нужны

Торговый робот — это не двуногий андроид из металла и пластика, а компьютерная программа, которая обычно работает в связке с интерфейсом брокера. Как правило, связующим звеном выступает терминал QUIK. Но некоторые брокеры предоставляют и прямой доступ к собственному API — программному интерфейсу «клиент — сервер», в котором на сервере прописаны все команды, а клиент использует эти команды и получает то, что ему необходимо в данный момент. Например, подает торговые приказы или смотрит текущие позиции.

Большинство торговых роботов не пишут с нуля, а используют существующие программные решения. Довольно популярны программы Amibroker, Astrend, Equis Metastock Professional, Excel, Neuro, TSLab, Ninja Trader, Matlab, Metatrader, Omega Research Prosuite & Tradestation, Quik, Wealth-Lab Developer. Да, Quik тоже попадает в этот список за счет встроенных языков программирования: QPILE, или QUIK Programmable Interface and Logic Environment, и QLUA — это встроенный интерпретатор скриптового языка LUA.

Выглядеть робот может примерно так. Это Amibroker

Торговый робот, или механическая торговая система — МТС, хорош, когда есть четкая стратегия торговли, которая полностью формализована: четко определены и запрограммированы правила открытия, сопровождения и закрытия сделок. В этом случае робот позволяет полностью исключить человеческий фактор и эмоции — он будет слепо следовать алгоритму. Обычно роботов настраивают на торговлю в интервалах, кратных 15 минутам, часу, дню.

Например, робот может раз в час проверять отклонение цены от заданной — и покупать или продавать инструмент. Если хочется погрузиться в тему глубже, можно посмотреть журнал Technical Analysis of Stocks & Commodities, где в каждом номере открыто публикуют коды торговых систем, адаптированные для разных программ. Например, в июльском выпуске за 2019 год в центре внимания — статья Виталия Апирина «Полосы экспоненциального отклонения».

Еще бывают так называемые высокочастотные роботы, которые могут совершать тысячи сделок за секунду, — HFT, high-frequency trading. Про это есть хорошая книга Майкла Льюиса «Flash Boys. Высокочастотная революция на Уолл-стрит». Но для высокочастотного трейдинга надо иметь минимальный пинг — промежуток времени, за который сигнал, отосланный с рабочего сервера, проходит через сеть до другого сервера и возвращается обратно, — до биржи и в идеале находиться в том же самом здании, что и сама биржа.

Зачем вообще нужны торговые роботы? Конечно, чтобы зарабатывать. Роботы не устают и могут вести торговлю 24 часа в сутки 7 дней в неделю. Они могут обрабатывать одновременно десятки инструментов. Разберемся, почему обещания какой-либо доходности, особенно 20—50%, — это нереально.

Инвестиции — это не сложно

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

Погнали!

Причина 1: аналитическая

Московская биржа совместно с брокерскими компаниями ежегодно проводит конкурс «Лучший частный инвестор» — ЛЧИ. Из итоговой статистики 2019 года видно, что самые активные участники конкурса, которые просто не могут быть людьми с таким количеством заявок и сделок, необязательно попадают в статистику лучших.

Организаторы конкурса ЛЧИ не указывают в явном виде, используется автоматический торговый алгоритм или ведется торговля руками. Но несколько десятков тысяч сделок за четыре месяца проведения конкурса однозначно говорят о применении алгоритмов. Например, там есть участник с 30 703 сделками и доходностью 172,60%, а есть участник, который совершил 657 058 сделок, но получил всего 1,69% дохода. Из этого можно сделать вывод, что алгоритмы тоже бывают разными: какие-то приносят их создателям доход, а какие-то нет.

Статистика конкурса «Лучший частный инвестор» 2019 года, отсортированная по активности: у некоторых участников были выставлены сотни тысяч заявок и заключены десятки тысяч сделок, но доходность большинства не впечатляет

Причина 2: логическая

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

Допустим, что робот делает 20% в месяц. «Допустим», потому что тесты на истории не гарантируют, что в дальнейшем будет хоть какая-то доходность. Произведем расчеты из предположения, что у нас есть 300 000 Р и некий волшебный алгоритм, который гарантированно делает 20% в месяц.

Во что 20% в месяц превратят 300 000 Р за год

Месяц Сумма
Январь 300 000 Р
Февраль 360 000 Р
Март 432 000 Р
Апрель 518 400 Р
Май 622 080 Р
Июнь 746 496 Р
Июль 895 795 Р
Август 1 074 954 Р
Сентябрь 1 289 945 Р
Октябрь 1 547 934 Р
Ноябрь 1 857 521 Р
Декабрь 2 229 025 Р

Январь

300 000 Р

Февраль

360 000 Р

Апрель

518 400 Р

Август

1 074 954 Р

Сентябрь

1 289 945 Р

Октябрь

1 547 934 Р

Ноябрь

1 857 521 Р

Декабрь

2 229 025 Р

Из этой таблицы видно, что за год вложения увеличатся почти в восемь раз — и это при доходности только 20%. А вот что будет, если найти Грааль и брать 50% доходности ежемесячно.

Во что 50% в месяц превратят 300 000 Р за год

Месяц Сумма
Январь 300 000 Р
Февраль 450 000 Р
Март 675 000 Р
Апрель 1 012 500 Р
Май 1 518 750 Р
Июнь 2 278 125 Р
Июль 3 417 188 Р
Август 5 125 781 Р
Сентябрь 7 688 672 Р
Октябрь 11 533 008 Р
Ноябрь 17 299 512 Р
Декабрь 25 949 268 Р

Январь

300 000 Р

Февраль

450 000 Р

Апрель

1 012 500 Р

Август

5 125 781 Р

Сентябрь

7 688 672 Р

Октябрь

11 533 008 Р

Ноябрь

17 299 512 Р

Декабрь

25 949 268 Р

Первоначальный капитал увеличится почти в 90 раз всего за год. Возникает разумный вопрос: зачем отдавать кому-то курицу, которая несет золотые яйца? Если какой-то алгоритм работает, то любой разумный человек будет заинтересован в том, чтобы о нем знало как можно меньше людей: чем больше инвесторов пользуются алгоритмом, тем быстрее он перестает работать. Вероятнее всего, создатели пытаются выжать последние соки из уже отработавшего алгоритма, поэтому и пытаются продавать его, иногда совсем за смешные деньги. В нашей рубрике «Под прищуром» мы уже как-то разбирали один торговый робот и объяснили, почему не стоит его покупать.

К тому же именно с торговыми роботами есть дополнительные нюансы. Алгоритм принятия решений может быть скрыт или запутан. Может продаваться и так называемый черный ящик, в котором невозможно понять логику алгоритма. Это значит, что в определенной фазе рынка алгоритм может работать хорошо, а в другой может за несколько сделок слить весь депозит. Чтобы написать торгового робота, не требуются особые знания. Любой программист в состоянии разобраться с этим. Другой вопрос: зачем ему этим заниматься?

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

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

Как написать бота для биржи

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

Не буду лить воду, а перейду сразу к делу. Итак, первым делом нужно скачать и установить Delphi 7. Это можно сделать по ссылке – Delphi 7. После этого открываем папку с программой-оболочкой. С программой можно ознакомиться и заказать по ссылке:

Нас интересует файл TradeRobot.dpr . Открываем его и видим то, что изображено на картинке ниже.

Окно, на котором написано «Робот» – это Form1, окно Windows проще говоря. Так оно выглядит в разработчике. На него нам нужно поместить элементы управления и контроля робота такие, как: две кнопки и три небольших окна-строки. Первая кнопка будет отвечать за соединение с QUIK, вторая за запуск и остановку нашего робота. В строках окон будет выводиться информация об объемах крайних покупки и продажи и текущий статус программы.

Чтобы поместить необходимые элементы на форму нужно кликнуть мышью на кнопке во вкладке Standard.

После этого кликнуть в любом месте на форме. Delphi предложит переименовать кнопку и мы этим воспользуемся. Назовем ее ConnectButton.

Далее можно растягивать кнопку как удобно и располагать ее в любом месте.

Точно так же создадим вторую кнопку и назовем ее StartButton.

Теперь создадим 3 окна-строки. Для этого в той же вкладке Standard выберем соответствующую иконку (как на картинке) и поместим ее на форму.

Так повторяем три раза и называем их следующим образом:
— левое верхнее BuyVolumeEdit
— правое верхнее SaleVolumeEdit
— нижнее StatusEdit

Теперь нужно изменить надписи на элементах. Это делается в окне ObjectInspector, для кнопок в строке Caption, для окон-строк в строке Text.

Должно получиться так, как на картинке ниже.

Теперь нам нужно прописать сценарий для каждой кнопки. Для этого кликаем два раза по кнопке Connect to QUIK и откроется код, как на картинке ниже.

Перед вставляем следующий текст:

Между и вставляем следующее:

В итоге получиться должно следующее:

Красным подчеркиванием отмечен путь к QUIK. Если он у вас другой, то измените путь в этом месте.

Теперь переходим к кнопке START. Открываем сценарий двойным щелчком и между и вставляем следующее:

Должно получиться так:

Теперь пропишем глобальные переменные. Для этого найдем часть кода:

И вставим следующий код:

Теперь в ObjectInspector выбираем Form1 и во вкладке Events находим строку onshow. Кликаем два раза и открывается код. Между и вставляем следующее:

Теперь нам нужно найти место в коде, как на картинке ниже:

После вставляем следующее:

После вставляем код:

Должно получиться так:

В строках типа (их таких две):

в параметре нужно указать свой счет. Сейчас там указан мой SPBFUT00553.

Все, робот написан. Теперь остается его скомпилировать, т.е. превратить в готовое приложение EXE. Для этого нажимаем на зеленую кнопку Run (или F9), похожую на Play.

Если все сделано верно, то в папке с оболочкой появится EXE файл. Это и есть готовый робот.

Чтобы проверить работоспособность, сначала запустите его (TradeRobot.exe). Настройте QUIK так, как на картинках ниже.

Вот и все. Теперь у вас есть свой торговый робот, остается только нажать Connect to QUIK и START и программа начнет работать сама по себе, осуществляя сделки.

В одной статье невозможно описать все, поэтому я специально не стал объяснять, что значит каждая строка кода, это я сделаю в следующем уроке.

Подписывайтесь на обновления и добавляйтесь в друзья (вопросы, советы и т.п.):

В последние несколько лет тема автоматизированных систем для торговли на бирже довольно популярна. Но без надежного наставника новичку это точно не по зубам. Как создать торгового робота, избежать ошибок и не потратить все деньги? Обо всем по порядку.

Как создать робота

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

#1 – создать робота для работы на прямом подключении

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

#2 – подключиться к брокерской торговой системе по API.

Некоторые брокеры позволяют подключать внешний торговый софт к своим торговым системам по специальным интерфейсам. У нас в ITI Capital это можно делать с помощью API SMARTcom. В этом случае роботы могут быть достаточно сложными.

#3 – автоматизировать операции напрямую в торговом терминале.

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

Третий вариант, как видите, самый простой. И сейчас поговорим о нем подробнее.

Как это работало раньше

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

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

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

Как это работает теперь: изучаем язык TradeScript

Самый простой способ создать несложного торгового робота сегодня – использовать терминал SMARTx.

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

Главный плюс TradeScript – у вас нет необходимости создавать сложные конструкции и использовать различные коннекторы, чтобы передавать приказы в торговый терминал. Конструктор роботов встроен в SMARTx и позволяет добиваться значительно более высокой надежности и быстродействия.

Вот пример торговой стратегии, записанной на TradeScript:

# Покупаем, если момент и инерция имеют однонаправленный тренд

TREND(EMA(CLOSE, 20), 15) = UP AND

TREND(MACD(13, 26, 9, SIMPLE), 5) = UP

# Продаем, если момент и инерция имеют однонаправленный тренд

TREND(EMA(CLOSE, 20), 15) = DOWN AND

TREND(MACD(13, 26, 9, SIMPLE), 5) = DOWN

Exit Long Signal

# Выходим, если тренд инерции и момента имеет противоположное направление

TREND(EMA(CLOSE, 20), 15) = DOWN OR

TREND(MACD(13, 26, 9, SIMPLE), 5) = DOWN

Exit Short Signal

# Выходим, если тренд инерции и момента имеет противоположное направление

TREND(EMA(CLOSE, 20), 15) = UP OR

TREND(MACD(13, 26, 9, SIMPLE), 5) = UP

В пакете с TradeScript поставляется и модуль бэктестинга.

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

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

Что еще: тестовый доступ, чтобы все проверить

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

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

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

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

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

Сервисы и боты для автоматизации криптоторговли:

Боты и платформы Сайт Стоимость Биржи криптовалют
3commas

от 22$. Тестовый период 3 дня на тарифе «Профессиональный»

Bitmex, Binance, Huobi YOBIT, Bittrex, BitFinex, Bitstamp, KuCoin, Poloniex, HitBTC, Cex, Coinbase Pro, OKEX Revenuebot

Бесплатно. Оплата за счёт % от прибыльных сделок

Exmo, Livecoin, Binance, Poloniex, Bitfinex, Bittrex, OKEX, HitBTC, CEX Cryptorg

от 30$ в месяц в зависимости от тарифа. Есть пробный тариф на 2 недели с возможностью создания одного бота

Binance, Bittrex, BitFinex, KuCoin, Poloniex, HitBTC

Что такое криптобот для торговли?

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

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

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

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

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

Топ-8 ботов в 2019 для торговли криптовалютой

Роботы и советники, помогающие криптоинвесторам или трейдерам зарабатывать на рынке криптовалют, всё больше обретают популярность, становясь востребованными в современном онлайн-бизнесе. Специалисты подобрали 8 наиболее перспективных, стабильных алгоритмов, способных помочь заинтересованным пользователям в 2019 году зарабатывать на криптомонетах.

Revenuebot

RevenueBot — облачный бот для заработка на топовых криптовалютах биржах. Автоматическая торговля по системе мартингейл осуществляется круглые сутки. Абонентская плата отсутствует, удерживает только процент с полученной в ходе торгов прибыли. Работает с площадками: Binance, DSX, Exmo, Livecoin, Okex, HitBTC и т.д.

Cap Club

Cap Club – платформа для ручной и автоматической торговли на криптовалютных биржах Binance и Bittrex. Инструменты, собранные на платформе, позволяют облегчить и повысить эффективность торговли: одновременно работающие StopLoss и TakeProfit; установка персональных сигналов; Trailing-механизмы для покупки и продажи; готовые базовые стратегии.

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

Для оттачивания торговых навыков доступна демо-биржа, где можно потренироваться торговать на виртуальных средствах, без рисков и финансовых потерь!

Бесплатный тариф на Cap.Clap не ограничен по времени, однако, имеет лимиты по количеству стратегий, API ключей и уведомлениям. Для того, чтобы торговать без ограничений, можно приобрести тариф PRO – 30$ в месяц или 300$ в год.

aBOT (Arbitraging)

ABOT (автоматический бот) – арбитражный крипторобот. Он поможет людям, занимающимся заработком на арбитраже криптовалют. Алгоритм самостоятельно разыскивает дешёвые альткоины, приобретает их и позже на другой криптовалютной бирже реализует всё количество монет по выгодной цене.

Для доступа к данному боту нужна регистрация аккаунта в проекте Arbitraging.co . Никакой комиссии за использование программы не нужно платить, поэтому торговые операции сразу могут давать доход. Единственная плата, взимаемая с пользователей на сервисе – это умеренные комиссии за транзакции. Арбитраж полностью децентрализованный. Можно контролировать сделки, производимые роботом на блокчейне.

Дополнительно сервис Arbitraging предоставляет: криптовалютный кошелёк, полуавтоматического бота (MBOT), собственную биржу и т.д.

HaasBot

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

Торгует HaasBot фактически на всех крупных криптовалютных биржах (Bitmex, Kucoin, Binance, Gemini, BTCC, Kraken, Huobi и др.). Тарификация трёхуровневая, что обусловлено различной открытостью функционала для клиента. Стоимость лицензии на 3 месяца:

  1. базовый доступ – 0,04 ВТС;
  2. для продвинутых новичков – 0,07 ВТС;
  3. профессиональная версия – 0,11 ВТС.

Потом требуется продление либо переход на иной тариф. Оплата принимается криптовалютой Bitcoin. Можно сравнить планы и выбрать необходимый по потребностям.

Сryptotrader

Cryptotrader — облачный бот для автоматизации торговых стратегий без установки программного обеспечения. Предоставляет возможность работать на всех популярных биржах. Сервис позволяет протестировать работу торгового робота в режиме реального времени или на исторических данных.

Стоимость зависит от выбранного плана и начинается для Basic+ с 0,0042 BTC в месяц.

Gunbot

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

Тарифные планы, предлагаемые криптотрейдерам, предусматривают разное количество доступных возможностей функционала и стоят от 0,0025 BTC (самая урезанная версия) до 0,25 BTC (для профессионалов). Интересно, что выплачивать сбор нужно единожды, без дополнительных доплат.

Cryptohopper

CryptoHopper — робот для автоматической торговли на биржах криптовалют: Huobi, Binance, Kucoin, Kraken, Poloniex, Bitfinex и других. Доступен бесплатный план на 7 дней для ознакомления с функционалам платформы. Всего имеется 3 плана: стартовый, средний, профессиональный. На последнем доступна арбитражная торговля, открытие 500 торговых сделок с 75 криптовалютами, сигналы и т.д.

Gekko

Gekko – бесплатный криптобот на веб-платформе GitHub. Площадка зарегистрированным клиентам позволяет всегда пользоваться уникальной функцией для создания своего криптовалютного бота, имеющего открытый исходный код. Нужно потом лишь загрузить программу, запустить на ПК, установить параметры и ждать заработанных монет.

У Gekko есть масса мощнейших, эффективных опций, делающих возможным оптимизацию, коррекцию и тестирование стратегий торговли.

  1. моновалютность. При помощи данного алгоритма возможен заработок исключительно Bitcoin.
  2. небольшое количество бирж криптовалют, на которых работает бот. Доступны лишь проекты: Poloniex, Bitstamp и Bitfinex.

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

Zenbot

Zenbot – отличный робот для криптотрейдинга. Данный бот бесплатно предоставляется на том же GitHub. Устанавливается программа фактически на всех компьютерных ОС, имеет открытый исходный код. Zenbot может совершать высокочастотные сделки, а также позволяет вести прибыльный арбитраж криптовалют.

Достоинства автоматической торговли криптовалютами

Во время периода своего процветания ныне обанкротившаяся биржа криптовалют MT-Gox использовала очень активно специального крипто робота Willy, манипулировавшего стоимостью коинов BTC. Такой торговый робот являлся первым биткоин-ботом, действительно вызывавшим взлёты котировок bitcoin и их последующие падения. Такая ситуация происходила в 2012 – 2014 гг., когда рынок криптовалют да и все децентрализованные деньги были малоизвестны и не слишком популярны.

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

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

Отмеченные качества являются лишь примером полезности автоматической торговли криптовалютами. Достоинств у таких программ ещё много.

Недостатки биржевых криптовалютных роботов

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

Основные недостатки криптоботов следующие:

  • строгое следование запрограммированному алгоритму. Любые сдвиги, быстрые отклонения, краткосрочные колебания и иные форс-мажоры будут давать роботу сигналы для совершения торговых операций. Это легко может обнулить депозит, поскольку ордера станут давать одни убытки;
  • работа ботов строится исключительно на данных технического анализа. Они неспособны видеть причинно-следственные связи и рассматривать рынок более глобально;
  • у криптоботов нет аналитического мышления, эмоций и чувства страха. Это значимый минус, так как не последует остановки потери средств в сделке до момента формирования какого-то сигнала для робота. Он при определённых факторах способен быстро слить депозит, не видя фатально развития ситуации в конкретной сделке. Трейдер быстро видит опасность и своевременно минимизирует убытки.

Заключение

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

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

Торговые роботы и технические индикаторы в MetaTrader 5

Любой трейдер может использовать торговых роботов для работы на Форексе и фондовой бирже. Эти программы способны полностью заменить человека как в аналитике, так и в торговле на финансовых рынках. Основные преимущества торговых роботов — работа с большим объемом вычислений, отсутствие утомляемости и исключение эмоциональной составляющей из трейдинга.

Торговые роботы в MetaTrader 5 — это:

  • Мгновенная обработка больших объемов котировок валют и акций
  • Более детальные торговые сигналы
  • Торговля на финансовых рынках 24 часа в сутки без снижения эффективности
  • Отсутствие эмоциональности и четкое следование заложенному торговому алгоритму

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

Торговые роботы не знают усталости и могут работать круглосуточно без снижения эффективности. Анализ котировок валют или акций — это рутинная и утомительная работа, с которой знаком каждый трейдер. С течением времени внимание может притупиться, появляются ошибки в расчетах и управлении торговой платформой. Все это приводит к ошибкам в торговле и упущенным торговых возможностям. Советники в MetaTrader 5 решают и эту проблему: они четко следуют торговому алгоритму и используют все благоприятные торговые моменты на рынке. Например, в 2 часа ночи трейдер может спать, а робот все так же продолжает анализировать котировки и совершать торговые операции.


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

Чемпионат Automated Trading Championship, проводившийся в 2006-2012 годах, стал наглядным подтверждением возможностей и преимуществ торговых роботов в платформах MetaTrader. Отличительной особенностью соревнования была полная автономность торговых роботов — их разработчики никак не могли повлиять на свои программы в течение чемпионата. В течение трех месяцев сотни торговых советников самостоятельно торговали на рынке и доказали, что они могут делать это даже лучше людей.

Технические индикаторы

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


Нужен особенный аналитический инструмент? Маркет и Библиотека дадут вам тысячи возможностей для выбора. Все еще мало? Закажите индикатор во Фрилансе или напишите его самостоятельно! Среда разработки MQL5 позволяет легко создавать собственные инструменты для анализа котировок валют и акций.

MQL5-индикаторы являются полными аналогами встроенных технических индикаторов и обладают такими же широкими возможностями. Они так же имеют доступ ко всей истории котировок по финансовому инструменту (валюты и акции) и могут работать с ней. Их так же можно располагать на графике или в отдельном окне. Расчетные параметры и настройки отображения инструмента тоже полностью контролируются. Словом, MQL5-индикаторы — это постоянное и безграничное расширение аналитических возможностей MetaTrader 5.

Используйте торговых роботов для автоматической торговли и индикаторы для технического анализа рынка — повысьте эффективность своего трейдинга!

Скачайте MetaTrader 5 и начните использовать торговые приложения

Торговые роботы. Обучение. StockSharp

Учим с нуля!

Мы научим Вас в команде единомышленников как правильно разрабатывать торговые системы и алгоритмы; как систематизировать доход на бирже с помощью торговых алгоритмов

Готовые системы

Вы получаете набор готовых систем (более 20) для Ваших экспериментов, а также несколько готовых прибыльных торговых систем

Мы—команда

Наше обучение прошли уже более 700 человек (c 2011 года). Мы собираемся каждую неделю и обсуждаем новые идеи и возникающие проблемы. Вместе гораздо проще!

Бесплатный софт

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

Россия, Америка, Азия

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

Дистанционное обучение

Мы учим полностью дистанционно — это позволяет людям по всей России экономить своё время и силы, концентрируясь на создании торговых систем

Торговый робот на Python с нуля. Алготрейдинг в 2021

С чего начать алготрейдинг. Написание роботов с нуля для торговли. Обучение Торговому  роботу на python с нуля. Алготрейдинг :

Моя первая мысль о трейдинге появилась на 4 курсе экономического факультета, когда понял, что необходимо иметь пассивный доход. Начинал со вкладов в банке и паевых инвестиционных фондов (ПИФов), затем судьба забросила меня в IT. Я очень увлекся этим, поступил в технический ВУЗ и поставил цель совместить информационные технологии и биржевую торговлю, так как это интересно, перспективно и высокооплачиваемо.

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

Фондовый рынок — это высокотехнологичная отрасль, которая активно развивается, что делает работу в этой сфере очень привлекательной для IT — специалистов. Мировой валютный рынок, где ежедневный объём торгов оценивается в $5,1 трлн, становится всё менее зависимым от человека. Так, 94 руководителя крупнейших компаний США и Канады по торговым и валютным операциям заявили о намерении перейти на автоматизацию большей части своих операций с иностранной валютой в течение 2018—2020 годов. Развитие автоматизированной торговли на сегодняшний день уже стало необратимым процессом на мировом валютном, фондовом рынке и рынке деривативов.

Пока сложно сказать, что для успешной торговли необходимо обязательно создавать торгового робота, можно торговать и вручную, используя автоматизацию для поиска активов и точек входа, или контроля открытых позиций. Но доля роботов в объеме торгов США в 2005 году перевалившая за 50% говорит об их востребованности среди трейдеров.

Переходим к плану обучения.

В качестве языка программирования для реализации стратегий будет использован Python. Данный язык кроссплатформенный (что для сторонников Linux и macOS является обязательным атрибутом), прост в освоении (по своему опыту изучения Java, могу сказать что Python легче), широко распространен (применяется в Big Data, веб-разработке, автоматизации тестирования, науке, системном администрировании, для прототипирования квантовых моделей в хедж-фондах и «квантовых» трейдерских подразделений в банках и др.)

Этап 1.1. Изучение основ Python для торгового робота

1. Обучение по приложению от SoloLearn.

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

2. Прохождение курса на Stepik.org «Программирование на Python»

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

Совет: Некоторые условия задач описаны очень непонятно, в связи с этим сразу смотрите в комментарии, там найдете разъяснение задачи.

В день рекомендую уделять этому ресурсу 1 час.

Ссылка на курс:  https://stepik.org/course/67/syllabus

3. Решение задач в Pythontutor.ru

Для закрепления знаний полезным будет ресурс Pythontutor. Это интерактивный учебник по Python, с большим количеством примеров и хорошими задачами. Интересная особенность в том, что после решения задачи можно посмотреть варианты решений от разработчиков и других участников.

Ежедневно рекомендую решать хотя бы по одной задаче.

Ссылка на учебник: http://pythontutor.ru/

4. Книги: Swaroop — «A Byte of Python»(Укус питона)

«Укус питона» это бесплатная книга по Python, отличается минимальным количеством «воды» и большим количеством примеров. Содержит всего 150 страниц, при этом отлично показывает возможности языка.

Совет: При чтении книг по программированию необходимо запускать пример кода у себя в IDE для лучшего усвоения материала.

В день достаточно читать по 5-10 страниц.
В качестве IDE рекомендую бесплатный PyCharm Community.

По желанию: Видео курсы по Python на YouTube

Серия видеоуроков средней продолжительностью в 10 минут, состоящая из 21 эпизода поможет заполнить пробелы в полученных ранее знаниях.

Для знающих английский очень хорошо будет просмотеть курс Learn Python — Full Course for Beginners. В общей сложности материал состоит из четырех с половиной часов обучающего видео.

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

В интернете множество методик и материалов для изучения английского, каждый сможет подобрать подходящее для себя, но не откажусь порекомендовать книгу по грамматике Раймонда Мерфи — Essential Grammar in Use. Написана полностью на английском, но предельно простым языком и со множеством иллюстраций.

Этап 1.2. Основы биржевого дела

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

1. Изучение функционала Trader Workstation от Interactive Brokers:

Для этого вам будет необходимо открыть демо-счет.

Терминал TWS имеет отличный демо-режим, на котором доступен 1 000 000 виртуальных долларов и неограничен по времени. Его можно изучить вдоль и поперек. Но для начала необходимо научиться просто ориентироваться в интерфейсе, уметь искать, выбирать, покупать, продавать активы.

Вот несколько обучающих видеороликов:

Еще стоит потратить время на самостоятельное изучение. Проделайте лично то, что вы посмотрели в видео.

2. Чтение литературы: Элдер — «Трейдинг с доктором Элдером»

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

Рекомендую читать 15 страниц в день.

Совет: Если вы никогда не торговали и не знаете как работает биржа, настоятельно рекомендую прочитать первые 180 страниц книги Твардовского и Паршикова — «Секреты биржевой торговли». Чтобы понять, как в целом устроена биржа, виды приказов, кто такие брокеры, маркетмейкеры и т.д.

Заключение

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

Новички, уделяя 2 — 2.5 часа в день, смогут пройти этап за месяц. Те, кто имеет опыт в программировании или трейдинге, смогут уделять 1 — 1.5 часа в день.

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

Другие статьи из программы обучения:

Оригинал статьи: https://quantrum.me/2328-kak-podstupitsya-k-algotrejdingu/

Создание собственного торгового алгоритма

Многие трейдеры стремятся стать алгоритмическими трейдерами, но изо всех сил пытаются правильно кодировать своих торговых роботов. Эти трейдеры часто обнаруживают в Интернете дезорганизованную и вводящую в заблуждение информацию об алгоритмическом кодировании, а также ложные обещания мгновенного процветания. Однако одним из потенциальных источников достоверной информации является Лукас Лью, создатель онлайн-курса по алгоритмической торговле AlgoTrading101. С момента запуска в 2014 году курс собрал более 30 000 студентов.

Программа Лью направлена ​​на организованное представление основ алгоритмической торговли. Он непреклонен в том, что алгоритмическая торговля — это «не схема быстрого обогащения». Ниже изложены основы того, что необходимо для разработки, создания и обслуживания собственного алгоритмического торгового робота (взято из Лью и его курса).

Ключевые выводы

  • Многим амбициозным трейдерам сложно найти подходящее образование или руководство, чтобы правильно кодировать своих торговых роботов.
  • AlgoTrading101 является потенциальным источником надежных инструкций и с момента запуска в 2014 году собрал более 30 000 человек.
  • Торговый алгоритм или робот — это компьютерный код, который идентифицирует возможности покупки и продажи с возможностью выполнять приказы входа и выхода.
  • Чтобы быть прибыльным, робот должен определять регулярную и устойчивую рыночную эффективность.
  • В то время как примеров схем быстрого обогащения предостаточно, у начинающих трейдеров алгоритмов лучше иметь скромные ожидания.
Восстание робо-советников

Что такое торговый робот?

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

Очевидно, что вам понадобится компьютер и подключение к Интернету, чтобы стать алгоритмическим трейдером.После этого потребуется подходящая операционная система для запуска MetaTrader 4 (MT4), который представляет собой электронную торговую платформу, использующую язык MetaQuotes Language 4 (MQL4) для кодирования торговых стратегий. Хотя MT4 — не единственное программное обеспечение, которое можно использовать для создания роботов, оно имеет ряд существенных преимуществ.

Одним из преимуществ является то, что, хотя основным классом активов MT4 является иностранная валюта (FX), платформу также можно использовать для торговли акциями, индексами акций, товарами и биткойнами с использованием контрактов на разницу (CFD).Другие преимущества использования MT4 (по сравнению с другими платформами) заключаются в том, что его легко изучить, у него есть множество доступных источников данных FX и он бесплатный.

Алгоритмические торговые стратегии

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

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

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

  • Макроэкономические новости (например, изменения заработной платы вне сельского хозяйства или процентных ставок)
  • Фундаментальный анализ (например, с использованием данных о доходах или примечаний к выпуску прибыли)
  • Статистический анализ (например, корреляция или совместная интеграция)
  • Технический анализ (e.г., скользящие средние)
  • Микроструктура рынка (например, арбитраж или торговая инфраструктура)

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

Тестирование и оптимизация

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

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

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

Живое исполнение

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

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

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

Итог

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

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

Страница не найдена

  • Образование
    • Общий

      • Словарь
      • Экономика
      • Корпоративные финансы
      • Рот ИРА
      • Акции
      • Паевые инвестиционные фонды
      • ETFs
      • 401 (к)
    • Инвестирование / Торговля

      • Основы инвестирования
      • Фундаментальный анализ
      • Управление портфелем
      • Основы трейдинга
      • Технический анализ
      • Управление рисками
  • Рынки
    • Новости

      • Новости компании
      • Новости рынков
      • Торговые новости
      • Политические новости
      • Тенденции
    • Популярные акции

      • Яблоко (AAPL)
      • Тесла (TSLA)
      • Amazon (AMZN)
      • AMD (AMD)
      • Facebook (FB)
      • Netflix (NFLX)
  • Симулятор
  • Твои деньги
    • Личные финансы

      • Управление благосостоянием
      • Бюджетирование / экономия
      • Банковское дело
      • Кредитные карты
      • Домовладение
      • Пенсионное планирование
      • Налоги
      • Страхование
    • Обзоры и рейтинги

      • Лучшие онлайн-брокеры
      • Лучшие сберегательные счета
      • Лучшие домашние гарантии
      • Лучшие кредитные карты
      • Лучшие личные займы
      • Лучшие студенческие ссуды
      • Лучшее страхование жизни
      • Лучшее автострахование
  • Советники
    • Ваша практика

      • Управление практикой
      • Продолжая образование
      • Карьера финансового консультанта
      • Инвестопедия 100
    • Управление благосостоянием

      • Портфолио Строительство
      • Финансовое планирование
  • Академия
    • Популярные курсы

      • Инвестирование для начинающих
      • Станьте дневным трейдером
      • Торговля для начинающих
      • Технический анализ
    • Курсы по темам

      • Все курсы
      • Торговые курсы
      • Курсы инвестирования
      • Финансовые профессиональные курсы

Представлять на рассмотрение

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

дом
  • О нас
  • Условия эксплуатации
  • Словарь
  • Редакционная политика
  • Рекламировать
  • Новости
  • Политика конфиденциальности
  • Связаться с нами
  • Карьера
  • Уведомление о конфиденциальности для Калифорнии
  • #
  • А
  • B
  • C
  • D
  • E
  • F
  • грамм
  • ЧАС
  • я
  • J
  • K
  • L
  • M
  • N
  • О
  • п
  • Q
  • р
  • S
  • Т
  • U
  • V
  • W
  • Икс
  • Y
  • Z
Investopedia является частью издательской семьи Dotdash.

Страница не найдена

  • Образование
    • Общий

      • Словарь
      • Экономика
      • Корпоративные финансы
      • Рот ИРА
      • Акции
      • Паевые инвестиционные фонды
      • ETFs
      • 401 (к)
    • Инвестирование / Торговля

      • Основы инвестирования
      • Фундаментальный анализ
      • Управление портфелем
      • Основы трейдинга
      • Технический анализ
      • Управление рисками
  • Рынки
    • Новости

      • Новости компании
      • Новости рынков
      • Торговые новости
      • Политические новости
      • Тенденции
    • Популярные акции

      • Яблоко (AAPL)
      • Тесла (TSLA)
      • Amazon (AMZN)
      • AMD (AMD)
      • Facebook (FB)
      • Netflix (NFLX)
  • Симулятор
  • Твои деньги
    • Личные финансы

      • Управление благосостоянием
      • Бюджетирование / экономия
      • Банковское дело
      • Кредитные карты
      • Домовладение
      • Пенсионное планирование
      • Налоги
      • Страхование
    • Обзоры и рейтинги

      • Лучшие онлайн-брокеры
      • Лучшие сберегательные счета
      • Лучшие домашние гарантии
      • Лучшие кредитные карты
      • Лучшие личные займы
      • Лучшие студенческие ссуды
      • Лучшее страхование жизни
      • Лучшее автострахование
  • Советники
    • Ваша практика

      • Управление практикой
      • Продолжая образование
      • Карьера финансового консультанта
      • Инвестопедия 100
    • Управление благосостоянием

      • Портфолио Строительство
      • Финансовое планирование
  • Академия
    • Популярные курсы

      • Инвестирование для начинающих
      • Станьте дневным трейдером
      • Торговля для начинающих
      • Технический анализ
    • Курсы по темам

      • Все курсы
      • Торговые курсы
      • Курсы инвестирования
      • Финансовые профессиональные курсы

Представлять на рассмотрение

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

дом
  • О нас
  • Условия эксплуатации
  • Словарь
  • Редакционная политика
  • Рекламировать
  • Новости
  • Политика конфиденциальности
  • Связаться с нами
  • Карьера
  • Уведомление о конфиденциальности для Калифорнии
  • #
  • А
  • B
  • C
  • D
  • E
  • F
  • грамм
  • ЧАС
  • я
  • J
  • K
  • L
  • M
  • N
  • О
  • п
  • Q
  • р
  • S
  • Т
  • U
  • V
  • W
  • Икс
  • Y
  • Z
Investopedia является частью издательской семьи Dotdash.

Как создать бота для торговли акциями с нуля | by Ary Sharifian

Торговая стратегия, ресурсы и советы от того, кто делал это раньше.

Фото Николаса Хойзи на Unsplash

Не можете придумать стратегию? Не уверены, какие API и пакеты использовать? Не хотите изобретать велосипед? Я создал программу дневной торговли акциями (репозиторий github) с нуля и хотел поделиться некоторыми полезными ресурсами, а также некоторыми советами о том, как начать работу. Я знаю, что начинать новый проект, особенно в иностранной сфере, сложно, и я надеюсь, что эта статья поможет сгладить кривую обучения.Сделав шаг назад, я также хотел обсудить свои критерии «хорошего» проекта. Есть много проектов, над которыми вы можете работать, так зачем же над этим работать?

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

1. Внедрение интересующих технологий

Учитывая, что сложность покупки или продажи акций / криптовалюты / форекс практически бесконечна, есть много возможностей для внедрения новых технологий.Вы специалист по данным и хотите проанализировать некоторые твиты Илона Маска или определить ключевые слова в SEC Filings? Начинающий облачный инженер хочет использовать облако для чего-то вроде возможности запускать свои скрипты 24/7 на инстансе EC2? Бэкэнд-разработчик хочет предоставить конечным пользователям API для получения сигналов от вашего алгоритма о том, когда покупать и продавать? ETL или инженер по данным , желающий поиграть с инструментами для работы с большими данными, такими как Kafka, Spark, DynamoDB, и построить конвейеры для потоковой передачи данных о ценах и их передачи в базы данных NoSQL / SQL. фронтенд-разработчик или финансовый аналитик , заинтересованный в использовании DASH или React + Flask для представления производительности алгоритма конечным пользователям? Вы хотите использовать МАШИННОЕ ОБУЧЕНИЕ? Надеюсь, вы поняли идею.

2. Совместная работа

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

3. Четкая мера успеха: $$$

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

4. Легко понять рекрутерам / будущему работодателю / бабушке

Хорошо иметь проект, понятный каждому. Практически все инвестируют в фондовый рынок. Легко понять цель покупки по низкой цене и продажи по высокой. Когда работодатели спрашивают о проектах, большинство из них говорит о каком-то стеке технологий, которые они внедрили, и теряет рекрутера или менеджера по найму в деталях.Это не означает, что технология не важна, но то, что конечная цель этого проекта упрощает объяснение технологии. Например, «Я хотел ограничить диапазон биржевых тикеров, поэтому я использовал кластеризацию K-средних для кластеризации всех моих успешных сделок и поиска аналогичных акций» вместо «Я реализовал кластеризацию K-средних». Даже если вы не знаете, что такое кластеризация K-средних, вы можете понять ее цель.

5. Потенциально прибыльно (но маловероятно)

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

6. Бесконечно сложный

Это согласуется с моим предыдущим утверждением о простоте включения любой технологии.Бесконечная сложность означает, что вы никогда не закончите. (Я рассматриваю это как наполовину полный стакан). Всегда будут новые стратегии, технологии, индикаторы и метрики, которые нужно внедрить и протестировать. Это бесконечная игра. Интерпретируйте это как хотите, но я нахожу это интересным и захватывающим.

Определите стратегию

Фото JESHOOTS.COM на Unsplash

Разработайте эффективную стратегию. Заметьте, я не сказал создавать прибыльную стратегию. Дело в том, что вы будете повторять. Определение стратегии поможет создать некую основу, которую можно улучшить.Это пример стратегии, которую я создал для торговли акциями:

Я объяснил эту стратегию в другой статье о начальной производительности моего алгоритма торговли акциями. Теперь повторите эту стратегию и предоставьте более подробную информацию. Как только вы почувствуете, что у вас есть что-то, что можно легко реализовать, начните думать о том, как это реализовать. Именно тогда я почувствовал, что могу начать реализацию:

Примечание: обратите внимание, что включают вызовы API, которые я ожидаю использовать во время реализации. Это может быть более конкретным, чем это необходимо в настоящее время на этапе псевдокода.

Как вы будете реализовывать свою стратегию?

Какие API, пакеты и другие ресурсы помогают или необходимы для реализации этого псевдокода? Это вообще возможно? Именно тогда я провел небольшое исследование и обнаружил, что есть API акций для Robinhood (НЕ РЕКОМЕНДУЕТСЯ), TD Ameritrade и Alpaca, которые могут выполнять заказы на покупку и продажу. Что касается новостей, я думаю о том, чтобы провести парсинг веб-страниц с помощью модулей Python Beautiful Soup, Selenium и Scrapy. Я могу использовать Yahoo Finance API для получения скользящих средних и отслеживания объема.Для построения некоторых моделей машинного обучения я мог бы использовать scikit-learn, pandas и numpy (я не рекомендую вначале слишком сильно зацикливаться на машинном обучении). Я написал свою первоначальную программу в Jupyter Notebook и использовал Github в качестве репо.

Теперь у вас может возникнуть соблазн начать вникать в новые технологии и платформы, такие как включение некоторого облака или использование воздушного потока или кубе потока, но я рекомендую сосредоточиться на реализации как можно быстрее. Если вы заинтересованы во внедрении других технологий и у вас немного больше опыта, вы можете выполнить Proof of Concepts (POCs) для технологий, которые вы планируете использовать, до того, как будет включать эту технологию.Если вы работаете в группе, некоторые могут сосредоточиться только на выполнении POC и поиске того, что работает лучше всего.

Итерация: безотказно

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

Фото Фикри Расиида на Unsplash

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

Примечание: я буду постоянно обновлять список полезных ресурсов.

Github Repos

  1. Кураторский список безумно потрясающих библиотек, пакетов и ресурсов для Quants (количественные финансы)
  2. API новостей
  3. Трамп Tweet to Cash
  4. Парсинг новостных статей

Другие средние статьи

  1. Stock Market API
  2. Стратегии фондового рынка (высокий уровень)
  3. Индикаторы и др. Высокий уровень
  4. Как получить значения индикаторов (из Finviz с использованием парсинга)
  5. Пример использования индикаторов
  6. Реализация стратегии скальпинга, которая вдохновила мой алгоритм
  7. Financial Web Пример парсинга
  8. Создание бэкэнда потоковой передачи биткойнов
  9. Потоковые данные о запасах
  10. Илон Маск Tweets to Cash

Веб-сайты:

  1. finviz: нажмите на тикер, чтобы увидеть все индикаторы и фильтры, которые используют профессиональные трейдеры.Это может вдохновить вас на то, какие индикаторы использовать для вашего собственного алгоритма фильтрации.
  2. MarketWatch: популярный источник новостей для внутридневных трейдеров. (может быть интересно почистить эти истории и провести анализ настроений).
  3. SEC Filings: если вы введете тикер, вы увидите все официальные документы компании. (Мы думаем о том, чтобы очистить некоторые из этих документов, чтобы проинформировать наш алгоритм торговли акциями).
  4. Subreddit AlgoTrading: субреддит для алгоритмической торговли. Здесь тоже есть отличные ресурсы.Вот обсуждение лучших торговых платформ API. Введение в Python для торговых алгоритмов.

Youtube

  1. Bear Bull Traders: обучающее видео для начинающих трейдеров
  2. Forrest Knight: ресурсы для построения алгоритма дневной торговли
  3. Интересно TED Обсуждение AI на FOREX

Книги

  1. Flash Boys: причина, почему все следует скептически относиться к зарабатыванию денег на фондовом рынке.

Подкасты:

Это подкасты, описывающие стратегии высокого уровня.(Вы также можете просто погуглить «подкаст дневной торговли» — их много).

  1. Desire To Trade: интервью с разработчиком системы внутридневной торговли
  2. Top Dog Trading

Подстек:

Недавно я создал подстек, чтобы узнать, как программировать и решать вопросы LeetCode на Python. Проверьте это здесь:

  1. My substack

Примечание от редакторов Data Science: Хотя мы разрешаем независимым авторам публиковать статьи в соответствии с нашими правилами и рекомендациями , мы не поддерживаем каждую авторский вклад.Не стоит полагаться на работы автора без консультации с профессионалами. См. Подробности в наших условиях для читателей .

Как создать бота для торговли акциями с Python

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

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

Имейте в виду, что это руководство не о том, как заработать миллиарды на своем торговом боте. Если бы у меня был такой сложный алгоритм, я бы, вероятно, не стал его отдавать. Скорее, я собираюсь показать вам, как вы можете читать рыночные данные, покупать и продавать акции и программировать логику вашего торгового алгоритма с помощью относительно простого кода Python.

И конечно:
Эта статья носит исключительно информационный характер. Он не предназначен для использования в качестве совета по инвестициям.Обратитесь за консультацией по инвестициям к профессионалу, имеющему соответствующую лицензию.

Вы можете открыть быструю демонстрацию проекта на Codesphere здесь:

https://codesphere.com/#https://github.com/LiorB-D/TradingBot

Однако вам понадобится ключ API, прежде чем вы сможете начать торговать с нашим ботом — подробнее об этом позже.


Некоторые полезные термины

Прежде чем мы начнем, будет полезно определить пару терминов:

  • Торговля на бумаге: Торговля ценными бумагами с фальшивыми деньгами в образовательных или тестовых целях.
  • Backtesting: Тестирование торгового алгоритма на основе прошлых рыночных данных с целью оценки его эффективности.
  • Скользящее среднее: среднее значение определенного количества последних записей в наборе данных.
  • S&P 500: индекс фондового рынка, состоящий из 500 крупнейших компаний, котирующихся на фондовых биржах США.
  • Цена закрытия: окончательная цена ценной бумаги в единицу времени
  • Good ‘Til Cancel (GTC): Когда вы размещаете сделку, она не может быть исполнена сразу.Брокер будет продолжать попытки заключить сделку GTC, пока вы ее не отмените.

Настраивать

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

https://alpaca.markets/

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

Кроме того, если вы не хотите оставить свой скрипт python работающим на вашем компьютере, вам нужно будет развернуть своего торгового бота в облаке.Для этого мы будем использовать Codesphere:

.

https://codesphere.com

Поскольку интерфейс Codesphere — это IDE, мы можем разработать нашего бота прямо на платформе. Однако, если вы хотите выполнять кодирование на своем локальном компьютере, вы можете подключить репозиторий GitHub к Codesphere и развернуть его после этого.

Единственная настройка среды, которая нам действительно нужна, прежде чем мы сможем начать кодирование, — это создать нашу pip-среду:

оболочка pipenv

А потом установить Alpaca API

pipenv установить alpaca_trade_api

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

Обратите внимание на свой ключ API справа. Когда вы впервые откроете свою учетную запись, вам будет предложено сгенерировать ключ, и вам будут показаны как открытый, так и закрытый ключ. Они нам понадобятся позже.

Покупка и продажа акций

Затем мы можем настроить нашу торговую библиотеку Alpaca и покупать и продавать акции на Python следующим образом:

Наша стратегия

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

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

В этой статье мы будем торговать SPY, индексом, который отслеживает S&P 500, и мы будем торговать только одной акцией за раз.

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

Чтение рыночных данных

Теперь давайте рассмотрим, как читать рыночные данные с помощью API Альпака в Python:

Если вы ищете более подробную информацию при построении своей стратегии, ознакомьтесь с документацией Alpaca:
https: // alpaca.рынки / документы / API-документация / api-v2 / market-data / alpaca-data-api-v2 /

Осуществление нашей стратегии

Теперь давайте, наконец, соберем все это вместе для нашего полного торгового алгоритма:

И вот оно! Мы только что создали торгового бота в 54 строках кода! Теперь, если мы оставим это работать в Codesphere в течение дня, мы должны видеть обновление нашей панели управления Alpaca в течение дня:

Бэктестирование стратегии

Теперь, если вы не хотите ждать, чтобы проверить, хорош ли ваш алгоритм, мы можем использовать API рыночных данных Альпаки для тестирования нашего алгоритма Python на исторических данных:

Следующие шаги

Итак, вот и все, мы только что создали элементарного торгового бота с довольно простым Python!

Вот полное репо:
https: // github.ru / LiorB-D / TradingBot

Хотя я настоятельно рекомендую вам поиграть с API Альпаки в образовательных целях, будьте предельно осторожны, если собираетесь торговать реальными ценными бумагами. Одна ошибка в вашем коде может иметь катастрофические последствия для вашего банковского счета.
Заметим, что это прекрасная возможность применить те классы статистики, которые вы изучали.


Прокомментируйте ниже, если вы собираетесь создать свой собственный торговый алгоритм!

Счастливого кодирования от ваших сотрудников из Codesphere, облачного провайдера нового поколения

Как создать алгоритмического торгового бота с Python

Недавние тенденции на мировых фондовых рынках из-за текущей пандемии COVID-19 были далеки от стабильности … и далеко не уверены.В последний раз, когда рынок был таким бурным, многие люди в США и за рубежом потеряли много денег. Но некоторым посчастливилось получить прибыль. Нынешняя ситуация не будет исключением.

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

Установка Python для торговых ботов

Чтобы следовать коду в этой статье, вам понадобится последняя версия Python. Я буду использовать специальную сборку ActivePython , которая включает версию Python и только те пакеты, которые требуются проекту. Вы можете получить копию для себя, выполнив следующие действия:

  • Загрузите и установите среду выполнения «Торгового бота», выполнив следующие действия:
    1. Установите State Tool в Windows с помощью Powershell:
      IEX (New-Object Net.WebClient) .downloadString ('https://platform.activestate.com/dl/cli/install.ps1') Или установите State Tool в Linux или Mac:
      sh <(curl -q https: //platform.activestate .com / dl / cli / install.sh)
    2. Выполните следующую команду, чтобы загрузить сборку и автоматически установить ее в виртуальную среду:
      состояние активировать Pizza-Team / Trading-Bot

Вы можете найти весь код, использованный в этой статье, в моем репозитории GitLab.

Все готово? Давайте углубимся в детали.

Финансовые данные для торговых роботов

Существует множество различных платформ для торговли акциями, некоторые из которых имеют собственные API. Robinhood предлагает платформу для инвестирования без комиссии, которая упрощает и упрощает торговлю. Кроме того, пакет robin – stocks расширяет эту простоту до Python, поддерживая такие функции, как торговля акциями, варианты покупки / продажи и покупка криптовалют, а также предоставляет доступ к портфелю в реальном времени и рыночным характеристикам.

Чтобы следить за этой публикацией, вам необходимо создать учетную запись Robinhood. Обратите внимание: если вы находитесь за пределами США, вам потребуется использовать другую торговую платформу. В этом случае структура торгового бота будет такой же, но то, как вы будете совершать сделки, будет другим.

Для начала мы сначала импортируем нужные нам пакеты, а затем войдем на платформу Robinhood. Замените строки имени пользователя и пароля данными вашей учетной записи:

  импорт  robin_stocks  как  r
  импорт  панд  как  pd
  импорт  раз

username = 'пользователь @ mail.com '
пароль = 'пароль'

login = r.login (логин, пароль) 

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

 р.build_holdings () 

На выходе получается словарь, который выглядит примерно так:

 {‘KMI’: {‘price’: ‘13 .9

’, «Количество»: «1.00000000», ‘Average_buy_price’: ‘0,000’, «Капитал»: «13,99», «Процент_изменения»: «0.00 ’, ‘Equity_change’: ‘13 .9

’, ‘Type’: ‘stock’, ‘Name’: ‘Kinder Morgan’, ‘Id’: ‘346c3dc3-2ef4-470f-aa67-0471cffeb299’, ‘Pe_ratio’: ‘13 .939700 ’, «Процент»: «100,00»}}

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

 р.profiles.load_basic_profile () 

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

Прежде чем мы перейдем к покупке и продаже, полезно создать инструмент визуализации для наблюдения за историческими изменениями в данной акции. Первое, что я делаю, это создаю функцию visualize_price () , которая делает именно это.

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

  def   visualize_price  (ticker_list, span = 'year', bounds = 'normal'):
 для  т  в диапазоне  (len (ticker_list)):
name = str (r.get_name_by_symbol (ticker_list [t]))
hist = r.stocks.get_historicals (список-тикеров [t], диапазон = диапазон, границы = границы)
hist_df = pd.DataFrame ()
 для  i  в диапазоне  (len (hist)):
df = pd.DataFrame (hist [i], index = [i])
hist_df = pd.concat ([hist_df, df])
hist_df.begins_at = pd.to_datetime (hist_df.begins_at, infer_datetime_format =  Истинно )
hist_df.open_price = hist_df.open_price.astype ('float32')
hist_df.close_price = hist_df.close_price.astype ('float32')
hist_df.high_price = hist_df.high_price.astype ('float32')
hist_df.low_price = hist_df.low_price.astype ('float32')

ax = hist_df.plot (x = 'begin_at', y = 'open_price', figsize = (16,8))
топор.fill_between (hist_df.begins_at, hist_df.low_price, hist_df.high_price, альфа = 0,5)
ax.set_xlabel ('Дата')
ax.set_ylabel ('Цена (долл. США)')
ax.legend ([тикер_лист [t]])
ax.set_title (имя)
 возврат  

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

  def   extract_list  ():
ticker_list = список (r.build_holdings (). keys ())
 возврат  ticker_list 

Для запуска функций:

 ticker_list = extract_list ()
visualize_price (список_стали, диапазон = 'год', границы = 'обычный') 

Поскольку у меня только одна акция в моем владении, предоставляется только один участок.Сюжет выглядит так:

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

Торговый бот

Код покупки / продажи

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

Хотя существует множество факторов, которые можно принять во внимание, что приводит к более сложным моделям для определения условий бота, базовая функциональность бота не меняется. В нашем случае я просто использую атрибут percent_change для каждого холдинга, чтобы определить, покупать или продавать. Если цена акции упала на определенный процент, бот совершит покупку. И наоборот, если цена акции выросла на определенный процент, бот выполнит продажу.Чтобы реализовать это поведение, я определил функцию trading_bot :

  def   trading_bot  (trading_dict):
холдинги = r.build_holdings ()
holdings_df = pd.DataFrame ()
 для  i  в диапазоне  (len (холдинги)):
тикер = список (holdings.items ()) [i] [0]
holding_df = pd.DataFrame (список (holdings.items ()) [i] [1], index = [i])
holding_df ['ticker'] = тикер
Holdings_df = pd.concat ([holdings_df, holding_df])
holdings_df = holdings_df [['тикер', 'цена', 'количество', 'процент_изменения', 'средняя_покупка_цена', 'капитал', 'эквити_обмен', 'соотношение_результатов', 'тип', 'имя', 'идентификатор']]

 для  j  в диапазоне  (len (trading_dict)):
holding_df = holdings_df [holdings_df.ticker == list (trading_dict.keys ()) [j]]
, если  holding_df ['percent_change']. Astype ('float32') [0] <= list (trading_dict.values ​​()) [j] [0]:
buy_string = 'Покупка' + str (holding_df ['ticker'] [0]) + 'at' + время.ctime ()
печать (buy_string)
r.orders.order_buy_market (holding_df ['тикер'] [0], 1, timeInForce = 'gfd')
 иначе :
print ('Нечего покупать')

, если  holding_df ['percent_change']. Astype ('float32') [0]> = list (trading_dict.values ​​()) [j] [1]:
sell_string = 'Покупка' + str (holding_df ['тикер'] [0]) + 'at' + time.ctime ()
печать (sell_string)
r.orders.order_sell_market (holding_df ['тикер'] [0], 1, timeInForce = 'gfd')
 иначе :
print ('Нечего продавать') 

Сначала бот извлекает холдинги с платформы Robinhood и выполняет некоторую реструктуризацию данных для создания фрейма данных pandas.Затем он просматривает каждый тикер, присутствующий в trading_dict , и сравнивает значение percent_change с условными лимитами на покупку и продажу. Например, я могу установить оба предела на 0,5%:

 trading_dict = {'KMI': [-0,50, 0,50]}
holdings_df = торговый_бот (trading_dict) 

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

Вот и все! Теперь вы можете создать своего собственного торгового бота, используя Python

.

В этой статье я продемонстрировал, как Python можно использовать для создания простого торгового бота, используя такие пакеты, как pandas и robin-stocks.Воспользовавшись торговой платформой Robinhood, вы можете легко визуализировать эффективность отдельных активов в своем портфеле.

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

Рекомендуемая литература

Платформа ActiveState: как создать настраиваемую среду выполнения за 5 минут?

Как создать блокчейн на Python (получить предварительно созданную среду выполнения)

10 лучших пакетов Python для финансов и финансового моделирования

Следует ли использовать программное обеспечение для автоматизированной дневной торговли (EAs)?

редко автоматизируется ПОЛНОСТЬЮ автоматизируется

Аде Акинруджому / Getty Images

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

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


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

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

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

.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *