Как создать торгового бота для крипторынка с использованием TradingView (PineScript)

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

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

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

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

3 наиболее популярных крипто-торговых стратегий: Создание рынка (Market Making), Арбитраж, Стратегии следования за трендом.

Создание рынка (Market Making)

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

Арбитраж

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

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

Целью этой стратегии является выявление тренда актива и выполнение сделок на основе базового тренда. Стратегия следования за трендом пытается получить прибыль путем анализа импульса актива в заданном направлении. Трейдеры, которые выполняют эту стратегию, войдут в длинную позицию, когда криптовалюта торгуется вверх (long position), и продают позицию (short position), когда тренд разворачивается.

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

Простой торговый бота с использованием TradingView

А пока давайте приведем пример торгового бота, который может быть построен с использованием TradingView (TV). Прежде всего, важно создать сценарий стратегии, потому что сценарий стратегии может быть протестирован, и TV предоставит подробные результаты вашей стратегии.

Код ниже, представляет простую стратегию EMA (exponential moving average), в которой вход и выход происходят при пересечении быстрой и медленной экспоненциальной скользящей средней (EMA). Это можно вставить в Pine Editor TV.

Пример торговой стратегии

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © Wunderbit Trading (WBT) //@version=4 strategy("EMA cross", overlay=true) //Inputs fast_ema=ema(close, 9) slow_ema=ema(close, 21) plot(fast_ema, color=color.red) plot(slow_ema, color=color.blue) //Strategy Conditions entry_long = crossover(fast_ema, slow_ema) exit_long = crossunder(fast_ema, slow_ema) entry_short= crossover(slow_ema, fast_ema) exit_short= crossunder(slow_ema, fast_ema) //Strategy Execution strategy.entry("Long", long=true, when=entry_long) strategy.close("Long", when=exit_long) strategy.entry("Short", long=false, when=entry_short) strategy.close("Short", when=exit_short)
Пример торговой стратегии Kirill Osaulenko
Пример торговой стратегии Kirill Osaulenko

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

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

Пример study сценария с той же стратегией

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © Wunderbit Trading (WBT) //@version=4 study("EMA cross", overlay=true) //Inputs fast_ema=ema(close, 9) slow_ema=ema(close, 21) plot(fast_ema, color=color.red) plot(slow_ema, color=color.blue) //Strategy Conditions entry_long = crossover(fast_ema, slow_ema) exit_long = crossunder(fast_ema, slow_ema) entry_short= crossover(slow_ema, fast_ema) exit_short= crossunder(slow_ema, fast_ema) //Strategy Execution alertcondition(entry_long, title="Enter Long") alertcondition(exit_long, title="Exit Long") alertcondition(entry_short, title="Enter Short") alertcondition(exit_short, title="Exit Short") plotshape(series=entry_long, text="Long", style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small) plotshape(series=exit_long, text="EXIT Long",style=shape.triangledown, location=location.abovebar, color=color.purple, size=size.small) plotshape(series=entry_short, text="Short", style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small) plotshape(series=exit_short, text="EXIT Short",style=shape.triangleup, location=location.belowbar, color=color.purple, size=size.small)
Пример study сценария с той же стратегией Kirill Osaulenko
Пример study сценария с той же стратегией Kirill Osaulenko

Теперь вы можете создавать оповещения (alerts) для вашего торгового актива и выбирать условия оповещения и действия.

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

22
3 комментария

Детальное руководство по автоматизации Трейдингвью стратегий и индикаторов https://trading.wunderbit.co/ru/tradingview-automated-trading

Ответить

А есть способ программно через какое-нибудь api посмотреть текущий статус стратегии (в логе она или в шорте)??? Мне нужно моим скриптом это увидеть и в этом же скрипте выполнять определённый действия. 

Ответить

Нет необходимости преобразовывать стратегию в study. Алерт можно создать и на стратегию. https://www.tradingview.com/support/solutions/43000481368-strategy-alerts/

Ответить