В первой и второй части мы рассмотрели принципы построения стратегии на платформе TradingView, настроили шлюз для отправки сигналов на биржу Binance.
В этой части мы доработаем стратегию в TradingView для отправки сообщений об открытии позиции, о размере Stop Loss и Take Profit.
Ниже я привожу простую стратегию торговли по сигналам индикатора RSI:
Давайте разберем каждую строку кода:
strategy("My script", overlay=true) - Название скрипта
pair = input('BTCUSDT', 'Pair') - Пара для торговли на Binance
leverage = input(5, 'Leverage', options=[1,2,3,5,10,20,50,75,100,125]) - Уровень маржи на Binance
qty = input('$100', 'Qty', tooltip='Например 100$ с leverage=5 потребуют на счету не менее 20$')
priceType = input('market', 'Price type', options=['market','stop-limit'], tooltip='Тип ордера - По рынку или Стоп-лимит, если хотите использовать Стоп-лосс и Тейк профит - то тут выбираете По-рынку')
istpsl = input(true, 'TP/SL', tooltip='значение true/false в зависимости хотите ли использовать stop-loss и take-profit')
tp = input(2.0, 'TP, %', input.float, minval=0.1, step=0.1, tooltip='Уровень Тейк-профита в процентах')
sl = input(1.0, 'SL, %', input.float, minval=0.1, step=0.1, tooltip='Уровень Стоп-лосса в процентах')
slot = input(2, 'Slot ID', minval=1, step=1, tooltip='Указываете номер слота в сервисе Aleeert')
userkey = input('USER KEY', 'Код ключа из сервиса Aleeert userkey')
comment = 'Pine script Starter' // Просто комментарий
command1 = '' // служебная переменная
command2 = '' // служебная переменная
long = false // служебная переменная
short = false // служебная переменная
isLong = false // служебная переменная
isShort = false // служебная переменная
isLong := isLong[1] // служебная переменная
isShort := isShort[1] // служебная переменная
orderPrice = priceType=='stop-limit' ? tostring(round_to_mintick(close)) + ':' + tostring(round_to_mintick(close)) + '(S)' : 'market' // собираем цену открытия для отправки в сервис Aleeert
tpsl = istpsl ? '|' + tostring(tp) + '%|' + tostring(sl) + '%' : '' // записываем TP/SL в строковом виде для отправки в сервис Aleeert
rsiLength = 14 // параметр для RSI
rsiValue = rsi(close, rsiLength) // считаем RSI по ценам закрытия
if (strategy.position_size==0) // ищем вход только если мы не в позиции
if (rsiValue > 80) // входим в шорт если зона перекупленности
short := true // служебная переменная
isShort := true // служебная переменная
isLong := false // служебная переменная
command1 := 'if not short: ' + pair + '(x' + tostring(leverage) + '), cancel-close-sell, ' + qty + ', ' + orderPrice + tpsl + ', ' + tostring(slot) + ', ' + userkey + ', ' + comment // формируем команду для отправки в Aleeert
strategy.entry("Short", strategy.short) // Устанавливаем вход в стратегию в шорт
strategy.exit("Exit Short profit", "Short", limit = loww ,stop =highh) // устанавливаем критерии выхода из сделки SL/TP
alert(command1 + ';' + command2, alert.freq_once_per_bar_close) // создаем алерт (уведомление) в TradingView - самая важная строчка
if (rsiValue < 20) // входим в лонг в зоне перепроданности
long := true // служебная переменная
isLong := true // служебная переменная
isShort := false // служебная переменная
command1 := 'if not long: ' + pair + '(x' + tostring(leverage) + '), cancel-close-buy, ' + qty + ', ' + orderPrice + tpsl + ', ' + tostring(slot) + ', ' + userkey + ', ' + comment // формируем команду для отправки в Aleeert
strategy.entry("Long", strategy.long) // устанавливаем критерии выхода из сделки SL/TP
strategy.exit("Exit Long profit", "Long", limit = highh,stop = loww) // устанавливаем критерии выхода из сделки SL/TP
alert(command1 + ';' + command2, alert.freq_once_per_bar_close) // создаем алерт (уведомление) в TradingView - самая важная строчка
Логика работы алгоритма
1. Проверяем есть ли позиция в на текущей свече
2. Если позиции нет, то проверяем сигнал индикатора RSI
3. Если индикатор дал сигнал, то формируем сообщение для отправки на шлюз Aleeert
4. Заставляем TradingView отправить нам сигнал
Последние штрихи в настройке TradingView
Создаем алерт по стратегии. Нажимаем на будильник.
Выбираем тип уведомления Webhook URL и вписываем адрес сервиса https://aleeert.com/api/v1/
Проверяем в баре справа, что уведомления по скрипту заработали.
В течении недели тестирования нового алгоритма, доход составил 35%
Полезные ссылки:
Телеграмм канал "МИР ТРЕЙДИНГА И РОБОТОВ": https://t.me/unibotplatform_ru
YouTube канал: https://www.youtube.com/channel/UCURR4MGOiUMBtn5eChf-r9g
Часть 1 - введние в создание торговых стратегий на TradingView
Часть 2 - настройка шлюза между TradingView и Binance
Часть 3 - настройка стратегии TradingView