Введение

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

Для многих TradingView — это идеальная платформа для построения графиков. Это мощное веб-приложение HTML5 предоставляет центр инструментов технического анализа, помогая миллионам пользователей отслеживать Forex, криптовалюту и традиционные движения фондового рынка.

TradingView обладает множеством мощных функций: он позволяет пользователям отслеживать активы на нескольких торговых платформах и публиковать свои торговые обзоры на своих сайтах в социальных сетях. В этой статье основное внимание будет уделено возможностям настройки. Мы будем использовать Pine Script, собственный язык программирования TradingView, который позволяет нам более детально контролировать макет графика.

Давайте начнем!


Что такое Pine Script?

Pine Script — это язык сценариев, который можно использовать для изменения графиков TradingView. Платформа TradingView уже предлагает множество подобных функций, но Pine Script идет еще дальше. Если вы хотите изменить цвет свечного графика или протестировать новую стратегию, Pine Editor позволяет вам настраивать графики в реальном времени в соответствии с вашими потребностями.

Сам код хорошо документирован, поэтому обязательно ознакомьтесь с руководством пользователя для получения подробной информации. Цель этой статьи — обсудить некоторые основы и представить индикаторы, которые могут пригодиться в торговле криптовалютой.


создавать

Pine Script прост и удобен в использовании. Любой код, который мы пишем, работает на серверах TradingView, поэтому мы можем получить доступ к редактору через браузер и разрабатывать наши скрипты без необходимости дополнительной загрузки или настройки.

В этом уроке мы построим график валютной пары Bitcoin/Binance USD (BTCBUSD). Если у вас еще нет учетной записи Binance, создайте бесплатную учетную запись (учетная запись Pro также возможна, но не обязательна для этого руководства).

Откройте ссылку, и вы увидите диаграмму, похожую на следующую:


Tradingview上的BTCBUSD图表

Данные вашей диаграммы могут быть обновлены.


Теперь мы хотим получить диаграмму с богатыми функциями, нажмите кнопку, чтобы войти. Затем мы сможем увидеть более подробные виды, инструменты рисования, параметры рисования линий тренда и другие функции.


BTCBUSD在tradingview上的全功能图表

Полнофункциональные графики. Вы можете настроить расписание, нажав «Просмотр» над выделенной вкладкой.


Мы не будем обсуждать, как использовать различные доступные инструменты, но если вы действительно хотите провести технический анализ, мы настоятельно рекомендуем вам сначала с ними ознакомиться. В левом нижнем углу (как показано на рисунке) вы увидите несколько разных вкладок — нажмите «Редактор Pine».


Редактор Сосны


screenshot截屏


Этот редактор потрясающий. Мы сообщим ему, что мы хотим сделать, а затем нажмем «Добавить в диаграмму», и мы увидим добавленную нами аннотацию, появившуюся на диаграмме. Обратите внимание: если мы добавим несколько аннотаций одновременно, они перепутаются, поэтому в примере мы удалим их (щелкните правой кнопкой мыши на графике > Удалить индикатор).

Как видите, у нас уже есть несколько строк кода. Давайте нажмем «Добавить в диаграмму» и посмотрим, что произойдет.


将第一个脚本添加到tradingview图表中


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

исследование("myscript")

Первая строка просто настраивает нашу аннотацию. Все, что нужно, это имя индикатора, который вы хотите вызвать (в данном случае «Мой скрипт»), но мы также можем добавить некоторые дополнительные параметры. Один из них — переопределение: этот параметр указывает TradingView поместить индикатор на существующий график (а не на новый график). Как видно из первого примера, который мы перечислили, значение по умолчанию — false. Хотя вы пока не видите, как это работает, overlay=true добавит индикатор на существующий график.

Рисование диаграммы (Закрыть)

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

Теперь давайте попробуем следующее:

//@version=4 исследование("Мой сценарий", overlay=true)plot(open, color=color.purple)

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

хорошо! Давайте удалим текущую аннотацию (помните, это делается нажатием правой кнопки мыши и выбором Удалить индикатор). Наведите указатель мыши на Bitcoin/BUSD и нажмите кнопку «Скрыть», чтобы удалить текущий график.

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

