Блог им. den40

Пишем робота для торговли за 15 минут…

В этой статье я опишу самый простой способ сделать робота для торговли криптовалютой. Кто подтолкнул меня к этой идеи можно узнать из предыдущего поста.

Получим такое:
Пишем робота для торговли за 15 минут…

Для анализа акций многие используют TradingView и правильно делают, инструмент действительно очень качественный и даже за бесплатно можно писать скрипты и использовать финансовые данные. 

Самое интересное, что в TradingView есть встроенный бектестер стратегий и можно очень быстро что-то написать. Конечно, для реализаций уникальных стратгеий вам нужно будет открыть документацию и потратить какое-то время, но большая часть стратегий уже описана и вам нужно только понять, как пользоваться кодом.

Например только лонг стратегия на двух МА выглядит вот так:

//@version=5

 

strategy(«2MA by Denis», commission_value = 0.022, initial_capital = 10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, overlay=true)

//ProfitSize = input(100)

fastLength = input(9)

slowLength = input(18)

price = close

 

mafast = ta.sma(price, fastLength)

maslow = ta.sma(price, slowLength)

if (ta.crossover(mafast, maslow))

    strategy.entry(«MA2CrossLE», strategy.long, comment=«MA2CrossLE»)




Для фиксированного размера стопов, добавляем блок стопов.


//БЛОК СТОПОВ и ТЕЙКПРОФИТОВ

 

// The Fixed Percent Stop Loss Code

// User Options to Change Inputs (%)

stopPer = input.float(3.0, title='Stop Loss %') / 100

takePer = input.float(8.0, title='Take Profit %') / 100

 

// Determine where you've entered and in what direction

longStop = strategy.position_avg_price * (1 — stopPer)

shortStop = strategy.position_avg_price * (1 + stopPer)

shortTake = strategy.position_avg_price * (1 — takePer)

longTake = strategy.position_avg_price * (1 + takePer)

 

if strategy.position_size > 0

    strategy.exit(id=«MA2CrossLE», stop=longStop, limit=longTake, comment = «Long Stop Loss/Profit»)

if strategy.position_size < 0

    strategy.exit(id=«MacdShort», stop=shortStop, limit=shortTake, comment = «Short Stop Loss/Profit»)

   

    //PLOT FIXED SLTP LINE

plot(strategy.position_size > 0? longStop: na, style=plot.style_linebr, color=color.red, linewidth=1, title=«Long Fixed SL»)

plot(strategy.position_size < 0? shortStop: na, style=plot.style_linebr, color=color.red, linewidth=1, title=«Short Fixed SL»)

plot(strategy.position_size > 0? longTake: na, style=plot.style_linebr, color=color.green, linewidth=1, title=«Long Take Profit»)

plot(strategy.position_size < 0? shortTake: na, style=plot.style_linebr, color=color.green, linewidth=1, title=«Short Take Profit»)

 

// КОНЕЦ — БЛОК СТОПОВ и ТЕЙКПРОФИТОВ




Поздравляю, вы сделали своего первого робота. И он даже прибыльный 🙂

А в чем подвох вы поймете только после запуска в трейдинг вью.



PS Если вы не поняли, куда пихать код, то попробуйте нажать кнопку “Pine Editor”



ТрейдингВью это отлично, но как заставить его торговать? 


С этим все не так просто, но если ваш робот будет торговать криптовалютой, тогда для вас уже есть онлайн сервис. Называется он  wundertrading

Ссылка реферальная, но я думаю, что вы не будете пользоваться этим сервисов уже совсем скоро, так как есть и другие  способы (можно подписаться, думаю расскажу про них).


Если коротко, то в TradingView создается Alert для стратегии, в котором Notification приходит в виде Webhook. Или в котором будильник использует интернет крючок, как напоминание…


Для тех, кто совсем ничего не понял, есть видео инструкция, правда она на английском языке, но я надеюсь вы поймете все по картинкам.

На десерт: внутри есть более сложная стратегия




★8
19 комментариев

А просто залить на сервер питоновский самописный скрипт нельзя?

Андрей Костюк, Да это самый простой способ, который я и использую, но занимает это явно не 15 минут, тут описан способ для того, что бы начать. 
avatar

А если совсем влом платить пару тысяч рублей за сервер, запустили в powershell и гоняйте. Любая биржа дает апишку, пиши - нехочу. Трейдингвью конечно хороший инструмент, но это посредник между трейдером и биржей

Андрей Костюк, а поподробнее, вот не слышал, прям так просто как
avatar
the Rolling Stones, получать данные можно с любой биржи, что бы не быть привязанным к какой-то конкретной, используйте библиотеку ccxt например. 
avatar
Denis Stelmak, а как от TradingView получать данные для своего робота?
Мне нужны фьючерсы на америке.
avatar
Игрок, webhook
avatar
Веб-хуки позволяют отправлять POST-запрос на определенный URL-адрес каждый раз, когда срабатывает оповещение.

Denis Stelmak, маркет дату в реальном времени можно получать?
Т.е., мне нужна только цена актива, а не сигналы.
avatar
Игрок, можно.
avatar
Андрей Костюк, старый ноутбук и linux lite сделали свое дело. Без проблем работает 24/7 и получается дешево.
avatar
Ну это рекламщик. Тем ни менее может скажите базис работы программы паинт, он же не так основан как квик луа. Другими словами клуа крутит написанное в цикле, а у паинта как то это разбивается на внутренние циклы. Или еще так если с клуа более менее понятно, то с паинтом не понимаю основ. Из практики поправлял под себя общедоступные скрипты, работало, показало что в моем случае программировать там нечего. А всякие оповещения и в клуа делать сподручнее.
avatar
Три раза прочитал нефига не понял от слова ничего
avatar
the Rolling Stones, для тебя есть видео версия :))))))))))))))
avatar
От кого реферальные приходят — от TV или от биржи?)
₽100, пока ниоткого :).
avatar
Вот всюду, где пишут, что это крайне выгодно, нужно смотреть в обратную сторону. Кто ж курицу, несущую яйца золотые, продавать-то станет. Даже полезно читать такое. Говорят — вкладывай тут, значит делай наоборот :).
avatar
Матвей, вы на 100% правы. Продавать, показывать или вообще про это говорить это очень странно :) 
Но представьте, что этот пост кого-то замотивирует попробовать, он втянется и у него будет хороший результат… Это же отлично
avatar
Матвей,

Это очень выгодно. Это охренеть как выгодно, но только в том случае, если вы

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

Два: Смогли все это дело описать на языке программирования, протестировать алгоритм в бою, протестировать апи, чтобы не падало по тупейшему эксепшену пока вы спите, и задеплоить так, чтобы издержки за сервера не были такими, как будто у вас не небольшой скрипт, а огромная инфраструктура для высокоскоростной торговли)))

Это выгодно на столько же, на сколько выгодно любое доходное предприятие.

Ребята, нужна помощь по pine script. Есть стратегия хорошая, но не могу допилить ее 

Напишите кто в телегу, @seregakukla

avatar

теги блога Denis Stelmak

....все тэги



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