Example #1
0
        public static double Value(TimeSeries input, int index, int length, EIndicatorStyle style)
        {
            if (index < 2 * length + input.FirstIndex)
            {
                return(double.NaN);
            }
            double num1 = 0.0;
            double num2;

            if (style == EIndicatorStyle.QuantStudio)
            {
                for (int index1 = index; index1 > index - length; --index1)
                {
                    num1 += DX.Value(input, index1, length);
                }
                num2 = num1 / (double)length;
            }
            else
            {
                for (int index1 = 2 * length + input.FirstIndex; index1 > length + input.FirstIndex; --index1)
                {
                    num1 += DX.Value(input, index1, length, style);
                }
                double num3 = num1 / (double)length;
                for (int index1 = 2 * length + 1 + input.FirstIndex; index1 <= index; ++index1)
                {
                    num3 = (num3 * (double)(length - 1) + DX.Value(input, index1, length, style)) / (double)length;
                }
                num2 = num3;
            }
            return(num2);
        }
Example #2
0
 public DX(TimeSeries input, int length, EIndicatorStyle style)  : base(input)
 {
     this.fLength = 14;
     this.fLength = length;
     this.fStyle  = style;
     this.Init();
 }
Example #3
0
File: PDI.cs Project: heber/FreeOQ
		public PDI(TimeSeries input, int length, EIndicatorStyle style)	: base(input) 
    {
      this.fLength = 14;
      this.fLength = length;
      this.fStyle = style;
      this.Init();
    }
Example #4
0
 public PDI(TimeSeries input, int length, EIndicatorStyle style, Color color)    : base(input)
 {
     this.fLength = 14;
     this.fLength = length;
     this.fStyle  = style;
     this.Init();
     this.Color = color;
 }
Example #5
0
File: ADXR.cs Project: heber/FreeOQ
		public ADXR(TimeSeries input, int length, EIndicatorStyle style, Color color)	: base(input) 
    {
      this.fLength = 14;
      this.fLength = length;
      this.fStyle = style;
      this.Init();
      this.Color = color;
    }
Example #6
0
File: RSI.cs Project: heber/FreeOQ
    public RSI(TimeSeries input, int length, BarData option, EIndicatorStyle style)
			: base(input){
      this.fLength = 14;
      this.fLength = length;
      this.fOption = option;
      this.fStyle = style;
      this.Init();
    }
Example #7
0
 public RSI(TimeSeries input, int length, BarData option, EIndicatorStyle style)
     : base(input)
 {
     this.fLength = 14;
     this.fLength = length;
     this.fOption = option;
     this.fStyle  = style;
     this.Init();
 }
Example #8
0
File: PDI.cs Project: heber/FreeOQ
    public PDI(TimeSeries input, int length, EIndicatorStyle style, Color color, EDrawStyle drawStyle)
			: base(input) {
      this.fLength = 14;
      this.fLength = length;
      this.fStyle = style;
      this.Init();
      this.Color = color;
      this.DrawStyle = drawStyle;
    }
Example #9
0
 public DX(TimeSeries input, int length, EIndicatorStyle style, Color color, EDrawStyle drawStyle)
     : base(input)
 {
     this.fLength = 14;
     this.fLength = length;
     this.fStyle  = style;
     this.Init();
     this.Color     = color;
     this.DrawStyle = drawStyle;
 }
Example #10
0
 public RSI(TimeSeries input, int length, BarData option, EIndicatorStyle style, Color color, EDrawStyle drawStyle)
     : base(input)
 {
     this.fLength = 14;
     this.fLength = length;
     this.fOption = option;
     this.fStyle  = style;
     this.Init();
     this.Color     = color;
     this.DrawStyle = drawStyle;
 }
Example #11
0
 public static double Value(TimeSeries input, int index, int length, EIndicatorStyle style)
 {
     if (index >= 3 * length - 1 + input.FirstIndex)
     {
         return((ADX.Value(input, index, length, style) + ADX.Value(input, index - length + 1, length, style)) / 2.0);
     }
     else
     {
         return(double.NaN);
     }
 }
        internal static IndicatorStyle Convert(EIndicatorStyle indicatorStyle)
        {
            switch (indicatorStyle)
            {
            case EIndicatorStyle.QuantStudio:
                return(IndicatorStyle.SmartQuant);

            case EIndicatorStyle.MetaStock:
                return(IndicatorStyle.MetaStock);

            default:
                throw new NotImplementedException("Indicator style is not supported : " + indicatorStyle);
            }
        }