//@version=4 исследование("Мой скрипт", overlay=true)plotcandle(open, high, low, close)

Началось все хорошо, но из-за тусклых цветов все выглядело немного скучно. В идеале график K-линии должен быть красным, когда цена открытия ниже цены закрытия, и зеленым, если цена закрытия выше цены открытия. Мы добавляем строку над функциейplotcandle():

//@version=4 исследование("Мой сценарий", overlay=true) цвета = открыть >= закрыть?color.red: color.greenplotcandle(open, high, low, close)

Для этого необходимо просмотреть каждый график K-линий, чтобы проверить, превышает ли цена открытия цену закрытия или равна ей. Если это так, то это означает, что цена за это время упала и свечной график станет красным. В противном случае он станет зеленым. Измените функциюplotcandle() и добавьте следующую цветовую схему:

//@version=4 Study("My Script", overlay=true) flowers = open >= close?color.red: color.greenplotcandle(open, high, low, close, color=colors)

Если вы еще этого не сделали, удалите существующую метрику и добавьте ее на диаграмму. Теперь нам нужно было нарисовать график, похожий на график K-линий.


Tradingview上的K线图

Отличная работа!


Нарисуйте скользящую среднюю (MA)

Мы выполнили некоторые основные операции. Давайте взглянем на наш первый пользовательский индикатор – экспоненциальную скользящую среднюю, или EMA. Этот инструмент полезен, поскольку позволяет нам фильтровать любой рыночный шум и сглаживать ценовое действие.

EMA немного отличается от простой скользящей средней (SMA) тем, что в ней больше внимания уделяется последним данным. Он склонен больше реагировать на внезапные изменения и часто используется для краткосрочных операций (например, в дневной торговле).


Простая скользящая средняя (SMA)

Мы также можем построить график SMA, чтобы позже сравнить их. Добавьте эту строку в свой скрипт.

сюжет (sma (закрыть, 10))

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


基于前10天的简单移动平均数

SMA основана на данных за предыдущие десять дней.


Экспоненциальная скользящая средняя (EMA)

EMA сложнее понять, но не волнуйтесь. Давайте сначала проанализируем эту формулу:

EMA = (цена закрытия – EMA предыдущего дня) * кратное – EMA предыдущего дня

Что это означает? Каждый день мы рассчитываем новое значение скользящей средней на основе значения предыдущего дня. Множитель «взвешивается» по количеству последних дней и рассчитывается по следующей формуле:

Множитель = 2/(длина EMA + 1)

Как и в случае с простой скользящей средней, нам нужно присвоить значение длине EMA. Синтаксически построение функции EMA аналогично построению функции SMA. Постройте это рядом с SMA, и вы сможете сравнить их.

//@version=4 исследование("Мой скрипт", overlay=true)plot(sma(close, 10))plot(ema(close,10))


EMA和SMA在同一个tradingview图表上

Вы увидите, что эти два типа МА немного отличаются.


➟ Хотите начать свое путешествие по криптовалюте? Добро пожаловать на покупку биткойнов на Binance!


Встроенный скрипт

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

В правом верхнем углу редактора нажмите «Создать». Вы получите раскрывающееся меню, показывающее множество различных технических индикаторов. Нажмите на индекс скользящей средней, чтобы просмотреть исходный код индикатора EMA.



Pine script中的移动平均指数

Нажмите и добавьте его на диаграмму.


Этот индекс отличается от нашего: вы заметите функцию input(). Это здорово с точки зрения удобства использования, потому что вы можете нажать на это поле…


在tradingview界面上修改图表


...и щелкните значок шестеренки настроек, чтобы легко изменить некоторые значения во всплывающем окне.


改变EMA的输入内容


Чтобы продемонстрировать это, мы добавим несколько функций input() в следующий скрипт.


График индикатора индекса относительной силы (RSI)

Индекс относительной силы (RSI) – еще один важный индикатор технического анализа. Известный как индикатор импульса, он измеряет цену, по которой актив покупается и продается. По шкале от 0 до 100 показатель RSI пытается сообщить инвесторам, перекуплен или перепродан актив. Обычно, если актив имеет балл 30 или меньше, его можно считать перепроданным, а балл 70 и более — перекупленным.

