How to Sort a List in Desending Order by the "Value" and Sort the Duplicates by the "Key" ?
Then Print out the Results in the format below.
I have enclosed my code and it works, but the problem happens when there are duplicate values,
which occurs when you use SortedList(). I would GREATLY APPRECIATE it if someone could PLEASE Modify this
Code or Show me EXACTLY how to do this another way, that is just as quick and efficent.
THANK YOU VERY MUCH in Advance.
BEFORE SORT:
VALUE's KEY's
sL.Add(1269.63, "white");
sL.Add(1270.36, "orange");
sL.Add(1272.06, "yellow");
sL.Add(1271.50, "cyan");
sL.Add(1272.06, "black");
sL.Add(1274.12, "dodBlue");
sL.Add(1276.02, "blue");
sL.Add(1273.21, "green");
sL.Add(1275.52, "red");
AFTER SORT:
VALUE's KEY's
sL.Add(1276.02, "blue");
sL.Add(1275.52, "red");
sL.Add(1274.12, "dodBlue");
sL.Add(1273.21, "green");
sL.Add(1272.06, "black");
sL.Add(1272.06, "yellow");
sL.Add(1271.50, "cyan");
sL.Add(1270.36, "orange");
sL.Add(1269.63, "white");
THEN PRINT OUT:
blue >= red ;
&& red >= dodBlue ;
&& dodBlue >= green ;
&& green >= yellow ;
&& yellow >= black ;
&& black >= cyan ;
&& cyan >= orange ;
&& orange >= white ;
*** For your information:
*** SMA is a Simple Moving Average Plotted on a Stock Charting Software Program.
*** (?) is the Period and [0] stands for the Current Bar.
Expand|Select|Wrap|Line Numbers
- using System;
- using System.Collections;
- using System.ComponentModel;
- using System.Diagnostics;
- using System.Drawing;
- using System.Drawing.Drawing2D;
- using System.Xml.Serialization;
- namespace Indicator
- {
- public class SORT_SCRAP : Indicator
- {/// This method is used to configure the indicator and is called once before any bar data is loaded.
- protected override void Initialize()
- {CalculateOnBarClose = true;
- Overlay = true;}
- /// Called on each bar update event (incoming tick)
- protected override void OnBarUpdate()
- {if ( CurrentBar < 200 )
- return ;
- SortedList sL = new SortedList();
- sL.Add(SMA(8)[0], "white");
- sL.Add(SMA(10)[0], "orange");
- sL.Add(SMA(13)[0], "yellow");
- sL.Add(SMA(20)[0], "cyan");
- sL.Add(SMA(30)[0], "black");
- sL.Add(SMA(40)[0], "dodBlue");
- sL.Add(SMA(50)[0], "blue");
- sL.Add(SMA(100)[0], "green");
- sL.Add(SMA(200)[0], "red");
- Print(" " + " " + sL.GetByIndex(8) + " " + ">=" + " " + sL.GetByIndex(7));
- Print("&&" + " " + sL.GetByIndex(7) + " " + ">=" + " " + sL.GetByIndex(6));
- Print("&&" + " " + sL.GetByIndex(6) + " " + ">=" + " " + sL.GetByIndex(5));
- Print("&&" + " " + sL.GetByIndex(5) + " " + ">=" + " " + sL.GetByIndex(4));
- Print("&&" + " " + sL.GetByIndex(4) + " " + ">=" + " " + sL.GetByIndex(3));
- Print("&&" + " " + sL.GetByIndex(3) + " " + ">=" + " " + sL.GetByIndex(2));
- Print("&&" + " " + sL.GetByIndex(2) + " " + ">=" + " " + sL.GetByIndex(1));
- Print("&&" + " " + sL.GetByIndex(1) + " " + ">=" + " " + sL.GetByIndex(0));
- }
- }
- }