Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
- // © NKactive
- //@version=5
- indicator("Season Ratio Builder v1.0")
- // Define the number of years to go back
- yearsBack = input.int(defval=3, title="No. Years To Calculate Ratio")
- // Date Range
- start_day = dayofmonth(timenow)
- end_day = dayofmonth(timenow)
- start_month = month(timenow)
- end_month = month(timenow)
- start_year = year(timenow) - yearsBack
- end_year = year(timenow)
- in_date_range = time >= timestamp(syminfo.timezone, start_year, start_month, start_day, 0, 0) and time < timestamp(syminfo.timezone, end_year, end_month, end_day, 0, 0)
- // Initialize array with zeros
- var monthlyArray = array.new_float(13, 0.00)
- var totalCloseSum = 0.00
- // Function to increment array values for specific month
- incrementArrayValueForMonth(arrayMonth, monthIndex, value) =>
- currentMonthValue = array.get(arrayMonth, monthIndex)
- array.set(arrayMonth, monthIndex, currentMonthValue + value)
- // Calculate the sum of close of all bars for each month
- if in_date_range
- if month(time) == 1
- incrementArrayValueForMonth(monthlyArray, 1, close)
- totalCloseSum += close
- if month(time) == 2
- incrementArrayValueForMonth(monthlyArray, 2, close)
- totalCloseSum += close
- if month(time) == 3
- incrementArrayValueForMonth(monthlyArray, 3, close)
- totalCloseSum += close
- if month(time) == 4
- incrementArrayValueForMonth(monthlyArray, 4, close)
- totalCloseSum += close
- if month(time) == 5
- incrementArrayValueForMonth(monthlyArray, 5, close)
- totalCloseSum += close
- if month(time) == 6
- incrementArrayValueForMonth(monthlyArray, 6, close)
- totalCloseSum += close
- if month(time) == 7
- incrementArrayValueForMonth(monthlyArray, 7, close)
- totalCloseSum += close
- if month(time) == 8
- incrementArrayValueForMonth(monthlyArray, 8, close)
- totalCloseSum += close
- if month(time) == 9
- incrementArrayValueForMonth(monthlyArray, 9, close)
- totalCloseSum += close
- if month(time) == 10
- incrementArrayValueForMonth(monthlyArray, 10, close)
- totalCloseSum += close
- if month(time) == 11
- incrementArrayValueForMonth(monthlyArray, 11, close)
- totalCloseSum += close
- if month(time) == 12
- incrementArrayValueForMonth(monthlyArray, 12, close)
- totalCloseSum += close
- //janRatio = array.get(monthlyArray, 1) / array.get(monthlyArraySum, 1)
- janRatio = array.get(monthlyArray, 1) / totalCloseSum
- febRatio = array.get(monthlyArray, 2) / totalCloseSum
- marRatio = array.get(monthlyArray, 3) / totalCloseSum
- aprRatio = array.get(monthlyArray, 4) / totalCloseSum
- mayRatio = array.get(monthlyArray, 5) / totalCloseSum
- junRatio = array.get(monthlyArray, 6) / totalCloseSum
- julRatio = array.get(monthlyArray, 7) / totalCloseSum
- augRatio = array.get(monthlyArray, 8) / totalCloseSum
- sepRatio = array.get(monthlyArray, 9) / totalCloseSum
- octRatio = array.get(monthlyArray, 10) / totalCloseSum
- novRatio = array.get(monthlyArray, 11) / totalCloseSum
- decRatio = array.get(monthlyArray, 12) / totalCloseSum
- plot(janRatio, title="JanRatio", color=color.green,display=display.status_line)
- plot(febRatio, title="febRatio", color=color.white,display=display.status_line)
- plot(marRatio, title="marRatio", color=color.orange,display=display.status_line)
- plot(aprRatio, title="aprRatio", color=color.green,display=display.status_line)
- plot(mayRatio, title="mayRatio", color=color.white,display=display.status_line)
- plot(junRatio, title="junRatio", color=color.orange,display=display.status_line)
- plot(julRatio, title="julRatio", color=color.green,display=display.status_line)
- plot(augRatio, title="augRatio", color=color.white,display=display.status_line)
- plot(sepRatio, title="sepRatio", color=color.orange,display=display.status_line)
- plot(octRatio, title="octRatio", color=color.green,display=display.status_line)
- plot(novRatio, title="novRatio", color=color.white,display=display.status_line)
- plot(decRatio, title="decRatio", color=color.orange,display=display.status_line)
- // Debug Plot array elements
- //plot(array.get(monthlyArray, 1), title="Jan", color=color.new(color.red, 0))
- //plot(array.get(monthlyArray, 2), title="Feb", color=color.new(color.red, 0))
- //plot(array.get(monthlyArray, 3), title="Mar", color=color.new(color.red, 0))
- //plot(array.get(monthlyArray, 4), title="Apr", color=color.new(color.red, 0))
- //plot(array.get(monthlyArray, 5), title="May", color=color.new(color.red, 0))
- //plot(array.get(monthlyArray, 6), title="Jun", color=color.new(color.red, 0))
- //plot(array.get(monthlyArray, 7), title="Jul", color=color.new(color.red, 0))
- //plot(array.get(monthlyArray, 8), title="Aug", color=color.new(color.red, 0))
- //plot(array.get(monthlyArray, 9), title="Sep", color=color.new(color.red, 0))
- //plot(array.get(monthlyArray, 10), title="Oct", color=color.new(color.red, 0))
- //plot(array.get(monthlyArray, 11), title="Nov", color=color.new(color.red, 0))
- //plot(array.get(monthlyArray, 12), title="Dec", color=color.new(color.red, 0))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement