Advertisement
NKactive

Untitled

Aug 19th, 2023
42
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.12 KB | None | 0 0
  1. // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
  2. // © NKactive
  3.  
  4. //@version=5
  5. indicator("Season Ratio Builder v1.0")
  6.  
  7. // Define the number of years to go back
  8. yearsBack = input.int(defval=3, title="No. Years To Calculate Ratio")
  9.  
  10. // Date Range
  11. start_day = dayofmonth(timenow)
  12. end_day = dayofmonth(timenow)
  13. start_month = month(timenow)
  14. end_month = month(timenow)
  15. start_year = year(timenow) - yearsBack
  16. end_year = year(timenow)
  17. 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)
  18.  
  19. // Initialize array with zeros
  20. var monthlyArray = array.new_float(13, 0.00)
  21. var totalCloseSum = 0.00
  22.  
  23.  
  24. // Function to increment array values for specific month
  25. incrementArrayValueForMonth(arrayMonth, monthIndex, value) =>
  26. currentMonthValue = array.get(arrayMonth, monthIndex)
  27. array.set(arrayMonth, monthIndex, currentMonthValue + value)
  28.  
  29. // Calculate the sum of close of all bars for each month
  30. if in_date_range
  31. if month(time) == 1
  32. incrementArrayValueForMonth(monthlyArray, 1, close)
  33. totalCloseSum += close
  34. if month(time) == 2
  35. incrementArrayValueForMonth(monthlyArray, 2, close)
  36. totalCloseSum += close
  37. if month(time) == 3
  38. incrementArrayValueForMonth(monthlyArray, 3, close)
  39. totalCloseSum += close
  40. if month(time) == 4
  41. incrementArrayValueForMonth(monthlyArray, 4, close)
  42. totalCloseSum += close
  43. if month(time) == 5
  44. incrementArrayValueForMonth(monthlyArray, 5, close)
  45. totalCloseSum += close
  46. if month(time) == 6
  47. incrementArrayValueForMonth(monthlyArray, 6, close)
  48. totalCloseSum += close
  49. if month(time) == 7
  50. incrementArrayValueForMonth(monthlyArray, 7, close)
  51. totalCloseSum += close
  52. if month(time) == 8
  53. incrementArrayValueForMonth(monthlyArray, 8, close)
  54. totalCloseSum += close
  55. if month(time) == 9
  56. incrementArrayValueForMonth(monthlyArray, 9, close)
  57. totalCloseSum += close
  58. if month(time) == 10
  59. incrementArrayValueForMonth(monthlyArray, 10, close)
  60. totalCloseSum += close
  61. if month(time) == 11
  62. incrementArrayValueForMonth(monthlyArray, 11, close)
  63. totalCloseSum += close
  64. if month(time) == 12
  65. incrementArrayValueForMonth(monthlyArray, 12, close)
  66. totalCloseSum += close
  67.  
  68. //janRatio = array.get(monthlyArray, 1) / array.get(monthlyArraySum, 1)
  69. janRatio = array.get(monthlyArray, 1) / totalCloseSum
  70. febRatio = array.get(monthlyArray, 2) / totalCloseSum
  71. marRatio = array.get(monthlyArray, 3) / totalCloseSum
  72. aprRatio = array.get(monthlyArray, 4) / totalCloseSum
  73. mayRatio = array.get(monthlyArray, 5) / totalCloseSum
  74. junRatio = array.get(monthlyArray, 6) / totalCloseSum
  75. julRatio = array.get(monthlyArray, 7) / totalCloseSum
  76. augRatio = array.get(monthlyArray, 8) / totalCloseSum
  77. sepRatio = array.get(monthlyArray, 9) / totalCloseSum
  78. octRatio = array.get(monthlyArray, 10) / totalCloseSum
  79. novRatio = array.get(monthlyArray, 11) / totalCloseSum
  80. decRatio = array.get(monthlyArray, 12) / totalCloseSum
  81.  
  82. plot(janRatio, title="JanRatio", color=color.green,display=display.status_line)
  83. plot(febRatio, title="febRatio", color=color.white,display=display.status_line)
  84. plot(marRatio, title="marRatio", color=color.orange,display=display.status_line)
  85. plot(aprRatio, title="aprRatio", color=color.green,display=display.status_line)
  86. plot(mayRatio, title="mayRatio", color=color.white,display=display.status_line)
  87. plot(junRatio, title="junRatio", color=color.orange,display=display.status_line)
  88. plot(julRatio, title="julRatio", color=color.green,display=display.status_line)
  89. plot(augRatio, title="augRatio", color=color.white,display=display.status_line)
  90. plot(sepRatio, title="sepRatio", color=color.orange,display=display.status_line)
  91. plot(octRatio, title="octRatio", color=color.green,display=display.status_line)
  92. plot(novRatio, title="novRatio", color=color.white,display=display.status_line)
  93. plot(decRatio, title="decRatio", color=color.orange,display=display.status_line)
  94.  
  95. // Debug Plot array elements
  96. //plot(array.get(monthlyArray, 1), title="Jan", color=color.new(color.red, 0))
  97. //plot(array.get(monthlyArray, 2), title="Feb", color=color.new(color.red, 0))
  98. //plot(array.get(monthlyArray, 3), title="Mar", color=color.new(color.red, 0))
  99. //plot(array.get(monthlyArray, 4), title="Apr", color=color.new(color.red, 0))
  100. //plot(array.get(monthlyArray, 5), title="May", color=color.new(color.red, 0))
  101. //plot(array.get(monthlyArray, 6), title="Jun", color=color.new(color.red, 0))
  102. //plot(array.get(monthlyArray, 7), title="Jul", color=color.new(color.red, 0))
  103. //plot(array.get(monthlyArray, 8), title="Aug", color=color.new(color.red, 0))
  104. //plot(array.get(monthlyArray, 9), title="Sep", color=color.new(color.red, 0))
  105. //plot(array.get(monthlyArray, 10), title="Oct", color=color.new(color.red, 0))
  106. //plot(array.get(monthlyArray, 11), title="Nov", color=color.new(color.red, 0))
  107. //plot(array.get(monthlyArray, 12), title="Dec", color=color.new(color.red, 0))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement