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); }
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); }
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); }
public override void Update(TickStatus args) { if (args != TickStatus.IsQuote) { DataSeriesManager.AutoUpdate(); } this.OnUpdate(args); }
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); }
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); }
public ICustomData <double, double> Mom(int period) { var result = DataSeriesManager.CreateOrUpdateMomentum(period, HistoryDataSeries); return(result); }
public ICustomData <double, double> Mov(double value, int period, MAMode mode) { var result = DataSeriesManager.CreateOrUpdateMA(value, period, mode, HistoryDataSeries); return(result); }
public ICustomData <double, bool> Cross(ReferenceSeries b, ICustomData <double, double> a) { var result = DataSeriesManager.CreateOrUpdateCross(HistoryDataSeries, a, b, CrossDirection.Up); return(result); }