/// <summary> /// Creates a new Sharpe Ratio indicator using the specified periods /// </summary> /// <param name="name">The name of this indicator</param> /// <param name="period">Period of historical observation for sharpe ratio calculation</param> /// <param name="riskFreeRate">Risk-free rate for sharpe ratio calculation</param> public SharpeRatio(string name, int period, decimal riskFreeRate = 0.0m) : base(name) { _period = period; // calculate sharpe ratio using indicators _roc = new RateOfChange(1); var std = new StandardDeviation(period).Of(_roc); var sma = _roc.SMA(period); _sharpeRatio = sma.Minus(riskFreeRate).Over(std); // define warmup value WarmUpPeriod = _period + 2; }