Ejemplo n.º 1
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++; });
     }
 }
Ejemplo n.º 2
0
        public static IEnumerable <IndicatorMACD> RsiMACD(Rate[] rates, Func <Rate, double> price, int period)
        {
            Indicore.TickSourceAut        source    = CreateTicksData(rates, price);
            Indicore.IndicatorInstanceAut instance1 = (Indicore.IndicatorInstanceAut)core.CreateIndicatorInstance("RSI", source, period, 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("MACD", output1, 12, 26, 9, Type.Missing, Type.Missing);

            Indicore.IndicatorOutputCollectionAut _outputs = (Indicore.IndicatorOutputCollectionAut)instance2.Output;
            List <Indicore.IndicatorOutputAut>    outputs  = new List <Indicore.IndicatorOutputAut>();

            for (int i = 0; i < _outputs.Size; i++)
            {
                outputs.Add((Indicore.IndicatorOutputAut)_outputs[i]);
            }

            Indicore.IndicatorOutputAut output2 = (Indicore.IndicatorOutputAut)((Indicore.IndicatorOutputCollectionAut)instance2.Output)[0];

            instance1.Update(true);
            instance2.Update(true);
            for (int i = 0; i < rates.Length; i++)
            {
                yield return(new IndicatorMACD(rates[i].StartDate, price(rates[i]), outputs[0][i], outputs[1][i], outputs[2][i]));
            }
        }