Блог им. MoonMan

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

    • 04 ноября 2021, 18:35
    • |
    • MoonMan
  • Еще

Часто вижу на форуме вопросы типа «Как написать простого робота, чтобы автоматизировать торговлю?». Несколько раз отвечал, а сегодня делать нечего и решил в одном посте соединить всё воедино, надеюсь пригодится начинающим писателям скриптов. Если коротко: не занимайтесь написанием роботов, всё что вам нужно для успешной торговли уже реализовано в 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?» или «почему не запускается веб сервер и вообще так всё криво реализовано?» отвечать не буду, на вопросы «как запрограммировать с помощью этого барахла мою идею?» отвечу. Если есть интересные проекты, связанные с криптой, торговыми роботами или просто подискутировать на связанные темы — пишите. 
★72
18 комментариев
А связать между собой нельзя? Т.е например если 2-3 индюка должны сработать тогда придёт оповещение.одно на всех)?
avatar
Двоечник, можете запрограммировать их в стратегию и в ней уже повесить уведомления на события покупки и продажи.
avatar
MoonMan, я программист с 10 летним стажем так и не разобрался. Синтаксис языка не имеет толком документации. Все что чуть дальше примеров описанных в документации не работает. Ну или у меня не получилось. Почему так мало документации по языку я не понял если честно.
avatar
Иван Иванов, в TW много встроенных стратегий, любую можно загрузить к себе и посмотреть исходный код. Я изучал встроенный ЯП именно таким образом — по чужому коду. 
avatar
Такие сервисы автоматизируют простейшие алгоритмы.
Более сложные скрипты надо прописывать вручную, а там уже появляются тонкости
Врач-бондиатОр, чем сложнее стратегия и чем больше параметров учитывается — тем меньше прибыль. Проверено неоднократно на разных рынках, инструментах, таймфреймах… Если у Вас не так — снимаю шляпу!
avatar
MoonMan, прибыль может и режут (чаще в одном и том же временном периоде). Но я предпочту оптимизацию увеличивающую мат ожидание)))
avatar
MoonMan, это верно
прикольно, спасибо. 
В тслабе тож такое есть
Но тут сразу ряд проблем
1 что делать если гэп и цена улетела далеко
2 что делать если вход и выход на одной свече… а такое бывает

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

ves2010, По проблеме 1 есть несколько вариантов, зависит от того как Вы отрабатываете ГЭПы: можно использовать {{high}} или {{low}} в качестве цены, мне этого обычно хватает. По проблеме 2 проблемы не вижу — можно сделать две линии на минимальном расстоянии друг от друга (хоть 1 пипс), но лучше переключиться на низший таймфрейм и уже там нарисовать. 

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

avatar
че-то сложно как-то, что-то на програмистком
avatar

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

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

Александр Шмелев, написать скрипт. Пиши в личку какую стратегию нужно реализовать 
Александр Шмелев, алерт должен уходить не на биржу, а на Ваш сервер, на котором крутится пхп скрипт (описанная мной схема). Беглый поиск по «tradingview strategy alert webhooks with binance api» дал много результатов, посмотрите возможно кто-то делает по другому…
avatar
Можно ли с помощью tv на всем рынке отслеживать аномальные ускорения цены и объемы? Те создавать такие сложные уведомления?
avatar
RRomanov, на всём рынке сразу — вряд ли. В TV есть скринер, но я его не изучал, не уверен что к нему можно прикрутить алерты с вебхуками
avatar
как отправить вебхуки на локальный сервер? айпи 127.0.0.1 не разрешается
avatar

теги блога MoonMan

....все тэги



UPDONW
Новый дизайн