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 индюка должны сработать тогда придёт оповещение.одно на всех)?
  • Врач-бондиатОр
    04 ноября 2021, 19:39
    Такие сервисы автоматизируют простейшие алгоритмы.
    Более сложные скрипты надо прописывать вручную, а там уже появляются тонкости
  • прикольно, спасибо. 
  • ves2010
    04 ноября 2021, 22:27
    В тслабе тож такое есть
    Но тут сразу ряд проблем
    1 что делать если гэп и цена улетела далеко
    2 что делать если вход и выход на одной свече… а такое бывает

    Т.е просто линий для автоматизации не хватеат

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

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