// indicator code
#property strict
#property indicator_chart_window
input string symbolstring = "EURUSD,GBPUSD,NZDUSD"; // symbols
input ENUM_TIMEFRAMES timeframe = PERIOD_M1; // chart time frame
input int interval = 14; // rsi period
input ENUM_APPLIED_PRICE appliedprice = PRICE_MEDIAN; // price constant
input int mainterval = 5; // sma period
string symbols[];
double rsiarray[];
double rsima[];
double val[];
int key[];
string rsimastring;
int sz;
int OnInit() {
	StringSplit(symbolstring, ',', symbols);
	sz = ArraySize(symbols);
	ArrayResize(rsima, sz);
	ArrayResize(rsiarray, mainterval);
	ArrayResize(val, sz);
	ArrayResize(key, sz);
	return 0;
}
void OnDeinit(const int reason) {
	Comment("");
}
int OnCalculate(const int rates_total, const int prev_calculated,
					 const datetime &time[], const double &open[],
					 const double &high[], const double &low[],
					 const double &close[], const long &tick_volume[],
					 const long &volume[], const int &spread[]) {
	for(int i = 0; i < ArraySize(symbols); i++) {
		for(int j = mainterval-1; j >= 0; j--)
			rsiarray[j] = iRSI(symbols[i], timeframe, interval, appliedprice, j);
		rsima[i] = iMAOnArray(rsiarray, 0, mainterval, 0, MODE_SMA, 0);
	}
	sort();
	rsimastring = "\n\n\n";
	for(int i = 0; i < ArraySize(symbols); i++) {
		rsimastring += symbols[key[i]] + " " + DoubleToString(val[i], 0) + "\n";
	}
	Comment(rsimastring);
	return(rates_total);
}
void sort() {
	int p;
	for(int i = 0; i < sz; i++) {
		p = 0;
		for(int j = 0; j < sz; j++) {
			if(rsima[i] < rsima[j])
				p++;
		}
		val[p] = rsima[i];
		key[p] = i;
	}
}
