Skip to main content

Rainbow MA

Source​

https://github.com/quadcode-tech/quadcodescript-library/blob/master/averages/rainbow_ma.lua

Syntax Format​

averageFunction(starting_period, bands_count, source, fn)

Overview​

The Rainbow Moving Average is not considered as a separate type of the Moving Averages' family, but rather a combination of Moving Averages (MAs), customized to offer a comprehensive analysis of the current market data. The number of MAs and their different colors can help you identify the indicator's signals more distinctly. Moreover, different period MAs might give you various indications about the asset price movement.

Parameters​

ParameterTypePurpose
starting_periodintegerThe period for the source data
bands_countintegerThe number of MAs, taken into calculation
sourceseriesInput series, taken into calculation
fnseriesAverages function, taken into calculation

Example​

instrument { name = "Rainbow MA", overlay = true }

starting_period = input (2, "Starting Period", input.integer, 1, 100)
bands_count = input (10, "Bands Count", input.integer, 1, 20)

source = input (1, "Source", input.string_selection, inputs.titles_overlay)
fn = input (1, "Average", input.string_selection, averages.titles)

input_group {
"Lines",
color1 = input { default = "#FF6C58", type = input.color },
color2 = input { default = "#DB4931", type = input.color },
color3 = input { default = "#FF7700", type = input.color },
color4 = input { default = "#DBCF0D", type = input.color },
color5 = input { default = "#25E154", type = input.color },
color6 = input { default = "#4BFFB5", type = input.color },
color7 = input { default = "#56CEFF", type = input.color },
color8 = input { default = "#2384C2", type = input.color },
color9 = input { default = "#B42EFF", type = input.color },
color10 = input { default = "#FF6BF1", type = input.color },
width = input { default = 1, type = input.line_width }
}

local colors = {
color1, color2, color3, color4, color5,
color6, color7, color8, color9, color10
}

local sourceSeries = inputs [source]
local averageFunction = averages [fn]

for i=1,bands_count do
local color = colors [(i % 10) + 1]
sourceSeries = averageFunction (sourceSeries, starting_period)
plot (sourceSeries, "", color, width)
end