Перейдите в раздел «Новая>Стратегия RSI», чтобы увидеть это своими глазами. RSI обычно измеряется на периоде 14 (т.е. 14 часов или 14 дней), но вы можете настроить этот параметр в соответствии со своей стратегией.

Добавьте RSI на график. Теперь вы должны увидеть несколько стрелок (определенных функцией Strategy.entry() в этом коде). RsiLE представляет собой потенциальную возможность расширить актив, поскольку он может быть перепродан. RsiSE выделяет возможные точки для продажи, когда актив перекуплен. Обратите внимание, что, как и в случае со всеми индикаторами, вам не обязательно рассматривать эти индикаторы как убедительное свидетельство того, что цены будут снижаться/увеличиваться.


Бэктестирование

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

Ниже мы приведем простой пример скрипта. Мы планируем использовать простую и понятную стратегию для входа в длинную позицию, когда цена Биткойна упадет до 11 000 долларов США, и выхода из длинной позиции, когда цена превысит 11 300 долларов США. Тогда мы сможем увидеть, насколько прибыльной была эта стратегия исторически.

//@version=4 Strategy("ToDaMoon", overlay=true) enter = input(11000) exit = input(11300) цена = close if (price <= enter) Strategy.entry("BuyTheDip",strategy.long ,comment="BuyTheDip") if (цена >= выход) Strategy.close_all(comment="SellTheNews")

Здесь мы определяем вход и выход как переменные — оба являются входами, то есть мы можем внести изменения в оба позже на графике. Мы также установили ценовую переменную, которая будет принимать цену закрытия каждого периода. Затем у нас есть некоторая логика, следующая шаблону оператора if. Если часть в скобках истинна, то будет запущен блок с отступом под ней. В противном случае оно будет пропущено.

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

Мы аннотируем график стрелками, показывающими, где мы входим/выходим, поэтому мы используем параметры оценки, чтобы указать, какие точки отмечают эти точки (в данном случае «BuyTheDip» и «SellTheNews»). Скопируйте код и добавьте его на диаграмму.


指标在tradingview图表中处于活跃状态

Теперь вы можете увидеть эти показатели на графике. Возможно, потребуется усиление.


TradingView автоматически применяет ваши правила к старым данным. Вы также заметите, что TradingView переключается с вкладки «Редактор Pine» на вкладку «Тестер стратегий». Это позволяет вам увидеть обзор потенциальной прибыли, список сделок и эффективность каждого индикатора.


交易观点策略测试器

Позиции, в которые мы вошли и из которых вышли.


Комбинированный

Теперь мы можем написать собственный сценарий, используя некоторые концепции, которые мы видели до сих пор. Мы объединим EMA и RSI и будем использовать их значения, чтобы влиять на цвет графика K-линии, чтобы мы могли легко его понять.

Но это не является финансовой рекомендацией, и не существует объективно правильного способа использования этих показателей. Как и все другие инструменты, его следует комбинировать с другими инструментами для разработки собственной инвестиционной стратегии.

Теперь давайте изучим новый скрипт. Удалите все индикаторы с графика и скройте график Bitcoin/BUSD, чтобы у нас был чистый операционный фон.

Давайте сначала посмотрим на определение. Назовите его как хотите, только не забудьте установить overlay=true.

Study(title="Скрипт Binance Academy", overlay=true)

Помните нашу предыдущую формулу EMA. Нам нужно использовать длину EMA для расчета мультипликатора. Давайте превратим это во входные данные, требующие целое число цифр, без десятичных знаков. Мы также установим минимальное значение (minval) и значение по умолчанию (defval).

Study(title="Скрипт Binance Academy", overlay=true) emaLength = input(title="Длина EMA", type=input.integer,defval=25, minval=0)


На основе этой новой переменной мы можем рассчитать значение EMA для каждой свечи на графике:

Study(title="Скрипт Binance Academy", overlay=true) emaLength = input(title="Длина EMA", type=input.integer,defval=25, minval=0) emaVal = ema(close, emaLength)


