Ejemplo n.º 1
0
        /// <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;
        }