Olá a todos.
Existem indicadores Pivot Point High Low embutidos e publicados na Biblioteca Pública, mas, até onde eu vejo, nenhum deles é para quadros de tempo mais altos. então eu decidi escrever e publicar este script. Espero que seja útil ao negociar ou desenvolver seus próprios scripts. Eu também fiz isso para usar em um dos meus projetos futuros (veremos em algumas semanas / meses ;)).
Tentei fazer todas as configurações opcionais, para que possas brincar com elas como quiseres.
P.S. Não há mecanismo de controle se o quadro de tempo do gráfico é menor do que o quadro de tempo nas opções.
Aproveite!
backtest
/*backtest start: 2022-05-08 00:00:00 end: 2022-05-14 23:59:00 period: 5m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © LonesomeTheBlue //@version=5 indicator("Pivot Points High Low Multi Time Frame", overlay = true, max_lines_count = 500, max_labels_count = 500) timeframe = input.timeframe(defval = '240') leftBars = input.int(defval = 2, title = "Left Bars", minval = 1) rightBars = input.int(defval = 2, title = "Right Bars", minval = 1) phlinecol = input(defval = color.lime, title = "Pivot High/Low Line Colors", inline = "lc") pllinecol = input(defval = color.red, title = "", inline = "lc") phbgcol = input(defval = color.lime, title = "Pivot High BG/Text Colors", inline = "ph") phtextcol = input(defval = color.black, title = "", inline = "ph") plbgcol = input(defval = color.red, title = "Pivot Low BG/Text Colors", inline = "pl") pltextcol = input(defval = color.white, title = "", inline = "pl") get_phpl()=> float ph = ta.pivothigh(leftBars, rightBars) float pl = ta.pivotlow(leftBars, rightBars) phtimestart = ph ? time[rightBars] : na phtimeend = ph ? time[rightBars - 1] : na pltimestart = pl ? time[rightBars] : na pltimeend = pl ? time[rightBars - 1] : na [ph, phtimestart, phtimeend, pl, pltimestart, pltimeend] // get if there if Pivot High/low and their start/end times [ph, phtimestart, phtimeend, pl, pltimestart, pltimeend] = request.security(syminfo.tickerid, timeframe, get_phpl(), lookahead = barmerge.lookahead_on) // keep time of each bars, this is used for lines/labels var mytime = array.new_int(0) array.unshift(mytime, time) // calculate end of the line/time for pivot high/low bhend = array.get(mytime, math.min(array.indexof(mytime, phtimeend) + 1, array.size(mytime) - 1)) blend = array.get(mytime, math.min(array.indexof(mytime, pltimeend) + 1, array.size(mytime) - 1)) // to draw once float pivothigh = na(ph[1]) and ph ? ph : na float pivotlow = na(pl[1]) and pl ? pl : na if not na(pivothigh) strategy.entry("Enter Long", strategy.long) else if not na(pivotlow) strategy.entry("Enter Short", strategy.short)