public ConnorsRSI(List <double> rates, int RSI_Close = 3, int RSI_Streak = 2, int ROC_period = 100, string name = "ConnorsRSI") : base("ConnorsRSI", name) { try { //Проверка входных параметров if (rates == null) { throw new Exception("Нет входных данных"); } if (rates.Count < ROC_period + 2) { throw new Exception("Количество исходных значений должно быть на два больше, чем период процентного рейтинга"); } Rates = rates; RSI_ClosePeriod = RSI_Close; RSI_StreakPeriod = RSI_Streak; Values = new List <double>(Rates.Count); //м.б. надо будет сделать больше раза в два для будущих значений Subtotals = new SubtotalsCRSI(RSI_Close, RSI_Streak, ROC_period); CreateIndicator(); } catch (Exception e) { ErrorOfInit(e.Message); } EndOfInit(); }
public SubtotalsCRSI(SubtotalsCRSI subCRSI) { Price = subCRSI.Price; PreviousPrice = subCRSI.PreviousPrice; RsiClose = subCRSI.RsiClose; Streak = subCRSI.Streak; RsiStreak = subCRSI.RsiStreak; DailyReturn = subCRSI.DailyReturn; PosDailyReturn = subCRSI.PosDailyReturn; ROC_Period = subCRSI.ROC_Period; }