TatianaV

TV_Price-Action-Bars_V2

40
Добавлены более жесткие условия отбора паттернов
Скрипт с открытым кодом

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

Отказ от ответственности

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

Хотите использовать этот скрипт на графике?
//@version=2
study("TV_Price-Action-Bars_V2", shorttitle="TV_PA_V2", overlay=true)
pctP = input(66, minval=1, maxval=99, title="PinBar (PB), % фитиля от свечи должен быть")
pblb = input(6, minval=1, maxval=100, title="Период определения тренда для PinBara на м/м")
pbll = input(20, minval=1, maxval=100, title="Период определения тренда для CPR на м/м")
pctS = input(5, minval=1, maxval=99, title="Лысый бар, % от диапазона должн закрыться на м/м")
spb = input(false, title="Пин бар (PB)")
sib = input(true, title="Внутренний бар (IB)")
sob = input(true, title="Поглощение (BUOVB, BEOVB)")
bar = input(true, title="Разворот на закрытии (CPR)")
ssb = input(false, title="Лысый бар (SB)")

prevSize = close[1]-open[1]     //посчитали размер между открытием и закрытием предыдущей свечи
curSize =  open-close           //посчитали размер между открытием и закрытием текущей свечи
Percent = curSize*100/prevSize  //приняли размер prevSize  за 100% и посчитали процент. Получим число в процентах.

//PBar Percentages
pctCp = pctP * .01
pctCPO = 1 - pctCp

//Shaved Bars Percentages
pctCs = pctS * .01
pctSPO = pctCs

range = high - low

///PinBars
pBarUp() => spb and open > high - (range * pctCPO) and close > high - (range * pctCPO) and low <= lowest(pblb) ? 1 : 0
pBarDn() => spb and open < high - (range *  pctCp) and close < high - (range * pctCp) and high >= highest(pblb) ? 1 : 0

//Inside Bars
insideBar() => sib and high < high[1] and low > low[1] and Percent <100? 1 : 0
outsideBar() => sob and high > high[1] and low < low[1] and Percent >100? 1 : 0

//CPR
pBarUp1() => bar and close > high - (range * pctCPO)  and  close > open and low <= lowest(pbll) and Percent <53? 1 : 0
pBarDn1() => bar and close < high - (range *  pctCp)  and  close < open and high >= highest(pbll) and Percent <53? 1 : 0

//Shaved Bars
sBarUp() => ssb and (close >= (high - (range * pctCs)))
sBarDown() => ssb and close <= (low + (range * pctCs))

//PinBars
plotchar(pBarDn(), char='P', location = location.abovebar, color = red, transp=0, title="Пин бар (PB)")
plotchar(pBarUp(), char='P', location = location.belowbar, color = green, transp=0, title="Пин бар (PB)")
//Inside and Outside Bars
plotchar(insideBar(), char='I', location = location.abovebar, color = blue, transp=0, title="Inside Bars (IB)")
plotchar(outsideBar(), char='B', location = location.abovebar, color = orange, transp=0, title="Поглощение (BUOVB, BEOVB)")
//CPR
plotchar(pBarDn1(),char='C', location = location.abovebar, color = red, transp=0,title="Разворот на закрытии (CPR)")
plotchar(pBarUp1(),char='C', location = location.belowbar, color = green, transp=0, title="Разворот на закрытии (CPR)")
//Shaved Bars
plotchar(sBarDown(), char='S', location = location.abovebar, color = fuchsia, transp=0, title="Лысый бар (SB)")
plotchar(sBarUp(), char='S', location = location.belowbar, color = aqua, transp=0, title="Лысый бар (SB)")