Beispiel #1
0
        static void GetRSI(Rate[] rates)
        {
            //create the sample data
            Indicore.BarSourceAut source = CreateBarsData(rates);


            //find mva indicator
            Indicore.IndicatorCollectionAut indicators;
            indicators = (Indicore.IndicatorCollectionAut)core.Indicators;
            Indicore.IndicatorAut indicator = (Indicore.IndicatorAut)indicators["MVA"];
            //create parameter set and specify "N" parameter of the indicator.
            Indicore.IndicatorParameterCollectionAut parameters = (Indicore.IndicatorParameterCollectionAut)indicator.CreateParameterSet();
            ((Indicore.IndicatorParameterAut)(parameters["N"])).Value = 7;
            //create and instance of the indicator and force data update.
            Indicore.IndicatorInstanceAut instance = (Indicore.IndicatorInstanceAut)indicator.CreateIndicatorInstance(source, parameters);
            instance.Update(true);
            //get the indicator output (MVA has one output).
            Indicore.IndicatorOutputAut output = (Indicore.IndicatorOutputAut)((Indicore.IndicatorOutputCollectionAut)instance.Output)[0];

            //Print result.
            //Please note that the indicator output can be as longer as well as shorter than the indicator.
            //Also, the indicator results can start not from the first value of the source. The first defined value
            //of the indicator is in the output.FirstAvailable position.
            int max;

            if (source.Size > output.Size)
            {
                max = source.Size;
            }
            else
            {
                max = output.Size;
            }
            Console.WriteLine("{0}", instance.Name);
            Console.WriteLine("Date;Tick;MVA;");
            for (int i = 0; i < max; i++)
            {
                if (i < source.Size)
                {
                    Indicore.TickAut tick = (Indicore.TickAut)source[i];
                    Console.Write("{0};{1};", tick.Date, tick.Tick);
                }
                else
                {
                    Console.Write("n/a;n/a;");
                }

                if (i >= output.FirstAvailable && i < output.Size)
                {
                    Console.Write("{0};", output[i]);
                }
                else
                {
                    Console.Write("n/a;");
                }

                Console.WriteLine();
            }
        }
Beispiel #2
0
 public static IEnumerable <IndicatorPoint> RLW(Rate[] rates, int period)
 {
     Indicore.BarSourceAut         source   = CreateBarsData(rates);
     Indicore.IndicatorInstanceAut instance = (Indicore.IndicatorInstanceAut)core.CreateIndicatorInstance("RLW", source, period, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
     Indicore.IndicatorOutputAut   output   = (Indicore.IndicatorOutputAut)((Indicore.IndicatorOutputCollectionAut)instance.Output)[0];
     instance.Update(true);
     return(output.Cast <double>().Select((d, i) => new IndicatorPoint(rates[i].StartDate, d)));
 }
Beispiel #3
0
 private static Indicore.BarSourceAut CreateBarsData(IList <Rate> rates)
 {
     Indicore.BarSourceAut ticks = (Indicore.BarSourceAut)core.CreateBarSource("AAPL", "M1", false, 0.01);
     foreach (var rate in rates)
     {
         ticks.AddLast(rate.StartDate, rate.PriceOpen, rate.PriceHigh, rate.PriceLow, rate.PriceClose, 1);
     }
     return(ticks);
 }
Beispiel #4
0
 public static IEnumerable <IndicatorPoint2> TSI_CR(Rate[] rates)
 {
     Indicore.BarSourceAut         source    = CreateBarsData(rates);
     Indicore.IndicatorInstanceAut instance1 = (Indicore.IndicatorInstanceAut)core.CreateIndicatorInstance("TSI", source, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
     Indicore.IndicatorOutputAut   output1   = (Indicore.IndicatorOutputAut)((Indicore.IndicatorOutputCollectionAut)instance1.Output)[0];
     Indicore.IndicatorInstanceAut instance2 = (Indicore.IndicatorInstanceAut)core.CreateIndicatorInstance("CR", output1, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
     Indicore.IndicatorOutputAut   output2   = (Indicore.IndicatorOutputAut)((Indicore.IndicatorOutputCollectionAut)instance2.Output)[0];
     instance1.Update(true);
     instance2.Update(true);
     return(output2.Cast <double>().Select((d, i) => new IndicatorPoint2(rates[i].StartDate, output1[i], d)));
 }
Beispiel #5
0
 public static void FillFractal(this Rate[] rates, Action <Rate, double?> setValue)
 {
     Indicore.BarSourceAut                 source   = CreateBarsData(rates);
     Indicore.IndicatorInstanceAut         instance = (Indicore.IndicatorInstanceAut)core.CreateIndicatorInstance("FRACTAL", source, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
     Indicore.IndicatorOutputCollectionAut outputs  = (Indicore.IndicatorOutputCollectionAut)instance.Output;
     instance.Update(true);
     foreach (var rate in rates)
     {
         setValue(rate, 0);
     }
     foreach (var output in outputs.Cast <Indicore.IndicatorOutputAut>())
     {
         var i = 0;
         output.Cast <double>().ToList().ForEach(d => { if (d != 0)
                                                        {
                                                            setValue(rates[i], d);
                                                        }
                                                        i++; });
     }
 }