示例#1
0
        static PivotPoints CalculatePivotPoints(decimal dcOpeningPrice, decimal dcHighPrice, decimal dcLowPrice, decimal dcClosingPrice)
        {
            PivotPoints objPivotPoints = new PivotPoints();

            try
            {
                objPivotPoints.OpeningPrice = dcOpeningPrice;
                objPivotPoints.HighPrice    = dcHighPrice;
                objPivotPoints.LowPrice     = dcLowPrice;
                objPivotPoints.ClosingPrice = dcClosingPrice;


                decimal dcAveragePrice = ((objPivotPoints.HighPrice + objPivotPoints.LowPrice + objPivotPoints.ClosingPrice) / 3);
                objPivotPoints.ClassicResistance1 = ((2 * dcAveragePrice) - objPivotPoints.LowPrice);
                objPivotPoints.ClassicSupport1    = ((2 * dcAveragePrice) - objPivotPoints.HighPrice);
                objPivotPoints.ClassicResistance2 = dcAveragePrice + (objPivotPoints.HighPrice - objPivotPoints.LowPrice);
                objPivotPoints.ClassicSupport2    = dcAveragePrice - (objPivotPoints.HighPrice - objPivotPoints.LowPrice);
                objPivotPoints.ClassicResistance3 = objPivotPoints.HighPrice + 2 * (dcAveragePrice - objPivotPoints.LowPrice);
                objPivotPoints.ClassicSupport3    = objPivotPoints.LowPrice - 2 * (objPivotPoints.HighPrice - dcAveragePrice);
                objPivotPoints.ClassicPivotPoint  = dcAveragePrice;

                objPivotPoints.WoodiePivotPoint  = (objPivotPoints.HighPrice + objPivotPoints.LowPrice + (2 * objPivotPoints.ClosingPrice)) / 4;
                objPivotPoints.WoodieResistance1 = (2 * objPivotPoints.WoodiePivotPoint) - objPivotPoints.LowPrice;
                objPivotPoints.WoodieSupport1    = (2 * objPivotPoints.WoodiePivotPoint) - objPivotPoints.HighPrice;
                objPivotPoints.WoodieResistance2 = objPivotPoints.WoodiePivotPoint + (objPivotPoints.HighPrice - objPivotPoints.LowPrice);
                objPivotPoints.WoodieSupport2    = objPivotPoints.WoodiePivotPoint - (objPivotPoints.HighPrice - objPivotPoints.LowPrice);

                objPivotPoints.CamarillaResistance1 = objPivotPoints.ClosingPrice + ((objPivotPoints.HighPrice - objPivotPoints.LowPrice) * Convert.ToDecimal(1.0833));
                objPivotPoints.CamarillaSupport1    = objPivotPoints.ClosingPrice - ((objPivotPoints.HighPrice - objPivotPoints.LowPrice) * Convert.ToDecimal(1.0833));
                objPivotPoints.CamarillaResistance2 = objPivotPoints.ClosingPrice + ((objPivotPoints.HighPrice - objPivotPoints.LowPrice) * Convert.ToDecimal(1.1666));
                objPivotPoints.CamarillaSupport2    = objPivotPoints.ClosingPrice - ((objPivotPoints.HighPrice - objPivotPoints.LowPrice) * Convert.ToDecimal(1.1666));
                objPivotPoints.CamarillaResistance3 = objPivotPoints.ClosingPrice + ((objPivotPoints.HighPrice - objPivotPoints.LowPrice) * Convert.ToDecimal(1.2500));
                objPivotPoints.CamarillaSupport3    = objPivotPoints.ClosingPrice - ((objPivotPoints.HighPrice - objPivotPoints.LowPrice) * Convert.ToDecimal(1.2500));
                objPivotPoints.CamarillaResistance4 = objPivotPoints.ClosingPrice + ((objPivotPoints.HighPrice - objPivotPoints.LowPrice) * Convert.ToDecimal(1.5000));
                objPivotPoints.CamarillaSupport4    = objPivotPoints.ClosingPrice - ((objPivotPoints.HighPrice - objPivotPoints.LowPrice) * Convert.ToDecimal(1.5000));
                decimal dcDeMarkFactor = 0;
                if (objPivotPoints.ClosingPrice < objPivotPoints.OpeningPrice)
                {
                    dcDeMarkFactor = (objPivotPoints.HighPrice + (objPivotPoints.LowPrice * 2) + objPivotPoints.ClosingPrice);
                }
                else if (objPivotPoints.ClosingPrice > objPivotPoints.OpeningPrice)
                {
                    dcDeMarkFactor = ((objPivotPoints.HighPrice * 2) + objPivotPoints.LowPrice + objPivotPoints.ClosingPrice);
                }
                else if (objPivotPoints.ClosingPrice == objPivotPoints.OpeningPrice)
                {
                    dcDeMarkFactor = (objPivotPoints.HighPrice + objPivotPoints.LowPrice + (objPivotPoints.ClosingPrice * 2));
                }
                objPivotPoints.DeMarkResistance = (dcDeMarkFactor / 2) - objPivotPoints.LowPrice;
                objPivotPoints.DeMarkSupport    = (dcDeMarkFactor / 2) - objPivotPoints.HighPrice;
            }
            catch (Exception ex)
            {
                Console.WriteLine("error occurred while calculating pivot points:" + ex.Message);
            }

            return(objPivotPoints);
        }
示例#2
0
        static void Main(string[] args)
        {
            decimal dcOpeningPrice = 0;
            decimal dcHighPrice    = 0;
            decimal dcLowPrice     = 0;
            decimal dcClosingPrice = 0;

            Console.WriteLine("Please Enter Opening Price:");
            if (!(decimal.TryParse(Console.ReadLine(), out dcOpeningPrice)))
            {
                Console.WriteLine("Invalid Opening Price; please try again!");
            }
            Console.WriteLine("Please Enter High Price:");
            if (!(decimal.TryParse(Console.ReadLine(), out dcHighPrice)))
            {
                Console.WriteLine("Invalid High Price; please try again!");
            }
            Console.WriteLine("Please Enter Low Price:");
            if (!(decimal.TryParse(Console.ReadLine(), out dcLowPrice)))
            {
                Console.WriteLine("Invalid Low Price; please try again!");
            }
            Console.WriteLine("Please Enter Closing Price:");
            if (!(decimal.TryParse(Console.ReadLine(), out dcClosingPrice)))
            {
                Console.WriteLine("Invalid Closing Price; please try again!");
            }


            Console.WriteLine("\n#########################################################################");
            Console.WriteLine("\nCalculated Pivot Points are:");
            PivotPoints objPivotPoints   = CalculatePivotPoints(dcOpeningPrice, dcHighPrice, dcLowPrice, dcClosingPrice);
            string      sPropertyName    = string.Empty;
            object      objPropertyValue = null;

            foreach (PropertyDescriptor descriptor in TypeDescriptor.GetProperties(objPivotPoints))
            {
                sPropertyName    = descriptor.Name;
                objPropertyValue = descriptor.GetValue(objPivotPoints);
                Console.WriteLine("{0}: {1}", sPropertyName, Math.Round(Convert.ToDecimal(objPropertyValue), 2));
            }

            Console.WriteLine("\n#########################################################################");
            Console.WriteLine("\nCalculated Fibonacci Retracements are:");
            FibonacciRetracements objFibonacciRetracements = CalculateFibonacciRetracements(dcHighPrice, dcLowPrice);

            foreach (PropertyDescriptor descriptor in TypeDescriptor.GetProperties(objPivotPoints))
            {
                sPropertyName    = descriptor.Name;
                objPropertyValue = descriptor.GetValue(objPivotPoints);
                Console.WriteLine("{0}: {1}", sPropertyName, Math.Round(Convert.ToDecimal(objPropertyValue), 2));
            }

            Console.WriteLine("\n#########################################################################");

            Console.ReadKey();
        }