Untitled
unknown
plain_text
2 months ago
1.4 kB
14
Indexable
//@version=6
indicator("Candle High/Low Digital Root", overlay=false)
f_floatToStringArr(float inputFloat) =>
string iString = str.tostring(inputFloat, "#.##########")
iString := str.replace_all(iString, ".", "")
strArr = str.split(iString, "")
strArr
// Function to calculate digital root
f_digitalRoot(_num) =>
strArr = f_floatToStringArr(_num)
int _sum = 0
for [i, data] in strArr
_sum += int(str.tonumber(data))
while _sum > 9
_tempArr = f_floatToStringArr(_sum)
_sum := 0
for [j, data] in _tempArr
_sum += int(str.tonumber(data))
_sum
// Calculate digital roots for high and low
highRoot = f_digitalRoot(high)
lowRoot = f_digitalRoot(low)
// Plot results
plot(highRoot, "High Digital Root", color.blue, 2)
plot(lowRoot, "Low Digital Root", color.red, 2)
var label hiLbl = na
var label loLbl = na
if barstate.islast
if na(hiLbl)
hiLbl := label.new(bar_index, highRoot, "", style=label.style_label_down, color=color.blue, textcolor=color.white)
loLbl := label.new(bar_index, lowRoot, "", style=label.style_label_up, color=color.red, textcolor=color.white)
label.set_xy(hiLbl, bar_index, highRoot)
label.set_xy(loLbl, bar_index, lowRoot)
label.set_text(hiLbl, "High: " + str.tostring(highRoot))
label.set_text(loLbl, "Low: " + str.tostring(lowRoot))Editor is loading...
Leave a Comment