Часто вижу на форуме вопросы типа «Как написать простого робота, чтобы автоматизировать торговлю?». Несколько раз отвечал, а сегодня делать нечего и решил в одном посте соединить всё воедино, надеюсь пригодится начинающим писателям скриптов. Если коротко: не занимайтесь написанием роботов, всё что вам нужно для успешной торговли уже реализовано в 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 ноября:
Кликаем правой кнопкой по нарисованной линии — Добавить оповещение для Линия тренда...
Устанавливаем условия, жмём
На закрытии бара, ставим галку
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?» или «почему не запускается веб сервер и вообще так всё криво реализовано?» отвечать не буду, на вопросы «как запрограммировать с помощью этого барахла мою идею?» отвечу. Если есть интересные проекты, связанные с криптой, торговыми роботами или просто подискутировать на связанные темы — пишите.
Более сложные скрипты надо прописывать вручную, а там уже появляются тонкости
Но тут сразу ряд проблем
1 что делать если гэп и цена улетела далеко
2 что делать если вход и выход на одной свече… а такое бывает
Т.е просто линий для автоматизации не хватеат
ves2010, По проблеме 1 есть несколько вариантов, зависит от того как Вы отрабатываете ГЭПы: можно использовать {{high}} или {{low}} в качестве цены, мне этого обычно хватает. По проблеме 2 проблемы не вижу — можно сделать две линии на минимальном расстоянии друг от друга (хоть 1 пипс), но лучше переключиться на низший таймфрейм и уже там нарисовать.
Предложенное мной решение неудобно использовать скальпинга, лучше подходит для таймфреймов начиная с часовых
Я не понимаю, как прикрутить стратегию на ТВ с биржей.
задача торговать на bybit, понятное дело через API, через вебхук, а как подружить код стратегии с alert сигналом, который уходит вебхуком на биржу ?!