очень хороший. Далее давайте посмотрим на RSI. Мы присвоим ему значение длины аналогичным образом:

Study(title="Скрипт Binance Academy", overlay=true) emaLength = input(title="Длина EMA", type=input.integer,defval=25, minval=0) emaVal = ema(close, emaLength) rsiLength = input (title="Длина RSI", type=input.integer,defval=25, minval=0)

Теперь мы можем рассчитать:

Study(title="Скрипт Binance Academy", overlay=true) emaLength = input(title="Длина EMA", type=input.integer, defval=25, minval=0) emaVal = ema(close, emaLength) rsiLength = input (title="Длина RSI", type=input.integer, defval=25, minval=0) rsiVal = rsi(close, rsiLength)

На этом этапе давайте соберем логику, определяющую цвета свечей в зависимости от значений EMA и RSI. Предположим, что (а) свеча закрывается выше EMA и (б) RSI находится выше 50.

Почему мы должны это предполагать? Потому что вы можете решить использовать комбинацию этих индикаторов, чтобы знать, когда открывать длинную или короткую позицию по биткойнам. Например, вы можете подумать, что выполнение этих двух условий означает, что сейчас подходящее время для открытия длинных позиций. Или наоборот, вы можете использовать его, чтобы напомнить себе, когда не следует открывать короткую позицию, даже если другие индикаторы говорят об обратном.

Поэтому наша следующая строка кода будет выглядеть так:

Study(title="Скрипт Binance Academy", overlay=true) emaLength = input(title="Длина EMA", type=input.integer,defval=25, minval=0) emaVal = ema(close, emaLength) rsiLength = input (title="Длина RSI", type=input.integer,defval=25, minval=0) rsiVal = rsi(close, rsiLength) цветов = close > emaVal и rsiVal > 50? цвет.зеленый: цвет.красный

Если мы переведем это предложение на простой английский язык, мы на самом деле говорим, что если значение EMA превышает цену закрытия, а показатель RSI превышает 50, свечной график станет зеленым. В противном случае он станет красным.

Затем постройте график EMA:

Study(title="Скрипт Binance Academy", overlay=true) emaLength = input(title="Длина EMA", type=input.integer,defval=25, minval=0) emaVal = ema(close, emaLength) rsiLength = input (title="Длина RSI", type=input.integer,defval=25, minval=0) rsiVal = rsi(close, rsiLength) цветов = close > emaVal и rsiVal > 50? color.green: график color.red(emaVal, "EMA")

Наконец, нарисуйте K-линию, обязательно укажите параметры цвета:

Study(title="Скрипт Binance Academy", overlay=true) emaLength = input(title="Длина EMA", type=input.integer,defval=25, minval=0) emaVal = ema(close, emaLength) rsiLength = input (title="Длина RSI", type=input.integer,defval=25, minval=0) rsiVal = rsi(close, rsiLength) flowers = close > emaVal и rsiVal > 50?color.green: color.redplot(emaVal , "EMA")plotcandle(открытие, максимум, минимум, закрытие, цвет=цвета)

Итак, сценарий написан! Добавьте его на диаграмму и посмотрите, как это работает.


Tradingview脚本在运行

График Bitcoin/BUSD с индикаторами EMA/RSI.


Подведем итог

В этой статье мы продемонстрируем вам функциональность редактора Pine на TradingView на некоторых базовых примерах. Теперь вы можете чувствовать себя уверенно, делая простые аннотации на ценовых графиках, чтобы получить больше информации от ваших собственных индикаторов.

В этой статье мы рассмотрели лишь некоторые из этих индикаторов, но создать более сложные индикаторы несложно — вы можете создать новый встроенный скрипт или написать свой собственный.

Все еще не хватает вдохновения? Следующие статьи могут дать некоторые идеи для вашего следующего проекта:

  • Краткое руководство по индикатору Parabolic

  • «Руководство по изучению уровней Фибоначчи»

  • «Подробное объяснение опережающих и запаздывающих индикаторов»

  • Подробное объяснение индикатора экспоненциальной скользящей средней (MACD)