Блог им. 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?» или «почему не запускается веб сервер и вообще так всё криво реализовано?» отвечать не буду, на вопросы «как запрограммировать с помощью этого барахла мою идею?» отвечу. Если есть интересные проекты, связанные с криптой, торговыми роботами или просто подискутировать на связанные темы — пишите. 
12.1К | ★75
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

Читайте на SMART-LAB:
Фото
Снижение военной премии в нефти: что это меняет для доллара и G10
Во второй половине понедельника – начале вторники рынки активно пересматривают премию за худший сценарий на энергетическом рынке, что цепочкой...
Фото
12 марта Группа Ренессанс страхование опубликует МСФО за 2025 год
Напоминаем, что 12 марта 2026 года RENI опубликует МСФО Группы за 2025 год, а также проведет День инвестора, чтобы рассказать о ситуации на...
Фото
📈 Новый выпуск облигаций МГКЛ уже торгуется на рынке
Биржевые облигации ПАО «МГКЛ» серии 001PS-02 начали торговаться на вторичном рынке после размещения. 💼 Выпуск доступен для неквалифицированных...
Фото
Гендиректор Инарктики продал свои акции компании. Что это может значить?
Вечером в пятницу (6 марта ) вышел сущфакт о том, что Соснов Илья Геннадьевич, гендиректор Инарктики, продал свои акции компании. В нашем...

теги блога MoonMan

....все тэги



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