Добавлены более жесткие условия отбора паттернов
//@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)")