Example #13
0
        public static double Value(TimeSeries input, int index, int length, EIndicatorStyle style)
        {
            if (index < length + input.FirstIndex)
            {
                return(double.NaN);
            }
            double num1 = 0.0;
            double num2 = PDI.Value(input, index, length, style);
            double num3 = MDI.Value(input, index, length, style);

            if (num2 + num3 != 0.0)
            {
                num1 = 100.0 * Math.Abs(num2 - num3) / (num2 + num3);
            }
            return(num1);
        }
Example #14
0
 public static double Value(TimeSeries input, int index, int length, EIndicatorStyle style)
 {
     if (style == EIndicatorStyle.QuantStudio)
     {
         double num1 = 0.0;
         double num2 = 0.0;
         if (index < length + input.FirstIndex)
         {
             return(double.NaN);
         }
         for (int index1 = index; index1 > index - length; --index1)
         {
             num2 += TR.Value(input, index1);
             num1 += PDM.Value(input, index1);
         }
         return(num1 / num2 * 100.0);
     }
     else
     {
         double num1 = 0.0;
         double num2 = 0.0;
         if (index < length + input.FirstIndex)
         {
             return(double.NaN);
         }
         for (int index1 = length + input.FirstIndex; index1 >= input.FirstIndex + 1; --index1)
         {
             num2 += TR.Value(input, index1);
             num1 += PDM.Value(input, index1);
         }
         for (int index1 = length + 1 + input.FirstIndex; index1 <= index; ++index1)
         {
             num1 = num1 - num1 / (double)length + PDM.Value(input, index1);
             num2 = num2 - num2 / (double)length + TR.Value(input, index1);
         }
         return(num1 / num2 * 100.0);
     }
 }
Example #15
0
File: RSI.cs Project: heber/FreeOQ
    public RSI(TimeSeries input, int length, BarData option, EIndicatorStyle style, Color color, EDrawStyle drawStyle)
			: base(input)  {
      this.fLength = 14;
      this.fLength = length;
      this.fOption = option;
      this.fStyle = style;
      this.Init();
      this.Color = color;
      this.DrawStyle = drawStyle;
    }
Example #16
0
        public static double Value(TimeSeries input, int index, int length, BarData option, EIndicatorStyle style)
        {
            double num1 = 0.0;
            double num2 = 0.0;

            if (index < length + input.FirstIndex)
            {
                return(double.NaN);
            }
            if (style == EIndicatorStyle.QuantStudio)
            {
                double num3 = input[index - length, option];
                for (int index1 = index - length + 1; index1 <= index; ++index1)
                {
                    double num4 = input[index1, option];
                    if (num4 > num3)
                    {
                        num1 += num4 - num3;
                    }
                    else
                    {
                        num2 += num3 - num4;
                    }
                    num3 = num4;
                }
            }
            else
            {
                double num3 = input[input.FirstIndex, option];
                for (int index1 = 1 + input.FirstIndex; index1 <= length + input.FirstIndex; ++index1)
                {
                    double num4 = input[index1, option];
                    if (num4 > num3)
                    {
                        num1 += num4 - num3;
                    }
                    else
                    {
                        num2 += num3 - num4;
                    }
                    num3 = num4;
                }
                num1 /= (double)length;
                num2 /= (double)length;
                double num5 = input[length + input.FirstIndex, option];
                for (int index1 = length + 1 + input.FirstIndex; index1 <= index; ++index1)
                {
                    double num4 = num1 * (double)(length - 1);
                    double num6 = num2 * (double)(length - 1);
                    double num7 = input[index1, option];
                    if (num7 > num5)
                    {
                        num4 += num7 - num5;
                    }
                    else
                    {
                        num6 += num5 - num7;
                    }
                    num5 = num7;
                    num1 = num4 / (double)length;
                    num2 = num6 / (double)length;
                }
            }
            return(100.0 - 100.0 / (1.0 + num1 / num2));
        }
Example #17
0
File: RSI.cs Project: heber/FreeOQ
 public static double Value(DoubleSeries input, int index, int length, EIndicatorStyle style)
 {
   return RSI.Value((TimeSeries) input, index, length, BarData.Close, style);
 }
