Pine Script v5 для TradingView - пошаговое руководство
Шрифт:
Последнее, что мы сделаем, это добавим код, чтобы увидеть, открыт ли рынок в Нью-Йорке, и установим зеленый фон, если это так. bgcolor(na( NY ) ? na : color.green)
Вы заметите, что на приведенной ниже диаграмме есть три цвета.
Это связано с тем, что лондонская и нью-йоркская сессии пересекаются, и обычно это самое волатильное время дня.
Теперь мы можем легко
Полный код: //@version=5 indicator("Forex Sessions", overlay=true) Tokyo = time(timeframe.period, "0000-0800") London = time(timeframe.period, "0700-1500") NY = time(timeframe.period, "1200-2000") bgcolor(na(Tokyo) ? na : color.fuchsia) bgcolor(na(London) ? na : color.blue) bgcolor(na( NY ) ? na : color.green) Нанесение аннотаций
Существует несколько вариантов печати аннотаций. Например, вы можете использовать функцию hline для рисования горизонтального уровня на графике.
Существует функция plotchar, которая позволяет отображать символы ASCII на графике. Это часто используется для построения заметки сверху или снизу ценового бара.
Другой распространенной функцией построения графиков является plotshape, которая позволяет отображать различные фигуры. Этот довольно популярен, так как многие люди используют его для построения стрелок вверху или внизу столбцов, чтобы показать сигналы покупки или продажи.
Полный список различных доступных аннотаций см. в разделе Обзор аннотаций в руководстве пользователя скрипта Pine. Как я могу создать собственный индикатор в скрипте Pine?
Мы собираемся создать мультитаймфреймовый индикатор.
Это основано на стратегии скальпинга, которую я использовал, когда впервые начал торговать. Это стратегия возврата к среднему, которая хорошо работает в начале азиатской сессии на рынках Forex, когда в целом все спокойно.
Стратегия использует полосы Боллинджера на 5-минутном графике и RSI на 1-минутном графике.
Идея состоит в том, чтобы искать расхождение rsi на 1-минутном графике, когда цена достигает верхней или нижней полосы Боллинджера на 5-минутном графике.
Потенциальной целью является средняя линия 5-минутной полосы Боллинджера или нижняя линия 1-минутной полосы Боллинджера.
Изображение выше является примером стратегии. Индикатор сессий Forex, который мы использовали в предыдущем примере, был использован здесь, чтобы показать, когда открыта азиатская сессия.
Эта стратегия лучше всего работает в первой половине сессии, после чего риск прорыва или направленного движения имеет тенденцию к увеличению.
Когда я торговал по этой стратегии, мне приходилось держать открытыми два графика: 1-минутный и 5-минутный.
Но в приведенном выше примере показаны 5-минутные полосы Боллинджера, нарисованные непосредственно на 1-минутном графике. Мы создадим
Начнем с объявления имени скрипта и указания, что это индикатор. Также можно добавить более короткое название, это имя будет отображаться на диаграммах.
Затем мы устанавливаем некоторые пользовательские входы. Мы можем дублировать большинство входных данных из обычного индикатора полосы Боллинджера (как показано на изображении выше) для нашего пользовательского индикатора. // Get user input tf = input(title="BBands Timeframe", defval="5") len = input(title="Length", defval=20) stddev = input(title='StdDev', defval=2)
Мы можем создать индикатор полосы Боллинджера из встроенной вспомогательной функции. [middle, upper, lower] = ta.bb(close, len, stddev)
Эта функция возвращает три значения. Нижняя, средняя и верхняя полоса. Они сохраняются индивидуально в переменные.
Значения должны рассчитываться на другом таймфрейме. Мы можем использовать функцию security, чтобы указать временной интервал, выбранный пользователем.
Это сохраняется в переменной tf, созданной предыдущим пользовательским вводом. hbbandsMid = request.security(syminfo.tickerid, tf, middle, barmerge.gaps_on, barmerge.lookahead_off) hbbandsUpper = request.security(syminfo.tickerid, tf, upper, barmerge.gaps_on, barmerge.lookahead_off) hbbandsLower = request.security(syminfo.tickerid, tf, lower, barmerge.gaps_on, barmerge.lookahead_off)
Символ тикера остается прежним, поэтому мы использовали значение syminfo.tickerid, которое будет возвращать любой тикер, отображаемый на основном графике.
Вот и все, осталось построить новый индикатор. plot(hbbandsMid) plot(hbbandsUpper) plot(hbbandsLower)
Теперь мы можем видеть полосы Боллинджера на 5-минутном графике, отображаемом на 1-минутном графике.
Входные данные позволяют легко настраивать параметры полос Боллинджера и позволяют этому индикатору работать с любой комбинацией таймфреймов.
Полный код: //@version=5 indicator(title="Higher TF BBands", shorttitle="TF BBands", overlay=true) // Get user input tf = input(title="BBands Timeframe", defval="60") len = input(title="Length", defval=20) stddev = input(title='StdDev', defval=2) [middle, upper, lower] = ta.bb(close, len, stddev) hbbandsMid = request.security(syminfo.tickerid, tf, middle, barmerge.gaps_on, barmerge.lookahead_off) hbbandsUpper = request.security(syminfo.tickerid, tf, upper, barmerge.gaps_on, barmerge.lookahead_off) hbbandsLower = request.security(syminfo.tickerid, tf, lower, barmerge.gaps_on, barmerge.lookahead_off) plot(hbbandsMid) plot(hbbandsUpper) plot(hbbandsLower) Последние мысли