Beispiel #1
0
        public ICustomData <double, double> AddCustom(string name, Func <double, double> algo)
        {
            var newRefSeries = new CUSTOM(name, algo);
            var result       = DataSeriesManager.CreateCustom(HistoryDataSeries, newRefSeries);

            return(result);
        }
Beispiel #2
0
        public double ValueWhen(int offset, Func <double, int, bool> callback, ReferenceSeries searchPattern)
        {
            var allNumericSeries = DataSeriesManager.getAllNumericSerries();

            var index = allNumericSeries.FindIndex(x => x.Name == searchPattern.Name);

            var result  = -1D;
            var counter = 0;

            if (index != -1)
            {
                for (int i = 0; i < HistoryDataSeries.Count - 1; i++)
                {
                    if (Convert.ToBoolean(callback(allNumericSeries[index].GetValueByIndex(i), i)))
                    {
                        result   = searchPattern.Value;
                        counter += 1;
                        if (counter == offset)
                        {
                            break;
                        }
                    }
                }
            }

            return(result);
        }
Beispiel #3
0
        public ReferenceSeries Ref(ICustomData <double, double> newRefSeries, int index)
        {
            var result = new ReferenceSeries(newRefSeries.Name);

            result.Value = DataSeriesManager.GetCustom(newRefSeries) != null && DataSeriesManager.GetCustom(newRefSeries).Count > Math.Abs(index) ? DataSeriesManager.GetCustom(newRefSeries).GetValueByIndex(Math.Abs(index)) : -1;

            return(result);
        }
Beispiel #4
0
        public override void Update(TickStatus args)
        {
            if (args != TickStatus.IsQuote)
            {
                DataSeriesManager.AutoUpdate();
            }

            this.OnUpdate(args);
        }
Beispiel #5
0
        public int BarsSince <T1, T2>(ICustomData <T1, T2> series)
        {
            var index = -1;

            if (series.Name.Contains(DataSeriesManager.CrossPartialName))
            {
                index = DataSeriesManager.LastCross(series.Name);
            }

            return(index);
        }
Beispiel #6
0
        public int BarsSince(ICustomData <double, double> a, double b, Func <double, double, bool> callback)
        {
            var allNumericSeries = DataSeriesManager.getAllNumericSerries();

            var index = allNumericSeries.FindIndex(x => x.Name == a.Name);

            var result = -1;

            if (index != -1)
            {
                for (int i = 0; i < HistoryDataSeries.Count - 1; i++)
                {
                    if (callback(allNumericSeries[index].GetValueByIndex(i), b))
                    {
                        result = i;
                        break;
                    }
                }
            }

            return(result);
        }
Beispiel #7
0
        public ICustomData <double, double> Mom(int period)
        {
            var result = DataSeriesManager.CreateOrUpdateMomentum(period, HistoryDataSeries);

            return(result);
        }
Beispiel #8
0
        public ICustomData <double, double> Mov(double value, int period, MAMode mode)
        {
            var result = DataSeriesManager.CreateOrUpdateMA(value, period, mode, HistoryDataSeries);

            return(result);
        }
Beispiel #9
0
        public ICustomData <double, bool> Cross(ReferenceSeries b, ICustomData <double, double> a)
        {
            var result = DataSeriesManager.CreateOrUpdateCross(HistoryDataSeries, a, b, CrossDirection.Up);

            return(result);
        }