Example #18
0
File: RSI.cs Project: heber/FreeOQ
 public static double Value(TimeSeries input, int index, int length, BarData option, EIndicatorStyle style)
 {
   double num1 = 0.0;
   double num2 = 0.0;
   if (index < length + input.FirstIndex)
     return double.NaN;
   if (style == EIndicatorStyle.QuantStudio)
   {
     double num3 = input[index - length, option];
     for (int index1 = index - length + 1; index1 <= index; ++index1)
     {
       double num4 = input[index1, option];
       if (num4 > num3)
         num1 += num4 - num3;
       else
         num2 += num3 - num4;
       num3 = num4;
     }
   }
   else
   {
     double num3 = input[input.FirstIndex, option];
     for (int index1 = 1 + input.FirstIndex; index1 <= length + input.FirstIndex; ++index1)
     {
       double num4 = input[index1, option];
       if (num4 > num3)
         num1 += num4 - num3;
       else
         num2 += num3 - num4;
       num3 = num4;
     }
     num1 /= (double) length;
     num2 /= (double) length;
     double num5 = input[length + input.FirstIndex, option];
     for (int index1 = length + 1 + input.FirstIndex; index1 <= index; ++index1)
     {
       double num4 = num1 * (double) (length - 1);
       double num6 = num2 * (double) (length - 1);
       double num7 = input[index1, option];
       if (num7 > num5)
         num4 += num7 - num5;
       else
         num6 += num5 - num7;
       num5 = num7;
       num1 = num4 / (double) length;
       num2 = num6 / (double) length;
     }
   }
   return 100.0 - 100.0 / (1.0 + num1 / num2);
 }
Example #19
0
 public static double Value(DoubleSeries input, int index, int length, EIndicatorStyle style)
 {
     return(RSI.Value((TimeSeries)input, index, length, BarData.Close, style));
 }
Example #20
0
File: DX.cs Project: heber/FreeOQ
 public static double Value(TimeSeries input, int index, int length, EIndicatorStyle style)
 {
   if (index < length + input.FirstIndex)
     return double.NaN;
   double num1 = 0.0;
   double num2 = PDI.Value(input, index, length, style);
   double num3 = MDI.Value(input, index, length, style);
   if (num2 + num3 != 0.0)
     num1 = 100.0 * Math.Abs(num2 - num3) / (num2 + num3);
   return num1;
 }
Example #21
0
File: PDI.cs Project: heber/FreeOQ
 public static double Value(TimeSeries input, int index, int length, EIndicatorStyle style)
 {
   if (style == EIndicatorStyle.QuantStudio)
   {
     double num1 = 0.0;
     double num2 = 0.0;
     if (index < length + input.FirstIndex)
       return double.NaN;
     for (int index1 = index; index1 > index - length; --index1)
     {
       num2 += TR.Value(input, index1);
       num1 += PDM.Value(input, index1);
     }
     return num1 / num2 * 100.0;
   }
   else
   {
     double num1 = 0.0;
     double num2 = 0.0;
     if (index < length + input.FirstIndex)
       return double.NaN;
     for (int index1 = length + input.FirstIndex; index1 >= input.FirstIndex + 1; --index1)
     {
       num2 += TR.Value(input, index1);
       num1 += PDM.Value(input, index1);
     }
     for (int index1 = length + 1 + input.FirstIndex; index1 <= index; ++index1)
     {
       num1 = num1 - num1 / (double) length + PDM.Value(input, index1);
       num2 = num2 - num2 / (double) length + TR.Value(input, index1);
     }
     return num1 / num2 * 100.0;
   }
 }
Example #22
0
		internal static IndicatorStyle Convert(EIndicatorStyle indicatorStyle)
		{
			switch (indicatorStyle)
			{
			case EIndicatorStyle.QuantStudio:
				return IndicatorStyle.SmartQuant;
			case EIndicatorStyle.MetaStock:
				return IndicatorStyle.MetaStock;
			default:
				throw new NotImplementedException("Indicator style is not supported : " + indicatorStyle);
			}
		}
Example #23
0
File: ADXR.cs Project: heber/FreeOQ
 public static double Value(TimeSeries input, int index, int length, EIndicatorStyle style)
 {
   if (index >= 3 * length - 1 + input.FirstIndex)
     return (ADX.Value(input, index, length, style) + ADX.Value(input, index - length + 1, length, style)) / 2.0;
   else
     return double.NaN;
 }
Example #24
0
File: ATR.cs Project: heber/FreeOQ
 public static double Value(TimeSeries input, int index, int length, EIndicatorStyle style)
 {
   if (index < length + input.FirstIndex)
     return double.NaN;
   double num1 = 0.0;
   double num2;
   if (style == EIndicatorStyle.QuantStudio)
   {
     for (int index1 = index; index1 > index - length; --index1)
       num1 += TR.Value(input, index1);
     num2 = num1 / (double) length;
   }
   else
   {
     for (int index1 = length + input.FirstIndex; index1 > input.FirstIndex; --index1)
       num1 += TR.Value(input, index1);
     double num3 = num1 / (double) length;
     for (int index1 = length + 1 + input.FirstIndex; index1 <= index; ++index1)
       num3 = (num3 * (double) (length - 1) + TR.Value(input, index1)) / (double) length;
     num2 = num3;
   }
   return num2;
 }