MoonMan
MoonMan личный блог
04 ноября 2021, 18:35

Автоматизируем торговлю с помощью TradingView

Часто вижу на форуме вопросы типа «Как написать простого робота, чтобы автоматизировать торговлю?». Несколько раз отвечал, а сегодня делать нечего и решил в одном посте соединить всё воедино, надеюсь пригодится начинающим писателям скриптов. Если коротко: не занимайтесь написанием роботов, всё что вам нужно для успешной торговли уже реализовано в TradingView: рисуете на графике области, линии тренда и прочие фаллосы. Далее создаёте уведомление, например на выход из области или пересечение линии тренда или на закрытие выше линии или на любое другое событие которых в TV огромное количество. TV позволяет на уведомление повесить webhook, то есть может «дёргать» внешний скрипт. Арендуете сервер с внешним IP адресом (далее IP_сервера) и пишете элементарный скрипт, который делает «продать всё по рынку» или «продать всё по цене, которую передал TV» и т. д. Таким образом вся логика у Вас будет на графике, любые сценарии программируются за 5 минут наглядно рисованием.

А теперь скрипты и примеры их использования:

Webhook скрипт на PHP для фонда (на примере Тинькова): https://telegra.ph/webhookListenerTinokphp-11-04
Для него требуется установить в папку со скриптом с помощью composer пакет github.com/jamesRUS52/tinkoff-invest, запуск скрипта на сервере из консоли командой php -S IP_сервера:80 ./webhookListenerTinok.php
Замечание: в TIAccountId можно вписать идентификатор нужного счёта если их несколько (например брокерский и ИИС), lot нужно указывать только для валютных пар.

Webhook скрипт на PHP для крипты (на примере Binance): https://telegra.ph/webhookListenerCryptophp-11-04
Для него требуется скачать архив github.com/ccxt/ccxt и кинуть в папку со скриптом, запуск на сервере из консоли командой php -S IP_сервера:80 ./webhookListenerCrypto.php
Замечание: binance в конфиге можно заменить на любую другую биржу, поддерживаемую ccxt.

Крайне важно ограничить доступ к скриптам по белому списку IP адресов (только серверы TV). На 04.11.2021 это 52.32.178.7, 54.218.53.128, 34.212.75.30, 52.89.214.238. Можно вставить проверку в скрипты, но в примерах выше они вызываются через встроенный веб сервер PHP, открытые порты через некоторое время начнут долбить всякие боты...

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

Если с 04 по 08 ноября закрываемся на дневках выше 4600 — купить эфир по рынку

В TV переходим на интервал 1Д, рисуем линию тренда на 4600 с 04 по 08 ноября:

Автоматизируем торговлю с помощью TradingView

Кликаем правой кнопкой по нарисованной линии — Добавить оповещение для Линия тренда...

Автоматизируем торговлю с помощью TradingView

Устанавливаем условия, жмём На закрытии бара, ставим галку URL веб-хука, в поле ниже пишем IP_сервера, жмём кнопку Больше и в поле Сообщение вписываем текст «ETHUSDT buy MARKET».

Рекомендую сначала всё вписать и сразу (до сохранения) снять галку URL веб-хука, сохранить уведомление. Если уведомление сразу не сработало — молодец, можно отредактировать — поставить галку. Первое время они будут часто срабатывать сразу после их создания :-)

Поле Сообщение имеет вид "ТИКЕР КОМАНДА ПАРАМЕТР", где КОМАНДА — это buy или sell, а ПАРАМЕТР — это MARKET или числовое значение, можно использовать встроенные переменные TW, такие как {{close}} — цена закрытия бара? {{open}}, {{high}}, {{low}} и возможно другие.

Использование webhook для Тинькова точно такое же, в поле Сообщение пишем «GAZP sell 999.99» или «AAPL buy 100». А ещё можно рисовать на одних графиках, а торговать совсем другие инструменты, можно прикрутить лоты, можно сделать переворот, можно использовать встроенные стратегии TV...

Послесловие: это не реклама, выложил то, чем пользуюсь сам. Идея и скрипты предоставлены по принципу «it works for me», не несу никакой ответственности за их работу или не работу у кого-либо. На вопросы «почему PHP?» или «почему не запускается веб сервер и вообще так всё криво реализовано?» отвечать не буду, на вопросы «как запрограммировать с помощью этого барахла мою идею?» отвечу. Если есть интересные проекты, связанные с криптой, торговыми роботами или просто подискутировать на связанные темы — пишите. 
18 Комментариев
  • Двоечник
    04 ноября 2021, 18:54
    А связать между собой нельзя? Т.е например если 2-3 индюка должны сработать тогда придёт оповещение.одно на всех)?
      • Иван Иванов
        14 ноября 2021, 15:50
        MoonMan, я программист с 10 летним стажем так и не разобрался. Синтаксис языка не имеет толком документации. Все что чуть дальше примеров описанных в документации не работает. Ну или у меня не получилось. Почему так мало документации по языку я не понял если честно.
  • Врач-бондиатОр
    04 ноября 2021, 19:39
    Такие сервисы автоматизируют простейшие алгоритмы.
    Более сложные скрипты надо прописывать вручную, а там уже появляются тонкости
      • Serj90
        04 ноября 2021, 21:03
        MoonMan, прибыль может и режут (чаще в одном и том же временном периоде). Но я предпочту оптимизацию увеличивающую мат ожидание)))
      • Врач-бондиатОр
        04 ноября 2021, 21:20
        MoonMan, это верно
  • прикольно, спасибо. 
  • ves2010
    04 ноября 2021, 22:27
    В тслабе тож такое есть
    Но тут сразу ряд проблем
    1 что делать если гэп и цена улетела далеко
    2 что делать если вход и выход на одной свече… а такое бывает

    Т.е просто линий для автоматизации не хватеат
  • Goreloff
    04 ноября 2021, 23:17
    че-то сложно как-то, что-то на програмистком
  • Александр Шмелев
    08 ноября 2021, 17:42

    Я не понимаю, как прикрутить стратегию на ТВ с биржей.

    задача торговать на bybit, понятное дело через API, через вебхук, а как подружить код стратегии с alert сигналом, который уходит вебхуком на биржу ?!

    • Михаил Меркулец
      14 ноября 2021, 16:06
      Александр Шмелев, написать скрипт. Пиши в личку какую стратегию нужно реализовать 
  • Роман Панько
    14 ноября 2021, 18:27
    Можно ли с помощью tv на всем рынке отслеживать аномальные ускорения цены и объемы? Те создавать такие сложные уведомления?
  • f. m.
    11 июня 2022, 22:03
    как отправить вебхуки на локальный сервер? айпи 127.0.0.1 не разрешается

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн