Three Step Future Trend Indicator
Forums › ProRealTime English forum › ProBuilder support › Three Step Future Trend Indicator
- This topic has 3 replies, 2 voices, and was last updated 1 week ago by
LucasBest.
Viewing 4 posts - 1 through 4 (of 4 total)
-
-
05/19/2025 at 10:44 PM #247352
If someone who have some extra times and a very good knowledge in PRT and TV, can translate it, i would really appreciate.
Three Step Future-Trend [BigBeluga]
https://fr.tradingview.com/v/ay15DZnZ/123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115"]// This work is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International// https://creativecommons.org/licenses/by-nc-sa/4.0/// © BigBeluga//@version=6indicator('Three Step Future-Trend [BigBeluga]', overlay = true)// INPUTS ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――{int period = input.int(25, 'Period')color color_up = input.color(color.lime, 'UP', inline = 'c')color color_dn = input.color(#d42583, 'DOWN', inline = 'c')// }// CALCULATIONS――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――{draw_boxes(period, color1, color2, color3) =>float H = ta.highest(50)float L = ta.lowest(50)var boxes = array.new<box>()if barstate.islastfor i = 0 to 2 by 1int index1 = period * (i > 0 ? i + 1 : 1)int index2 = period * icolor color = i == 0 ? color1 : i == 1 ? color2 : color3box1 = box.new(bar_index - index1 + 1, H[index2], bar_index - period * i, L[index2], bgcolor = color.new(color, 90), border_color = color, border_width = 2, text = str.tostring(index1) + ' - ' + str.tostring(index2), text_size = size.large, text_color = chart.fg_color, text_halign = text.align_right, text_valign = color == color_up ? text.align_bottom : text.align_top)boxes.push(box1)if boxes.size() > 3box.delete(boxes.shift())future_trend(period, src) =>var color = color(na)var delta1 = float(na)var delta2 = float(na)var delta3 = float(na)var total1 = float(na)var total2 = float(na)var total3 = float(na)array<float> values = array.new<float>(period + 1)array<float> delta = array.new<float>(period + 1)array<chart.point> future_trend = array.new<chart.point>(period + 1)delta_vol = close > open ? volume : -volumedelta1 := math.sum(delta_vol, period)delta2 := math.sum(delta_vol, period * 2) - delta1delta3 := math.sum(delta_vol, period * 3) - delta1 - delta2total1 := math.sum(volume, period)total2 := math.sum(volume, period * 2) - total1total3 := math.sum(volume, period * 3) - total1 - total2color color1 = delta1 > 0 ? color_up : color_dncolor color2 = delta2 > 0 ? color_up : color_dncolor color3 = delta3 > 0 ? color_up : color_dnif barstate.islastfor i = 0 to period by 1values.set(i, math.avg(src[i], src[i + period], src[i + period * 2]))delta.set(i, math.avg(delta_vol[i], delta_vol[i + period], delta_vol[i + period * 2]))values.reverse()series float diff = src - values.first()series float vol_delta = delta.avg()for i = 0 to period by 1future_trend.set(i, chart.point.from_index(bar_index + i, diff + values.get(i)))color := vol_delta > 0 ? color_up : color_dnpolyline.delete(polyline.new(future_trend, true, line_color = color, line_width = 2)[1])label lb1 = label.new(future_trend.last(), style = label.style_label_left, color = color)lb1.set_text(str.tostring(vol_delta, format.volume) + '\n' + str.tostring(lb1.get_y(), '#,###.##'))label.delete(lb1[1])table dash = table.new(position.bottom_right, 10, 10, frame_color = color, bgcolor = color.new(color, 90), frame_width = 2, border_color = color.new(chart.fg_color, 70), border_width = 1)for i = 0 to 2 by 1index1 = period * (i > 0 ? i + 1 : 1)index2 = period * idash.cell(0, i + 2, str.tostring(index1) + ' - ' + str.tostring(index2), text_color = chart.fg_color)dash.merge_cells(0, 0, 2, 0)dash.cell(0, 0, 'Volume Data', text_color = color.new(chart.fg_color, 50))dash.cell(1, 2, str.tostring(delta1, format.volume), text_color = color1)dash.cell(1, 3, str.tostring(delta2, format.volume), text_color = color2)dash.cell(1, 4, str.tostring(delta3, format.volume), text_color = color3)dash.cell(2, 2, str.tostring(total1, format.volume), text_color = color.new(chart.fg_color, 20))dash.cell(2, 3, str.tostring(total2, format.volume), text_color = color.new(chart.fg_color, 20))dash.cell(2, 4, str.tostring(total3, format.volume), text_color = color.new(chart.fg_color, 20))dash.cell(0, 1, 'Period', text_color = color.new(chart.fg_color, 0))dash.cell(1, 1, 'Delta', text_color = color.new(chart.fg_color, 0))dash.cell(2, 1, 'Total', text_color = color.new(chart.fg_color, 0))draw_boxes(period, color1, color2, color3)// }// PLOT ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――{future_trend(period, close)// }05/20/2025 at 9:52 AM #24736405/20/2025 at 2:40 PM #247381Here you have:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134//---------------------------------------------------////PRC_Three Step Future-Trend//version = 0//20.05.2025//Iván González @ www.prorealcode.com//Sharing ProRealTime knowledge//---------------------------------------------------//// INPUTS//---------------------------------------------------//defparam drawonlastbaronly = trueperiod = 25deltaVolume = 0IF close > open THENdeltaVolume = volumeELSEdeltaVolume = -volumeENDIF// === DELTA PER BLOCK ===delta1 = summation[period](deltaVolume)delta2 = summation[period * 2](deltaVolume) - delta1delta3 = summation[period * 3](deltaVolume) - delta1 - delta2// === TOTAL VOLUME PER BLOCK ===total1 = summation[period](volume)total2 = summation[period * 2](volume) - total1total3 = summation[period * 3](volume) - total1 - total2// === COLORS BASED ON TREND ===IF delta1 > 0 THENred1 = 0green1 = 230blue1 = 118ELSEred1 = 212green1 = 37blue1 = 131ENDIFIF delta2 > 0 THENred2 = 0green2 = 230blue2 = 118ELSEred2 = 212green2 = 37blue2 = 131ENDIFIF delta3 > 0 THENred3 = 0green3 = 230blue3 = 118ELSEred3 = 212green3 = 37blue3 = 131ENDIF// === VOLUME BLOCK VISUALIZATION ===// Box 1 (most recent)left1 = barindex - periodright1 = barindextop1 = highest[50](high)bot1 = lowest[50](low)drawrectangle(left1, top1, right1, bot1) coloured(red1, green1, blue1) fillcolor(red1, green1, blue1, 30)// Box 2 (previous)left2 = barindex - period * 2right2 = barindex - periodtop2 = highest[50](high)[period]bot2 = lowest[50](low)[period]drawrectangle(left2, top2, right2, bot2) coloured(red2, green2, blue2) fillcolor(red2, green2, blue2, 30)// Box 3 (oldest)left3 = barindex - period * 3right3 = barindex - period * 2top3 = highest[50](high)[period * 2]bot3 = lowest[50](low)[period * 2]drawrectangle(left3, top3, right3, bot3) coloured(red3, green3, blue3) fillcolor(red3, green3, blue3, 30)// === FUTURE TREND PROJECTION ===refValue = (close[0] + close[period] + close[period * 2]) / 3IF islastbarupdate THENcumDelta = 0FOR i = 0 TO period DO$Value[i] = (close[i] + close[i + period] + close[i + period * 2]) / 3$delta[i] = (deltaVolume[i] + deltaVolume[i + period] + deltaVolume[i + period * 2]) / 3cumDelta = cumDelta + $delta[i]NEXTFOR j = 0 TO period DO$ValueRev[j] = $Value[period - j]NEXTdiff = close - $ValueRev[0]voldelta = cumDelta / periodIF voldelta > 0 THENr = 0g = 230b = 118ELSEr = 212g = 37b = 131ENDIFFOR k = 0 TO period DO$futureIdx[k] = barindex + k$futurePrice[k] = diff + $ValueRev[k]drawsegment($futureIdx[k + 1], $futurePrice[k + 1], $futureIdx[k], $futurePrice[k]) coloured(r, g, b)NEXT// === DATA TABLE ===// Delta Volumedrawrectangle(-300, -80, -10, -180) anchor(topright, xshift, yshift)fillcolor(r,g,b,30)drawtext("Period", -250, -100) anchor(topright, xshift, yshift)drawtext("Delta", -150, -100) anchor(topright, xshift, yshift)drawtext("Total", -50, -100) anchor(topright, xshift, yshift)drawtext("25-0", -250, -120) anchor(topright, xshift, yshift)drawtext("#delta1#", -150, -120) anchor(topright, xshift, yshift)drawtext("#total1#", -50, -120) anchor(topright, xshift, yshift)drawtext("50-25", -250, -140) anchor(topright, xshift, yshift)drawtext("#delta2#", -150, -140) anchor(topright, xshift, yshift)drawtext("#total2#", -50, -140) anchor(topright, xshift, yshift)drawtext("75-50", -250, -160) anchor(topright, xshift, yshift)drawtext("#delta3#", -150, -160) anchor(topright, xshift, yshift)drawtext("#total3#", -50, -160) anchor(topright, xshift, yshift)// Proyected PriceFuturePrice=$futurePrice[period]drawtext("Proyected Price",-220,-200)anchor(topright,xshift,yshift)drawtext("#FuturePrice#",-75,-200)anchor(topright,xshift,yshift)drawrectangle(-300,-220,-10,-180)anchor(topright,xshift,yshift)fillcolor(r,g,b,30)ENDIF//---------------------------------------------------//return2 users thanked author for this post.
05/20/2025 at 8:44 PM #247402 -
AuthorPosts
Viewing 4 posts - 1 through 4 (of 4 total)
Find exclusive trading pro-tools on
Similar topics: