예제 #1
0
        public static List <Macd> createMACD(int M, int L, int S, List <Price> Price)
        {
            List <Macd> MACD = new List <Macd>();

            double[] _price = new double[Price.Count];

            for (int x = 0; x < Price.Count; x++)
            {
                _price[x] = Price[x].Close;
            }

            double[] macd    = new double[Price.Count];
            double[] trigger = new double[Price.Count];
            double[] hist    = new double[Price.Count];


            int a, b;


            Core.Macd(0, Price.Count - 1, _price, M, L, S, out a, out b, macd, trigger, hist);



            int zeroCount = 0;

            for (int x = 0; x < Price.Count; x++)
            {
                if (macd[x] == 0)
                {
                    zeroCount++;
                }
            }



            Debug.WriteLine("ZeroCount " + zeroCount);
            for (int x = 0; x < Price.Count - zeroCount; x++)
            {
                //Debug.WriteLine("Macd " + macd[x]);
                //Debug.WriteLine("Trigger " + trigger[x]);
                //Debug.WriteLine("Histo " + hist[x] * 2);
                //Debug.WriteLine(Price[x+zeroCount].TimeStamp + "   " + Price[x+zeroCount].Close);

                //Debug.WriteLine("===================");

                Macd m = new Macd();
                m.L           = L;
                m.M           = M;
                m.S           = S;
                m.TimeStamp   = Price[x + zeroCount].TimeStamp;
                m.Trigger     = trigger[x];
                m.Line        = macd[x];
                m.Histogram   = hist[x] * 2;
                m.Price_Close = Price[x + zeroCount].Close;
                m.Price_High  = Price[x + zeroCount].High;
                m.Price_Low   = Price[x + zeroCount].Low;
                m.Price_Open  = Price[x + zeroCount].Open;
                MACD.Add(m);
            }



            return(MACD);
        }
		public static List<Macd> createMACD(int M, int L, int S, List<Price> Price)
		{
			List<Macd> MACD = new List<Macd>();

			double[] _price = new double[Price.Count];

			for (int x = 0; x < Price.Count; x++)
			{
				_price[x] = Price[x].Close;


			}

			double[] macd = new double[Price.Count];
			double[] trigger = new double[Price.Count];
			double[] hist = new double[Price.Count];


			int a, b;


			Core.Macd(0, Price.Count - 1, _price, M, L, S, out a, out b, macd, trigger, hist);




			int zeroCount = 0;
			for (int x = 0; x < Price.Count; x++)
			{
				if (macd[x] == 0)
				{
					zeroCount++;
				}

			}




			Debug.WriteLine("ZeroCount " + zeroCount);
			for (int x = 0; x < Price.Count - zeroCount; x++)
			{
				//Debug.WriteLine("Macd " + macd[x]);
				//Debug.WriteLine("Trigger " + trigger[x]);
				//Debug.WriteLine("Histo " + hist[x] * 2);
				//Debug.WriteLine(Price[x+zeroCount].TimeStamp + "   " + Price[x+zeroCount].Close);

				//Debug.WriteLine("===================");

				Macd m = new Macd();
				m.L = L;
				m.M = M;
				m.S = S;
				m.TimeStamp = Price[x + zeroCount].TimeStamp;
				m.Trigger = trigger[x];
				m.Line = macd[x];
				m.Histogram = hist[x] * 2;
				m.Price_Close = Price[x + zeroCount].Close;
				m.Price_High = Price[x + zeroCount].High;
				m.Price_Low = Price[x + zeroCount].Low;
				m.Price_Open = Price[x + zeroCount].Open;
				MACD.Add(m);



			}






			return MACD;
		}